Skip to main content
Glama
Christancho-co

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: 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 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 documentossolidworks_status, new_part, open_part, save_part, close_part

Dibujolist_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

Operacionesextrude, cut_extrude, revolve, fillet, select_entity, clear_selection

Control paramétricolist_features, list_dimensions, set_dimension, add_equation, list_equations, rebuild

Inspecciónget_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.

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    Not graded
    quality
    B
    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
  • A
    license
    Not graded
    quality
    C
    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
    Not graded
    quality
    C
    maintenance
    MCP 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.
    1
    MIT

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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