solidworks-mcp
solidworks-mcp
Un servidor MCP que controla una instalación local de SOLIDWORKS para crear y modificar modelos sólidos paramétricos.
Verificado con SOLIDWORKS 2026 SP0 (revisión 34.0.0) en Windows 11.
Cómo funciona
MCP client ──stdio──► solidworks-mcp ──COM──► SLDWORKS.exeSOLIDWORKS expone una API de automatización COM clásica. El servidor se conecta a una instancia en ejecución (o inicia una), y cada herramienta se asigna a esa API.
Todas las longitudes están en milímetros y todos los ángulos en grados. La API de SOLIDWORKS es métrica-SI internamente; la conversión ocurre en el límite de la herramienta.
Related MCP server: solidworks-mcp
Requisitos
SOLIDWORKS instalado y con licencia, en la misma máquina.
Python 3.12+ de 64 bits — debe coincidir con la arquitectura de SOLIDWORKS o COM no se vinculará.
uv para la gestión de dependencias.
Instalación
uv syncRegistrar con un cliente MCP
Para Claude Code:
claude mcp add solidworks -- uv --directory E:\solid run solidworks-mcpPara un cliente que lee una configuración JSON:
{
"mcpServers": {
"solidworks": {
"command": "uv",
"args": ["--directory", "E:\\solid", "run", "solidworks-mcp"]
}
}
}Herramientas
Sesión y documentos — solidworks_status, new_part, open_part,
save_part, close_part
Dibujo — list_planes, start_sketch, start_sketch_on_face,
sketch_line, sketch_centerline, sketch_circle, sketch_rectangle,
sketch_arc, sketch_polygon, sketch_ellipse, add_sketch_dimension,
add_sketch_relation, finish_sketch
Operaciones — extrude, cut_extrude, revolve, fillet, select_entity,
clear_selection
Control paramétrico — list_features, list_dimensions, set_dimension,
add_equation, list_equations, rebuild
Inspección — get_measurements, capture_view
Un ejemplo práctico
Construyendo una placa de 80 × 50 × 10 mm con un agujero, y luego manejándola paramétricamente:
new_part
start_sketch(plane="front")
sketch_rectangle(0, 0, 80, 50)
add_sketch_dimension(entities=[[40, 0]], value=80) -> "D1@Croquis1"
add_sketch_dimension(entities=[[0, 25]], value=50) -> "D2@Croquis1"
finish_sketch
extrude(depth=10)
start_sketch(plane="front")
sketch_circle(40, 25, 8)
finish_sketch
cut_extrude(depth=10, end_condition="through_all", reverse=True)
fillet(radius=5, edges=[[0,0,5], [80,0,5], [80,50,5], [0,50,5]])
set_dimension("D1@Croquis1", 120) -> the solid rebuilds to 120 mm wide
get_measurements -> bounding box 120 x 50 x 10 mm
capture_view("isometric")Cosas que conviene saber
Los croquis creados a través de la API no tienen cotas. SOLIDWORKS solo añade
cotas de conducción cuando se las pides, así que un croquis dibujado solo con
sketch_* no tiene nada que conducir. Llama a add_sketch_dimension mientras el
croquis sigue abierto si pretendes cambiar la geometría más tarde.
La dirección del corte sigue la normal del croquis. Un croquis en el Plano
Frontal que corta un sólido que fue extruido alejándose de él necesita
reverse=True, de lo contrario el corte viaja hacia el espacio vacío y falla.
Los nombres de los planos de referencia están localizados. Una instalación en
español nombra las operaciones Croquis1 y Saliente-Extruir1. Las herramientas
aceptan los alias lógicos front/top/right y los resuelven por posición en el
árbol de operaciones, por lo que funcionan independientemente del idioma de la
interfaz. list_planes informa de los nombres reales.
SOLIDWORKS debe estar en ejecución. No hay un modo sin interfaz compatible. El servidor inicia la aplicación si no está ya abierta.
Los diálogos modales bloquean COM. add_sketch_dimension desactiva
temporalmente la preferencia "introducir valor de cota", que de otro modo abriría
una ventana modal y colgaría la llamada, y la restaura después.
Notas de implementación
Dos comportamientos de pywin32 dan forma al código y son fáciles de tropezar:
Los miembros COM de cero argumentos se invocan automáticamente al acceder a un atributo. Con enlace tardío,
doc.GetTitledevuelve la cadena del título;doc.GetTitle()lanzaTypeError: 'str' object is not callable. Los miembros que toman uno o más argumentos se llaman normalmente.Los nulos tipados y los parámetros de entrada/salida necesitan VARIANTs explícitos. Los argumentos de interfaz opcionales rechazan un
Nonesimple con "Type mismatch" y necesitanVARIANT(VT_DISPATCH, None); los parámetros de salida de error y advertencia necesitanVARIANT(VT_BYREF | VT_I4, 0), con el resultado leído de.value.
Los objetos COM viven en un apartamento de un solo hilo, así que com_bridge.py
canaliza cada llamada a través de un hilo dedicado. Los valores de enumeración en
constants.py se leyeron de swconst.tlb en lugar de transcribirse de la
documentación, porque algunos difieren de los valores comúnmente citados —
swEndCondThroughAllBoth es 9, no 8.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables 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
- AlicenseNot gradedqualityCmaintenanceEnables AI (e.g., Claude) to control SolidWorks via natural language, automating part creation, sketching, and feature operations through the Model Context Protocol.1MIT
- AlicenseNot gradedqualityBmaintenanceControl SolidWorks with plain language. Provides 89 tools for sketching, solid features, assemblies, and model feedback.1MIT
- AlicenseNot gradedqualityCmaintenanceMCP server for controlling a live SOLIDWORKS session through the Windows COM API, enabling native CAD operations like sketches, features, bodies, views, and exports, plus transactional plans and vectorization.1MIT
Related MCP Connectors
Agent-first CAD: editable .kcad.ts source, deterministic review, OpenCASCADE kernel.
Convert Revit files to XKT, IFC, or DWG and query BIM data via natural language.
Revit model query + APS Design Automation runner.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Christancho-co/solidworks-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server