MCP server that drives a running SOLIDWORKS session over its COM API
Solid foundation with complete schemas and consistent naming conventions. All 11 tools follow verb_noun pattern (list_*, insert_*, add_*, create_*, set_*, boss_*, cut_*, revolve_*, fillet_*). Descriptions are present and domain-specific (10 - 150 chars), explaining WHAT and WHEN. Input schemas are well-formed with proper types, enums, and defaults. However, parameter descriptions are sparse or missing for many fields (e.g., 'selection' object in add_mate, revolve, fillet lacks detail on structure). Output schemas are undocumented, LLMs cannot predict return structure. Error handling is minimal; no recovery guidance or actionable error messages visible in code. No tool annotations (readOnlyHint/destructiveHint) despite clear read/write distinction. Missing idempotency guidance for write operations.
Mate two entities in the active assembly. Select exactly two faces, edges, planes, or vertices via selection, then name the mate type. Distance is millimetres, angle is degrees.
Extrude a sketch into a solid boss. Depth is millimetres, draft is degrees.
Create a new drawing document from the configured default template, optionally sized and scaled. Then use insert_standard_views or insert_model_view to place views.
Cut material using a sketch profile. Depth is millimetres, draft is degrees.
Round the selected edges or faces with a constant radius, in millimetres. Use list_edges to find the edge indices, or selection.face_edges to fillet every edge of a face.
Insert a part or sub-assembly file into the active assembly at the given position. Position is millimetres in assembly space.
Complex 'selection' parameter (add_mate, revolve, fillet) lacks schema definition and description. LLMs cannot infer structure or valid values.
No output schemas documented. LLMs cannot predict return structure, field names, or types for downstream tool chaining.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). LLMs cannot distinguish safe read operations from destructive writes without explicit hints.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | <=2025-11-25 | v2 |
Read-only: list the components of the active assembly with their file paths and positions.
Read-only: list the mates of the active assembly.
Read-only: list the sheets of the active drawing, with the active one marked.
Revolve a sketch profile about an axis. If the sketch contains exactly one centerline SOLIDWORKS uses it automatically; otherwise pass axis_selection (a sketch_segments index for the centerline, or an axes name). Angle is degrees.
Fix or float the named components in the active assembly.
Error handling in server.py (line ~80) returns generic JSON payloads without recovery guidance. 'Unknown tool' and 'Missing required argument' errors do not guide LLM to next action.
Parameter descriptions missing or minimal for: 'alignment' (add_mate), 'axis_selection' (revolve), 'sketch_name' defaults, 'end_condition' enum values. LLMs must guess intent.