Skip to main content
Glama

solidworks-mcp-python

An MCP server that lets Claude (or any MCP client) drive SOLIDWORKS through its COM API, written in plain Python (stdlib + pywin32). Leer en español.

Its design follows the native Fusion 360 MCP: the main tool is sw_execute_script, which runs arbitrary Python against the live COM session. The typed tools are shortcuts on top. What makes that workable is the second half of the server: a local semantic index of the SOLIDWORKS API (signatures from your installation's type library + meaning, enums, units and official examples from the 2026 API help), so the model looks a call up before writing it instead of guessing 20 positional parameters.

Status: personal project, used daily to model parts, build assemblies with mates and produce dimensioned drawings. Windows only (COM). Tested with SOLIDWORKS 2026 (3DEXPERIENCE R2026x, Spanish UI) and Python 3.14 only. Reports from other versions and languages are welcome (open an issue).

Tools (22)

Group

Tools

Session / document

sw_connect sw_doc_info sw_new_part sw_open sw_close sw_rebuild

Modelling shortcut

sw_extrude (sketch + boss/cut in one step, mm)

Inspection

sw_list_bodies sw_bbox sw_list_features sw_screenshot

Save / export

sw_save_as sw_export_step

Engineering / manufacturing

sw_mass_properties (optionally sets the material), sw_check_machining (3-axis DFM, default profile Makera Carvera Air, STEP for the CAM), sw_interferences (grouped by component pair)

Script

sw_execute_script — scope: sw, doc, c (core), fx (features), mz (machining), am (assembly); readOnly guard

API knowledge

sw_api_doc sw_api_enum sw_api_members sw_api_search sw_api_example

Related MCP server: SolidWorks MCP Server

Install

Requirements: Windows, SOLIDWORKS running, Python ≥ 3.10.

git clone https://github.com/rskproductions/solidworks-mcp-python.git
cd solidworks-mcp-python
py -m pip install -e .

Claude Desktop (%APPDATA%\Claude\claude_desktop_config.json):

{
  "mcpServers": {
    "solidworks": {
      "command": "C:\\path\\to\\python.exe",
      "args": ["-m", "solidworks_mcp"]
    }
  }
}

Without pip install, point PYTHONPATH at the src folder instead: "env": {"PYTHONPATH": "C:\\path\\to\\solidworks-mcp-python\\src"}.

Check it: py -m solidworks_mcp --probe lists the tools.

Build the API index (once, locally)

The index is not distributed: the API help text and examples are Dassault Systèmes' copyright. The scripts below build it on your machine from your own installation and the public help site. Everything lands in data/ (or %LOCALAPPDATA%\solidworks-mcp, or SW_MCP_DATA).

:: 1. type library of YOUR installation -> data\api_index.txt (SOLIDWORKS open)
py tools\dump_api.py
:: 2. API help -> data\sw_api_index.sqlite (~15,000 pages, resumable)
py tools\index_build\crawl_full.py all
py tools\index_build\parse_raw.py
py tools\index_build\build_index_full.py
:: 3. swconst values (the help omits many) -> data\swconst.json
py -m solidworks_mcp.const --typelib

The server runs without the index; only the sw_api_* tools need it.

Layout

src/solidworks_mcp/
  server.py      MCP protocol (stdio JSON-RPC), tool definitions and handlers
  core.py        COM helpers: connection, sketch, extrude, thread, bodies, bbox,
                 edges/faces by geometry, chamfer/fillet, screenshot, save
  features.py    revolve, shell, Hole Wizard, circular/linear pattern, mirror,
                 draft, rib, reference plane, loft, sweep, sheet metal + flat DXF,
                 material, mass properties, equations, configurations
  mecanizado.py  3-axis DFM check (Carvera Air profile) and STEP export for the CAM
  asm.py         assemblies: components by position, faces by geometry, AddMate5,
                 interference detection
  const.py       swconst values from the help index + type library
  api_doc.py     merges type library + help for the sw_api_* tools
  api_lookup.py  sqlite client (stdlib)
  paths.py       where local data lives
tools/           dump_api.py and index_build/ (crawler -> parser -> sqlite)
scripts/         selftest, probetas.py (23-step regression: every feature checked
                 by VOLUME against its theoretical value), benchmarks, diagnostics
docs/            notes on other SOLIDWORKS MCP servers and APIs

Hard-won COM notes

Late-bound pywin32 against SOLIDWORKS has traps that neither the type library nor the help mention. The short version (details in README.es.md):

  • The COM API works in metres and radians.

  • A zero-argument member may arrive already evaluated: use c.soft(obj, "Name") (callable() does not tell you — CDispatch is always callable).

  • [in,out] ints → c.byref_int(); null interface → c.null_dispatch().

  • "Member not found" on methods that exist (CreateTransform, FixComponent) → c.call_method(obj, "Name", *args) forces DISPATCH_METHOD.

  • Parameterised property puts (ITableAnnotation.Text(r, c) = ...) → c.put_property(obj, "Text", r, c, value).

  • Array properties (IView.Position) need VARIANT(VT_ARRAY|VT_R8, [...]); a tuple silently misplaces the view.

  • Every COM round trip costs ~30 ms: performance is the number of calls. Scope face/edge searches to one feature (comp.FeatureByName(...).GetFaces).

  • win32com.client.constants is empty without makepy: use const("swFmFillet").

  • The default part template is in metres: flat-pattern DXFs come out 1000x too small. sw_new_part now sets MMGS; fx.units_mm(doc) for existing parts.

  • ISurface.EvaluateAtPoint returns the normal at [0:3], and IFace2.FaceInSurfaceSense == True means face and surface normals are opposite.

  • Hole Wizard: HoleWizard5 returned None in every combination tried; CreateDefinition(swFmHoleWzd) + InitializeHole + SelectByRay + CreateFeature works.

  • Mirror features: select the features (mark 1) before the plane (mark 2). Ribs can't be mirrored as features: mirror the body (mark 256).

  • A tool call has a 60 s budget in Claude Desktop: run long jobs as a subprocess that writes a log. Never two COM clients on the same session at once.

What we learned from them is in docs/.

License

MIT — see LICENSE. SOLIDWORKS is a trademark of Dassault Systèmes; this project is not affiliated with or endorsed by Dassault Systèmes.

Available Tools

22 tools
sw_api_docA

Ficha completa de un metodo o propiedad de la API: bloque de la typelib de ESTA instalacion (orden y tipo COM de cada parametro) + ayuda oficial 2026 SP04 (que significa cada parametro, enum que lo gobierna, unidades, retorno, remarks con las tablas de marcas de seleccion, desde que version existe). Consultar antes de escribir una llamada COM en sw_execute_script. Acepta 'FeatureManager' o 'IFeatureManager'.

ParametersJSON Schema
NameRequiredDescriptionDefault
ifaceYesInterfaz, p.ej. IFeatureManager, IModelDoc2, ISketchManager.
memberYesMetodo o propiedad, p.ej. FeatureExtrusion3, SelectByID2.

TDQS

A4/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 it does disclose meaningful behavior: the typelib block is from THIS installation (so it matches the running version, not a generic doc), the help is versioned 2026 SP04, and the payload includes parameter meaning, governing enum, units, return, remarks tables and version-introduced info. It omits any note on lookup failure behavior or performance, but for a local documentation read the disclosure is solid.

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 in the opening clause, followed by a compact enumeration of payload contents and one short directive sentence. No filler or repetition. The middle sentence is dense, but every clause maps to a real output component, so nothing is wasted.

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?

There is no output schema, so the description must describe the return payload — and it does so in detail (typelib order and COM types, per-parameter meaning, governing enum, units, return value, remarks/mark tables, version availability). Inputs are fully covered by the schema. Only minor gaps remain, such as error handling for unknown members.

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

Parameters4/5

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

Schema coverage is already 100% with both parameters documented, so the baseline is 3. The description adds value beyond the schema by stating that the interface argument accepts either 'FeatureManager' or 'IFeatureManager', i.e. the 'I' prefix is optional — a normalization rule the schema does not state.

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?

The description states a specific verb+resource: it returns the full documentation sheet for one API method/property, enumerating exactly what that includes (typelib parameter block from this installation plus official 2026 SP04 help). That is far more than a restatement of the name. It does not, however, differentiate itself from the closely related siblings sw_api_search, sw_api_members and sw_api_example, which an agent would also consider for API lookups.

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?

It gives a clear usage context: consult before writing a COM call in sw_execute_script. That tells the agent the moment to reach for this tool. It stops short of naming exclusions or the sibling alternatives (e.g. 'use sw_api_search for free-text discovery instead'), so it earns a 4 rather than a 5.

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

sw_api_enumA

Miembros y valores de un enum swconst (swEndConditions_e, swSelectType_e, swDocumentTypes_e...). Acepta tambien el nombre de un miembro suelto (swEndCondBlind) y resuelve a que enum pertenece. En codigo usa el nombre via win32com.client.constants, no el numero. swSelectType_e trae la tabla enum -> string que espera SelectByID2 (swSelFACES -> "FACE").

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses genuinely useful behavior: a member name is auto-resolved to its enum, and swSelectType_e returns an enum->string table for SelectByID2 (swSelFACES -> "FACE"). It does not say what happens for an unknown or misspelled name, which is the main failure mode for a lookup tool.

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

Conciseness5/5

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

Three short sentences, no filler: first the scope, then the alternate input form, then the practical coding note and the special-case output. Every sentence adds information and the primary purpose is front-loaded.

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?

There is no output schema, so the description must carry return semantics; it does so for the interesting case (swSelectType_e's enum->string mapping) but not for the generic case. For a single-param read lookup this is close to sufficient.

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

Parameters4/5

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

Schema coverage is 0% and the schema documents nothing about 'name'. The description compensates well by explaining that the parameter accepts either an enum type or a bare member name, which is the key ambiguity an agent would face. 0-parameter baseline logic does not apply since a required param exists.

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 resource (swconst enum members and values) and gives concrete examples (swEndConditions_e, swSelectType_e), plus a second mode: resolving a loose member name to its enum. That distinguishes it from generic siblings like sw_api_search and sw_api_doc, though the verb itself ('returns/retrieves') 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 Guidelines3/5

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

Usage is only implied through the two input modes (whole enum vs single member) and the note to reference names via win32com.client.constants rather than the number. There is no explicit statement of when to prefer this over sw_api_members or sw_api_search, so routing guidance is weak.

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

sw_api_exampleA

Ejemplos oficiales de codigo de la ayuda de la API 2026 (VBA; VB.NET si no hay VBA), indexados con las interfaces y miembros que los enlazan. Para descubrir el flujo completo de una operacion (que seleccionar, en que orden, que marcas) antes de escribirla en sw_execute_script. query = busqueda libre ('thread feature', 'insert component transform'); iface/member = los que enlaza esa interfaz o miembro; id = el codigo completo de uno.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNo
ifaceNo
limitNo
queryNo
memberNo

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It does disclose the VBA-first/VB.NET-fallback behavior and that results are indexed by interface/member, which is useful. However it says nothing about ordering, result shape, or what 'limit' bounds, leaving real behavioral gaps for an unannotated tool.

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?

Content is dense but ordered: resource and index first, then the use-case routing to sw_execute_script, then the three lookup modes. No filler sentences, though the single long paragraph could be more scannable.

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

Completeness3/5

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

With no output schema, no annotations, and 5 parameters, the description should describe the return payload more fully. It covers most query modes but omits the 'limit' default behavior and gives only a hint ('el codigo completo') about what a result actually contains, leaving the agent guessing at output structure.

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

Parameters4/5

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

Schema description coverage is 0% with 5 parameters, so the description must compensate, and it largely does: it explains query as free-text search with concrete examples, iface/member as those linked by an interface or member, and id as returning the full code of a single example. Only 'limit' is left unexplained.

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 resource (official API code examples for the 2026 help, VBA with VB.NET fallback) and what it is indexed by (interfaces and members). It distinguishes itself implicitly from sibling doc tools (sw_api_search, sw_api_doc, sw_api_enum, sw_api_members) by returning full runnable code, though it never names those siblings.

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?

Explicitly says when to use it: 'Para descubrir el flujo completo de una operacion ... antes de escribirla en sw_execute_script' – discovering the sequence of calls before scripting. It names the downstream tool but gives no when-not guidance versus the other sw_api_* lookups.

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

sw_api_membersA

Todos los miembros de una interfaz con su resumen de una linea: para descubrir que se puede hacer con IFeatureManager, IBody2, IFace2... Cubre todas las interfaces de los 10 namespaces de la ayuda 2026 (sldworks, swdimxpert, swmotionstudy, swpublished...). Incluye la ficha de la interfaz: resumen, como se obtiene (accessors), categoria funcional y ejemplos oficiales. Puede ser largo (IModelDoc2 tiene 762): filtra con kind si solo quieres propiedades.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNo
ifaceYes

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations, the description carries the burden and does disclose a genuinely useful behavioral trait: output can be very large (IModelDoc2 has 762 members) and should be narrowed with kind. It also discloses the breadth of coverage (all 10 namespaces) and the payload structure. It omits any note on permissions or rate limits, but for a read-only doc lookup that is minor.

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?

Three front-loaded sentences: scope first, coverage second, size warning and filter tip last. Slightly redundant between 'resumen de una linea' and 'Incluye la ficha: resumen...', but every sentence conveys actionable information.

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?

No output schema and no annotations, so the description must describe the return shape, which it does (one-line summaries, interface card with summary, accessors, functional category, official examples). Combined with the size warning and filter advice, an agent has enough to call it correctly; only the exact response format remains unspecified.

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

Parameters4/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 largely does: it implies iface is the interface name and supplies example values (IFeatureManager, IBody2, IFace2), and it explains what the kind filter does ('si solo quieres propiedades') beyond the bare enum. Format/acceptability details for iface are still left implicit.

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 and resource: lists all members of an interface with a one-line summary, covering the 10 namespaces of the 2026 help. It also names concrete example interfaces (IFeatureManager, IBody2, IFace2), so the agent knows exactly what it retrieves. It does not, however, differentiate itself from overlapping siblings like sw_api_search or sw_api_doc.

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

Usage Guidelines3/5

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

Gives an implicit usage scenario ('para descubrir que se puede hacer con...') and one concrete tip ('filtra con kind si solo quieres propiedades'), but never says when to prefer this over sw_api_search or sw_api_doc, nor any exclusion conditions. Usage is implied rather than stated.

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

sw_bboxB

Caja envolvente global en mm: min, max, tamano y centro.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior3/5

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

No annotations exist, so the description carries the full burden; it does disclose the output content and units, which compensates for the absent output schema. However, it says nothing about whether it reads the active document, a selected body, or the whole assembly, nor whether it requires an open document first.

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?

A single short sentence with the units front-loaded before the returned fields; nothing is wasted. It is slightly too terse to be a model of front-loading, reading as a fragment without an explicit action verb.

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

Completeness3/5

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

For a zero-parameter query tool with no output schema, the description adequately enumerates the return values and their units. It leaves a real gap in scope: which document, body, or component the 'global' box applies to, and how multiple bodies would be represented.

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

Parameters4/5

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

The tool takes zero parameters, so per the baseline this scores 4. The description correctly does not invent parameter detail, and the named treat values (min, max, size, center) describe the result rather than inputs.

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?

Names the resource precisely (global bounding box) and enumerates the returned components (min, max, size, center) plus units (mm), which cleanly separates it from siblings like sw_mass_properties or sw_list_bodies. The verb is implicit and no target document/body scope is stated, so it falls short of a 5.

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

Usage Guidelines2/5

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

There is no guidance on when to reach for this tool versus alternatives such as sw_mass_properties or sw_doc_info, and no prerequisites or context are mentioned. The agent must infer usage entirely from the name and the returned field list.

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

sw_check_machiningA

Revision de fabricabilidad para fresado de 3 ejes desde +Z (perfil por defecto: Makera Carvera Air, 300x200x130 mm, pinzas 1/8", 1/4", 3/4/6 mm): cabe en el area, radio concavo minimo y fresas que caben, esbeltez L/D, agujeros justos para la fresa y caras que piden voltear la pieza. Con export_dir exporta ademas un STEP (mm) para Makera CAM. No genera trayectorias.

ParametersJSON Schema
NameRequiredDescriptionDefault
export_dirNo

TDQS

A4.1/5.0
Behavior4/5

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

No annotations are present, so the description carries the full burden and does well: it discloses the assumed machine/dimensions and collet set, states the side effect that export_dir triggers an additional STEP (mm) export for Makera CAM, and explicitly negates toolpath generation. It stops short of describing permissions or the exact result format.

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?

Purpose and defaults are front-loaded in one dense sentence followed by the export clause and the scope negation. Slightly packed (collet list and machine dims inline), but each element carries real information for correct invocation.

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?

For a single-optional-param tool with no output schema or annotations, the description covers what is analyzed, the default assumptions, the export side effect, and the non-goal (no toolpaths). Return content is characterized by the check list rather than a structured spec, which is acceptable here.

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

Parameters4/5

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

With 0% schema coverage the description must compensate, and it does: export_dir is explained as the switch that additionally exports a STEP in mm for Makera CAM. That is meaningful behavior beyond the bare name/type in the schema, though it omits path/error semantics.

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

Purpose5/5

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

States a specific verb+resource (manufacturability review for 3-axis milling from +Z) and enumerates exactly what is checked (fit in area, min concave radius, cutter fit, L/D slenderness, tight holes, faces needing a flip). This is unmistakably distinct from the SolidWorks modeling/API siblings.

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

Usage Guidelines3/5

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

Scope is implied rather than stated: it notes the default machine profile and that it does NOT generate toolpaths, which helps an agent place it as pre-CAM feasibility analysis. However, there is no explicit when-to-use vs. alternative guidance or prerequisites for invoking it.

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

sw_closeA

Cierra el documento activo. No guarda salvo que save=true.

ParametersJSON Schema
NameRequiredDescriptionDefault
saveNo

TDQS

A3.6/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden — and it does disclose the single most important behavioral trait: that closing discards unsaved changes unless save=true. It does not, however, describe error behavior (e.g. what happens with no active document) or the interaction with sw_save_as.

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

Conciseness5/5

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

Two short sentences, zero waste, with the core action and the critical side-effect caveat front-loaded. Every clause earns its place.

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

Completeness3/5

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

For a no-annotation, no-output-schema mutation tool, the description covers the destructive risk but omits error conditions and relationship to sibling save/close tools. Adequate but with clear gaps.

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

Parameters4/5

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

Schema description coverage is 0%, and there is exactly one parameter. The description compensates well for the sole parameter by explaining the semantics of save ('No guarda salvo que save=true'), which is meaning beyond the bare boolean default in the schema.

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?

Names a specific verb and resource ('Cierra el documento activo'), so an agent immediately knows this is a close operation on the current document. It does not, however, differentiate itself from siblings like sw_save_as or sw_open, though the naming makes the distinction largely self-evident.

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

Usage Guidelines2/5

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

The description gives no indication of when to use this tool versus alternatives, nor any prerequisites (e.g. whether a document must be open). Usage is only implied by the verb 'Cierra'.

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

sw_connectA

Adjunta a la instancia de SOLIDWORKS en marcha y devuelve version y documento activo. SOLIDWORKS debe estar ya abierto.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/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 disclose the environment prerequisite and that it attaches to a running instance rather than launching one. It does not say whether the attach has side effects, whether it fails or blocks when no instance exists, or what error behavior to expect.

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

Conciseness5/5

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

Two short sentences, front-loaded with the action and return values, with the prerequisite placed last. No padding or redundancy.

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?

For a zero-parameter, no-output-schema tool, the description covers the action, the required precondition, and the return payload, which is nearly everything an agent needs. It could have said what happens on failure, but nothing essential is missing.

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

Parameters4/5

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

The tool takes zero parameters, so the baseline is 4; there is no parameter surface for the description to clarify or omit.

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 ('Adjunta') plus two concrete outputs (version and active document), which clearly separates it from sw_open and sw_new_part. It does not explicitly name those siblings, so it stops short of a 5.

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

Usage Guidelines3/5

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

The precondition 'SOLIDWORKS debe estar ya abierto' tells the agent when the tool is valid, which is useful implied usage guidance. However, it never states when to prefer this over sw_open or sw_doc_info, so routing between siblings is left to inference.

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

sw_doc_infoB

Titulo, ruta, tipo y numero de cuerpos del documento activo.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3/5.0
Behavior2/5

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

With no annotations provided, the description carries the full behavioral burden and does not state that this is a read-only query, that it requires an open/active document, or what happens when no document is loaded. The only implicit hint is the word 'activo', which suggests a dependency on current state but never makes it explicit.

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?

A single short sentence that front-loads the returned fields with no padding. It is a noun fragment rather than a complete statement, which slightly weakens the delivery but wastes no words.

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?

There is no output schema and no annotations, so the description's enumeration of return fields (title, path, type, body count) is genuinely load-bearing. For a zero-parameter getter, this is close to sufficient; only the read-only/active-document precondition is missing.

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

Parameters4/5

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

The tool takes zero parameters, so the baseline of 4 applies. No parameter semantics need explaining.

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

Purpose3/5

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

The Spanish fragment names the resource (documento activo) and enumerates the returned fields (título, ruta, tipo, número de cuerpos), so the agent can infer this is a metadata getter. However, it lacks a verb and offers no differentiation from sibling info tools like sw_mass_properties or sw_list_features, leaving the agent to guess its unique role.

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

Usage Guidelines2/5

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

There is no guidance on when to call this versus sw_list_features, sw_bbox, or sw_mass_properties, all of which also inspect the active document. No preconditions (e.g., a document must be open) or exclusions are stated.

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

sw_execute_scriptA

Ejecuta Python arbitrario contra la sesion de SOLIDWORKS, igual que el 'script' del MCP de Fusion. En el scope del script: sw (la aplicacion), doc (ActiveDoc, puede ser None), c (el modulo solidworks_mcp.core, alias sw_core: extrude, bodies_info, overall_bbox, features_info, save_as...), fx (features: revolve, shell, hole_wizard, circular/linear_pattern, mirror_body, draft, rib, ref_plane_offset, loft, sweep, chapa, ecuaciones, configuraciones, mass_props), mz (mecanizado: dfm_3ejes, export_cam) y am (ensamblaje: add_mate, interferences). Escribe en la variable 'result' para devolver datos estructurados; lo impreso por print() se devuelve en 'stdout'.

ANTES de escribir una llamada COM que no conozcas de memoria, consulta sw_api_doc(iface, member): devuelve el orden y tipo real de los parametros en esta instalacion mas su significado, el enum que los gobierna y las unidades (la API trabaja en METROS y radianes). Los metodos de features tienen 20+ parametros posicionales; adivinarlos falla en silencio.

readOnly=true declara que el script no modifica el documento. Se comprueba en dos pasos: antes de ejecutar se bloquea si el texto contiene una llamada con pinta de mutar (Feature*, Insert*, Set*, Save*...) o una asignacion a propiedad; despues de ejecutar se compara el numero de cuerpos, de caras y el flag de modificado del documento, y si algo cambio pese a todo se devuelve en 'readOnlyViolation' en vez de ocultarlo. ESTO NO ES UNA CAJA DE ARENA: es una red contra el despiste, no una barrera de seguridad; con COM cualquier script con acceso a doc puede llamar a lo que quiera. No hay limite de tiempo: un script que cuelga bloquea el servidor hasta que termine.

ParametersJSON Schema
NameRequiredDescriptionDefault
scriptYesCodigo Python a ejecutar.
readOnlyNoDeclara que el script no debe modificar el documento (ver arriba).

TDQS

A4.6/5.0
Behavior5/5

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

No annotations are provided, so the description carries the full burden and does so richly: the two-step readOnly enforcement (pre-execution textual block on Feature*/Insert*/Set*/Save* patterns, post-execution body/face/modified-flag comparison), the readOnlyViolation return on failure, the explicit 'this is not a sandbox' warning, and the no-timeout/hang-blocks-server caveat.

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?

Front-loaded with purpose, then scope, then prerequisites, then safety caveats — a logical order with every sentence carrying weight. It is dense and long, but for an arbitrary-code-execution tool the density is justified rather than filler.

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

Completeness5/5

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

For a tool with no output schema and full arbitrary-code power, the description covers return channels (result, stdout, readOnlyViolation), execution constraints (no timeout), safety limits, and prerequisite tooling. Nothing an agent needs to invoke it correctly is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds genuine meaning beyond the schema: it documents the injected scope names, the 'result' variable for structured output, and print() mapping to stdout. The readOnly parameter's semantics are also elaborated far beyond the schema's one-line note.

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

Purpose5/5

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

States a specific verb and resource: it runs arbitrary Python against the SOLIDWORKS session, explicitly analogous to Fusion's 'script' tool. The enumerated scopes (sw, doc, c, fx, mz, am) make it unmistakable against siblings like sw_extrude or sw_bbox, which are narrow single-operation tools.

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 clear conditional guidance, notably 'ANTES de escribir una llamada COM que no conozcas de memoria, consulta sw_api_doc(iface, member)', routing the agent to the right sibling for API signatures. It also explains how and when readOnly triggers its two-step check. It stops short of explicitly saying when to prefer this escape hatch over the dedicated sw_* tools, so 4 rather than 5.

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

sw_export_stepC

Exporta el documento activo a STEP.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesRuta absoluta .STEP

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It discloses that the source is the active document, but says nothing about overwrite behavior if the path exists, required permissions, whether the document must be saved first, or error/failure modes. For a file-writing operation this is a significant gap.

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?

A single short sentence with the verb and target format front-loaded; nothing is wasted. It is efficient, though its brevity is part of the under-specification problem rather than a virtue in itself.

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

Completeness2/5

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

No output schema and no annotations, so the description alone must cover behavior for a write-to-disk tool, and it does not mention overwrite risk, path validation, or return information. An agent calling this could easily clobber an existing file without warning.

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

Parameters3/5

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

With one parameter at 100% schema description coverage, the baseline is 3. The schema already specifies 'Ruta absoluta .STEP', and the description adds no further meaning (e.g., whether the extension is mandatory or auto-appended), so the schema does the heavy lifting.

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 (exporta) and resource (el documento activo) plus the target format (STEP), so an agent knows exactly what operation this performs. It does not, however, distinguish itself from the closest sibling sw_save_as, which also writes the active document out.

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

Usage Guidelines2/5

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

There is no indication of when to use this versus sw_save_as or sw_execute_script, no prerequisites (document must be open), and no exclusions. The agent must infer the trigger condition from the name alone.

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

sw_extrudeA

Croquis + extrusion en un solo paso sobre el documento activo. Todo en mm. El croquis va en el plano indicado y la extrusion crece en +Z desde z0 hasta z1 (z0 >= 0; si z1 < z0 se invierte). cut=true elimina material en vez de anadirlo.

ParametersJSON Schema
NameRequiredDescriptionDefault
z0YesCota inicial en mm, >= 0.
z1YesCota final en mm.
cutNo
nameNoNombre para la operacion en el arbol.
mergeNo
planeNoIndice del plano de referencia: 0 = primero del arbol (XY).
profileYesContornos del croquis, en mm. Cada entidad es uno de: {"type":"circle","x":0,"y":0,"d":10} | {"type":"rect","x0":0,"y0":0,"x1":10,"y1":5} | {"type":"polyline","points":[[0,0],[10,0],[10,5]],"close":true} | {"type":"hexagon","cx":0,"cy":0,"af":5,"rot":0}. Varias entidades en la misma lista = un solo croquis: un contorno exterior con otros dentro produce agujeros.
throughNoPor todo: ignora z1 como profundidad y atraviesa todo el material. z1 sigue marcando el sentido. Mas robusto que la profundidad ciega para agujeros pasantes.

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 it delivers real behavioral detail: units are mm, extrusion grows +Z from z0 to z1, the z1 < z0 case inverts direction, and cut=true switches from additive to subtractive. It does not mention document mutation side effects, undo, or rebuild requirements, but the core geometry behavior and the add/cut distinction are well disclosed.

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

Conciseness5/5

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

Four dense sentences, front-loaded with the operation and units, then geometry direction, then the cut modifier. No filler, and every clause carries information an agent needs.

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?

For an 8-parameter mutation tool with no annotations and no output schema, the description covers units, direction, inversion, and cut semantics well. It leaves the role of merge, name, and plane to the schema, which is acceptable given 75% coverage, though it could have noted the tool rebuilds/modifies the active document.

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

Parameters4/5

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

Schema coverage is 75%, so the schema already documents profile, plane, z0/z1 and through. The description adds cross-parameter semantics the schema lacks: the +Z growth direction, the z0 >= 0 constraint, the inversion rule when z1 < z0, and what cut=true means. This meaningfully exceeds the per-field descriptions.

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

Purpose5/5

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

States a precise verb+resource (combine sketch + extrusion in one step) and scopes it to the active document. No sibling covers extrusion, so it does not need to disambiguate against sw_new_part or the sw_api_* tools. An agent immediately knows a profile geometry becomes an extruded feature.

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

Usage Guidelines3/5

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

It implies the case for use ('en un solo paso') and the cut=true alternative for material removal, but gives no explicit when-to-use vs. when-not or a pointer to any alternative approach (e.g., scripting via sw_execute_script). Usage is inferable rather than stated.

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

sw_interferencesA

Interferencias del ENSAMBLAJE activo agrupadas por pareja de componentes (numero, volumen total y maximo en mm3). Puede tardar: ~40 s con 22 componentes.

ParametersJSON Schema
NameRequiredDescriptionDefault
coincidenceNoContar contactos coincidentes como interferencia.

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It usefully discloses the performance profile (~40 s for 22 components) and the shape of the result grouping, which goes beyond the schema. However it never says whether the operation is read-only or mutates/annotates the model, nor that an open assembly document is required, leaving key behavioral traits undisclosed.

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

Conciseness5/5

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

Two dense sentences: the scoping/return information is front-loaded and the practical timing warning is appended. Nothing is redundant and every clause carries information.

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, the description correctly tells the agent what comes back (per-pair count, total and max volume in mm3) and how long it may take. The remaining gap is that it does not state the read-only nature or the required document state, minor for a single-parameter query tool.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents the single 'coincidence' parameter. The description does not mention it at all, adding no meaning beyond the structured field; baseline 3 applies.

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?

The description states a specific verb+resource: it reports interferences within the active assembly, grouped by component pair, with count, total and max volume in mm3. That is far more concrete than a tautology. It does not explicitly distinguish itself from the sibling tools (e.g. sw_check_machining), though no sibling is a direct competitor, so it stops short of a 5.

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

Usage Guidelines3/5

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

Usage is implied rather than stated: the reference to the 'active assembly' hints at a precondition, and the timing note helps the agent decide whether to wait, but there is no explicit when-to-use, when-not, or alternative tool guidance. Minimum-viable guidance.

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

sw_list_bodiesB

Cuerpos solidos del documento activo con su caja envolvente en mm.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden, and it does at least disclose the return content and units (bounding box in mm). However it says nothing about whether hidden/suppressed bodies are included, ordering, or that it is a read-only operation — meaningful gaps for a zero-annotation tool.

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

Conciseness5/5

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

A single front-loaded sentence that names the resource and the returned data with zero filler. Well sized for the tool's simplicity.

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

Completeness3/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 should explain the return shape a bit more (e.g., one entry per body, ordering, whether the bbox is a min/max pair). It covers the essentials (bodies + bbox in mm) but leaves the response structure underspecified.

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

Parameters4/5

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

The tool takes zero parameters, so there is nothing to document; baseline 4 applies. The description's mention of mm units is a small bonus but not a parameter concern.

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: lists the solid bodies of the active document, and even names the payload (bounding box in mm). It does not explicitly differentiate itself from close siblings like sw_bbox or sw_list_features, so it lands at 4 rather than 5.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no mention of prerequisites (an active document / open model), and no pointer to alternatives such as sw_bbox or sw_list_features. The agent must infer that this applies only when a document is already open.

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

sw_list_featuresC

Arbol de operaciones del documento activo (nombre, tipo, suprimida).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It discloses the shape of each returned entry (name, type, suppressed) but says nothing about read-only behavior, ordering, pagination, or what 'documento activo' means if no document is open.

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?

One compact sentence with no filler, and the resource and returned fields are front-loaded. Slightly terse given what remains unexplained, but efficient.

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

Completeness3/5

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

For a simple listing tool with no output schema, the description adequately signals the return fields, but it omits the limit parameter, truncation behavior, and the read-only nature expected of an agent making this call. Partially complete.

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

Parameters2/5

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

Schema description coverage is 0% and the single parameter (limit, default 200) is never mentioned in the description, so its purpose, units, and ceiling are undocumented anywhere. The description does not compensate for the coverage 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 resource (the operation tree of the active document) and even enumerates the returned fields (nombre, tipo, suprimida). This distinguishes it from siblings like sw_list_bodies, though the verb is only implied by the tool name rather than stated.

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

Usage Guidelines2/5

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

No guidance on when to call this versus alternatives such as sw_list_bodies, sw_doc_info, or sw_rebuild; no prerequisites or context of use are given. The agent must infer that this is a read-only inspection call.

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

sw_mass_propertiesB

Propiedades fisicas del documento activo: volumen (mm3), area (mm2), masa (g), densidad (kg/m3) y centro de gravedad (mm). Si se pasa material, lo asigna antes (nombre del .sldmat, p.ej. '6061-T6 (SS)').

ParametersJSON Schema
NameRequiredDescriptionDefault
databaseNoSOLIDWORKS Materials
materialNo

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It does disclose an important side effect — passing 'material' assigns it to the document before measuring — which is meaningful behavioral context. However, it omits whether the assignment is persistent/reversible, permission needs, or failure behavior, leaving notable gaps.

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?

Two compact sentences, front-loaded with the returned quantities and units, then the conditional side effect. No filler. Minor awkwardness in the phrasing of the conditional clause, but nothing wasted.

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

Completeness3/5

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

No output schema exists, and the description usefully enumerates the return quantities with units, which covers the return gap. But with no annotations and zero schema coverage, the unexplained 'database' parameter and unstated document prerequisites leave the definition only partially complete for a measurement-plus-mutation tool.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It documents 'material' well (a .sldmat name with a concrete example), but says nothing about the 'database' parameter, leaving half the parameters undocumented in both schema and description.

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 resource and enumerates exactly what is computed/returned (volume, area, mass, density, center of gravity) with units, which lets an agent distinguish it from siblings like sw_bbox or sw_doc_info. It does not explicitly name a sibling it differs from, but the returned quantities are unambiguous.

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

Usage Guidelines3/5

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

Usage is only implied: the description notes the conditional behavior when 'material' is passed, but gives no explicit when-to-use/when-not or prerequisites (e.g. that a document must be open, or when to prefer sw_bbox for geometry queries). The tool being read-oriented is inferable but not stated.

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

sw_new_partA

Crea una pieza nueva con la plantilla por defecto y la deja activa. Por defecto fija unidades MMGS (mm): la plantilla de fabrica viene en METROS y los DXF/DWG de chapa saldrian en metros.

ParametersJSON Schema
NameRequiredDescriptionDefault
mmNofalse = dejar las unidades de la plantilla.

TDQS

A3.8/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 meaningfully disclose a non-obvious side effect: it overrides document units to MMGS by default and explains why (factory template is in metres, sheet-metal DXF/DWG would export in metres). It also states the document is left active.

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?

Two tight sentences: purpose first, then the units caveat. Every clause earns its place and the most important constraint is front-loaded after the purpose.

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?

For a simple one-parameter creation tool with no output schema and no annotations, the description covers purpose, unit behavior, and resulting document state. Only minor gaps remain, such as the exact template name or session requirements.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3, but the description adds real value beyond the schema by explaining the consequence of the default (mm=true → MMGS) and the reason for it, which is exactly the decision an agent must reason about.

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 and resource ('Crea una pieza nueva') plus the template used and the resulting document state ('la deja activa'). It is clearly distinct from sw_open by the word 'nueva', though it does not name that sibling explicitly.

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

Usage Guidelines3/5

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

Usage is implied by the name – you call it to start a fresh part – but there is no explicit when-to-use statement, no exclusion of alternatives such as sw_open, and no preconditions (e.g. active session).

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

sw_openA

Abre un documento existente (.SLDPRT/.SLDASM) y lo deja activo.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesRuta absoluta en Windows.

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are provided, so the description must carry behavioral disclosure. It discloses that the document is left active, which is a useful post-condition. But it does not mention error behavior for missing files, whether it requires an existing SolidWorks connection, or any side effects. For an open operation that's insufficiently rich, but the 'active' detail adds value.

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

Conciseness5/5

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

A single, front-loaded sentence with zero waste. It conveys the action, accepted formats, and the resulting active state.

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

Completeness3/5

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

For a one-parameter open tool with no annotations and no output schema, the description is minimally complete: it says what's opened and the effect. Missing prerequisites like 'requires sw_connect first' or error conditions keep it from being fully complete.

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

Parameters3/5

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

Schema coverage is 100%, and the schema already documents the single 'path' parameter including that it's an absolute Windows path. The description adds nothing beyond what the schema provides. Baseline 3 is appropriate when the schema does the work.

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 ('Abre') and resource ('documento existente') with supported extensions (.SLDPRT/.SLDASM), and notes it becomes active. However, it does not distinguish itself from the sibling sw_new_part (which creates new) beyond the word 'existente'. Adequate but sibling differentiation is thin.

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

Usage Guidelines3/5

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

Usage is implied: use this to open an existing document. No explicit when-to-use vs alternatives (e.g., vs sw_new_part or sw_connect) and no exclusions. Minimum viable.

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

sw_rebuildC

Fuerza reconstruccion del documento activo.

ParametersJSON Schema
NameRequiredDescriptionDefault
fullNo

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden, yet it discloses nothing about side effects, whether the rebuild can invalidate downstream features, whether it requires an open document/connection, or what happens on failure. Only the word 'Fuerza' hints at a forced/override behavior.

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

Conciseness3/5

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

A single front-loaded sentence with no padding, so it is concise, but its terseness comes at the cost of useful content rather than from disciplined editing.

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

Completeness2/5

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

For a state-changing operation on the active document with no annotations, no output schema, and an undocumented parameter, the description is too thin. An agent lacks enough information to call it confidently or predict its effect.

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

Parameters2/5

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

One parameter ('full') exists with 0% schema description coverage (no description, just a default), and the description does not mention it at all. The difference between a normal and a full rebuild is left entirely unexplained.

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?

"Fuerza reconstruccion del documento activo" states a specific verb (force rebuild) and resource (active document), which is enough to distinguish it from siblings like sw_new_part or sw_list_features. However, it never explains what a 'rebuild' means for the model or how it relates to editing operations, so it is clear but bare.

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

Usage Guidelines2/5

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

No indication of when to rebuild versus when not to, no prerequisites, and no mention of any alternative tool. The agent must infer that this is used after geometry changes.

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

sw_save_asC

Guarda el documento activo en la ruta dada, opcionalmente tambien en STEP.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesRuta absoluta con extension .SLDPRT/.SLDASM.
stepNo

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It does not say whether an existing file is overwritten, whether the active document's working path changes, whether a dialog or permission prompt appears, or what the tool returns on success or failure.

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?

A single tight sentence with the primary action front-loaded and the optional flag attached at the end. No filler, though it sacrifices detail for brevity.

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

Completeness2/5

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

For a mutation tool with zero annotations and no output schema, the definition is thin: overwrite behavior, error conditions, and the STEP output destination are all unstated, leaving the agent unable to predict the side effects of calling it.

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

Parameters3/5

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

Schema coverage is only 50%: path is fully documented in the schema (absolute path with .SLDPRT/.SLDASM extension), but step has no schema description. The description partially compensates by explaining that step optionally writes STEP as well, though it does not say where that STEP file lands.

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 and resource in Spanish: saves the active document to the given path. It is clear what happens, though it never distinguishes itself from the sibling sw_export_step despite both touching STEP output.

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

Usage Guidelines2/5

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

No when-to-use or when-not-to-use guidance. The only implied usage note is the optional STEP flag, and the agent gets no hint about whether to prefer this over sw_export_step or how they differ when step=true.

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

sw_screenshotB

Captura la vista activa a PNG. Equivalente al queryType 'screenshot' de Fusion: permite ver lo que se ha construido sin que el usuario este delante de la pantalla. Usa SaveBMP (unica exportacion de imagen confirmada en la typelib) y convierte a PNG con codigo propio, sin depender de Pillow.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoRuta .png de salida. Por defecto <datos>/out/screenshot.png (ver README: SW_MCP_DATA).
widthNo
heightNo
directionNoVista estandar antes de capturar. Los ViewId se verificaron con un barrido empirico (diag_view.py) comparando imagenes reales, no contra la typelib (esos IDs viven en una biblioteca de constantes que dump_api.py no llega a volcar). front e isometric se contrastaron ademas contra una captura manual del usuario.current

TDQS

B3.4/5.0
Behavior3/5

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

No annotations exist, so the description carries the full behavioral burden. It usefully discloses the export mechanism (SaveBMP as the only confirmed image export) and the no-Pillow conversion, but omits whether the view is mutated, what the tool returns, or any permissions/state requirements. Adds real value but leaves meaningful gaps.

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?

Three sentences, front-loaded with the core action, then use case, then implementation note. Little waste; the implementation detail is arguably relevant given the no-Pillow constraint, though it edges toward verbose.

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

Completeness3/5

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

No output schema and no annotations mean the description should ideally explain the return value (path? confirmation?), which it does not. It does cover output location and format, so the agent can call it correctly, but completeness for a file-producing tool is only partial.

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

Parameters3/5

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

Schema coverage is 50%: path and direction carry rich descriptions (direction's ViewId verification is unusually detailed), while width/height have only defaults. The description itself adds nothing to parameters, so the undocumented width/height must be inferred from type and defaults. Baseline 3 for partial coverage.

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: capture the active view to PNG, and reinforces it with an analogy to Fusion's 'screenshot' queryType. An agent can immediately tell this is a screen-capture tool, though it never explicitly contrasts against any sibling (e.g., sw_export_step for file export).

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

Usage Guidelines3/5

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

Provides an implied use case ('ver lo que se ha construido sin que el usuario este delante de la pantalla'), which tells the agent when remote inspection is wanted. However, there is no explicit when-not guidance, no prerequisites (e.g., document must be open/connected), and no named alternative.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 22 tool updatesv0.1.0
    • First observedsw_api_doc
    • First observedsw_api_enum
    • First observedsw_api_example
    • First observedsw_api_members
    • First observedsw_api_search
    • First observedsw_bbox
    • First observedsw_check_machining
    • First observedsw_close
    • First observedsw_connect
    • First observedsw_doc_info
    • First observedsw_execute_script
    • First observedsw_export_step
    • First observedsw_extrude
    • First observedsw_interferences
    • First observedsw_list_bodies
    • First observedsw_list_features
    • First observedsw_mass_properties
    • First observedsw_new_part
    • First observedsw_open
    • First observedsw_rebuild
    • First observedsw_save_as
    • First observedsw_screenshot

TDQS

B3.4/5.0

Scored across 22 tools

Disambiguation4/5

Each tool targets a distinct operation or resource, with the five sw_api_* tools clearly differentiated by purpose (search, doc, enum, members, example). Minor overlap exists between sw_bbox and sw_list_bodies (both report bounding boxes) and between sw_save_as (which can optionally export STEP) and sw_export_step, but descriptions disambiguate well.

Naming Consistency4/5

All tools use a consistent sw_ snake_case prefix, making them easy to recognize as part of the same server. However, the verb style varies: some are verb-first (sw_list_features, sw_open) while others are noun-first (sw_bbox, sw_mass_properties), a minor deviation from a pure verb_noun pattern.

Tool Count4/5

With 22 tools, the set is on the heavier side for a typical MCP server, but the breadth of SolidWorks automation (modeling, assembly, machining check, and API introspection) justifies most tools. No tool feels redundant enough to warrant removal, though some merging (e.g., bbox into list_bodies) could reduce count.

Completeness4/5

The server covers document lifecycle (new, open, save, close, export), inspection (bbox, mass, features, bodies), assembly interferences, and machining checks. Direct modeling tools are sparse (only extrude), but sw_execute_script plus extensive API documentation provides a complete escape hatch for any missing operation, leaving no dead ends.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables LLMs to automate SolidWorks (open/save parts, modify dimensions, export STEP) via COM, and optionally generate geometry using build123d code-CAD with PNG previews.
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables Claude to create and manipulate SolidWorks CAD models through natural language commands, automating part creation, sketching, and extrusion.
    10
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI (e.g., Claude) to control SolidWorks via natural language, automating part creation, sketching, and feature operations through the Model Context Protocol.
    1
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    Enables connecting MCP clients to local SolidWorks for automated 3D part creation, template generation, file export, and basic review via natural language.
    10
    3
    MIT