solidworks-mcp-python
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PYTHONPATH | No | Without `pip install`, point `PYTHONPATH` at the `src` folder instead, e.g. `"env": {"PYTHONPATH": "C:\\path\\to\\solidworks-mcp-python\\src"}`. | |
| SW_MCP_DATA | No | Location for the local API index data. Everything lands in `data/` (or `%LOCALAPPDATA%\solidworks-mcp`, or `SW_MCP_DATA`). |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| sw_connectA | Adjunta a la instancia de SOLIDWORKS en marcha y devuelve version y documento activo. SOLIDWORKS debe estar ya abierto. |
| sw_doc_infoB | Titulo, ruta, tipo y numero de cuerpos del documento activo. |
| 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. |
| sw_openA | Abre un documento existente (.SLDPRT/.SLDASM) y lo deja activo. |
| 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. |
| sw_list_bodiesB | Cuerpos solidos del documento activo con su caja envolvente en mm. |
| sw_bboxB | Caja envolvente global en mm: min, max, tamano y centro. |
| 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)'). |
| 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. |
| 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. |
| sw_list_featuresC | Arbol de operaciones del documento activo (nombre, tipo, suprimida). |
| sw_rebuildC | Fuerza reconstruccion del documento activo. |
| sw_save_asC | Guarda el documento activo en la ruta dada, opcionalmente tambien en STEP. |
| sw_export_stepC | Exporta el documento activo a STEP. |
| 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. |
| sw_api_searchA | Busca miembros de la API COM de SOLIDWORKS. Dos modos: 'pattern' = regex sobre la typelib real de esta instalacion (api_index.txt, volcado por dump_api.py: nombre exacto, orden y tipo de cada parametro); 'text' = busqueda de texto libre sobre la ayuda oficial 2026 (sw_api_index.sqlite: resumen, parametros y remarks), para cuando no sabes como se llama lo que buscas ('bounding box', 'save body as part', 'mass properties'). Con el nombre en la mano, sw_api_doc da la ficha completa. |
| 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'. |
| 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"). |
| 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. |
| 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. |
| 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. |
| sw_closeA | Cierra el documento activo. No guarda salvo que save=true. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 22 tools
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.
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.
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.
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.