Skip to main content
Glama
solidworks-mcp

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.exe

SOLIDWORKS 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: SolidworksMCP

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 sync

Registrar con un cliente MCP

Para Claude Code:

claude mcp add solidworks -- uv --directory E:\solid run solidworks-mcp

Para 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.GetTitle devuelve la cadena del título; doc.GetTitle() lanza TypeError: '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 None simple con "Type mismatch" y necesitan VARIANT(VT_DISPATCH, None); los parámetros de salida de error y advertencia necesitan VARIANT(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.

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
    B
    maintenance
    Enables control of a live SOLIDWORKS session through the Windows COM API, providing native sketch, feature, body, reference-geometry, view, probe, and export operations, along with transactional CAD plans, parametric sketches, multibody tools, and deterministic raster-to-sketch vectorization pipelines.
    1
    -
  • A
    license
    B
    quality
    B
    maintenance
    Enables MCP clients like Claude to automate SOLIDWORKS 2025 and SOLIDWORKS CAM via COM, covering parts, assemblies, drawings, and CAM toolpaths. It generates real geometry, mass properties, and posted G-code files directly on disk.
    40
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to build, measure, verify, and correct parametric SolidWorks parts and assemblies locally via the COM API, supporting operations like sketching, extruding, modeling, dimensioning, material assignment, export, and assembly mating.
    MIT