Skip to main content
Glama
hjbaard

SolidWorks-MCP

check_motion

Step a joint through specified angles or distances and check the SolidWorks assembly at every position. Detect clashing pairs, minimum clearances, and whether motion is clash-free.

Instructions

Step a joint through its range and check the assembly at every step.

dimension_name: an angle or distance mate's dimension (add_mate returns it); values in degrees for an angle, mm for a distance, e.g. [30, 60, 90, 120, 150]. Each step gives the overlapping pairs with their volume and the distance between each pair in distances ([["Rod", "Bolt"], ...]); the summary gives clash_free and each pair's smallest distance with the value where it occurs. The dimension goes back to its value afterwards. A joint inside a sub-assembly is 'D1@Angle1@Leg-1'. Refused while a mate is broken: the parts it should hold would drift and the result mean nothing.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
valuesYes
distancesNo
dimension_nameYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.9.0

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so well: it discloses the return structure (per-step overlapping pairs with volumes/distances, summary with clash_free and minimum distance), the reversal side-effect ('The dimension goes back to its value afterwards'), and the failure mode when a mate is broken. It omits performance/timing characteristics, so not quite a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded and the rest is dense but earns its place. Some sentences run long and blend input-parameter guidance with output description, which slightly hurts scanability, but there is little dead weight.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, the description explains returns, the reversal side-effect, parameter formats, and the refusal condition, which is close to complete. It could say a bit more about cost/runtime for a sweep over many values, but nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate and it does for all three parameters: dimension_name (a mate dimension, with the sub-assembly syntax 'D1@Angle1@Leg-1'), values (degrees vs mm with a concrete example array), and the distances pair format. This fully covers the gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: 'Step a joint through its range and check the assembly at every step.' This is clearly distinct from a static clash tool like check_interference, but the description never names that sibling, so the differentiation is left implicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a real precondition (refused while a mate is broken, and why) and explains how to obtain the required dimension_name from add_mate. It lacks an explicit statement of when to prefer this over a static interference check, so it stops short of full routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.