Skip to main content
Glama
Christancho-co

solidworks-mcp

solidworks-mcp

MCP-сервер, который управляет локальной установкой SOLIDWORKS для создания и изменения параметрических твердотельных моделей.

Проверено на SOLIDWORKS 2026 SP0 (ревизия 34.0.0) в Windows 11.

Как это работает

MCP client  ──stdio──►  solidworks-mcp  ──COM──►  SLDWORKS.exe

SOLIDWORKS предоставляет классический COM-API для автоматизации. Сервер подключается к запущенному экземпляру (или запускает его), и каждый инструмент отображается на этот API.

Все длины указаны в миллиметрах, все углы — в градусах. Внутри API SOLIDWORKS использует метрическую систему СИ; преобразование происходит на границе инструментов.

Related MCP server: solidworks-mcp

Требования

  • Установленный и лицензированный SOLIDWORKS на той же машине.

  • Python 3.12+ (64-битный) — он должен соответствовать архитектуре SOLIDWORKS, иначе COM не свяжется.

  • uv для управления зависимостями.

Установка

uv sync

Регистрация в MCP-клиенте

Для Claude Code:

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

Для клиента, который читает JSON-конфигурацию:

{
  "mcpServers": {
    "solidworks": {
      "command": "uv",
      "args": ["--directory", "E:\\solid", "run", "solidworks-mcp"]
    }
  }
}

Инструменты

Сеанс и документыsolidworks_status, new_part, open_part, save_part, close_part

Эскизы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

Элементыextrude, cut_extrude, revolve, fillet, select_entity, clear_selection

Параметрическое управлениеlist_features, list_dimensions, set_dimension, add_equation, list_equations, rebuild

Проверкаget_measurements, capture_view

Практический пример

Создание пластины 80 × 50 × 10 мм с отверстием, а затем параметрическое управление ею:

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")

Полезно знать

Эскизы, созданные через API, не имеют размеров. SOLIDWORKS добавляет управляющие размеры только по запросу, поэтому эскиз, нарисованный только инструментами sketch_*, не имеет чем управлять. Вызывайте add_sketch_dimension, пока эскиз ещё открыт, если планируете изменять геометрию позже.

Направление выреза следует нормали эскиза. Для эскиза на фронтальной плоскости, вырезающего тело, которое было выдавливанием создано от неё, требуется reverse=True, иначе вырез уходит в пустоту и завершается ошибкой.

Имена базовых плоскостей локализованы. В испанской установке элементы называются Croquis1 и Saliente-Extruir1. Инструменты принимают логические псевдонимы front/top/right и определяют их по позиции в дереве элементов, поэтому работают независимо от языка интерфейса. list_planes сообщает фактические имена.

SOLIDWORKS должен быть запущен. Поддерживаемого безголового режима нет. Сервер запускает приложение, если оно ещё не открыто.

Модальные диалоги блокируют COM. add_sketch_dimension временно отключает настройку «ввод значения размера», которая иначе открыла бы модальное окно и зависла бы при вызове, и восстанавливает её после.

Примечания по реализации

Две особенности pywin32 формируют код, и о них легко споткнуться:

  • COM-члены без аргументов вызываются автоматически при обращении к атрибуту. При позднем связывании doc.GetTitle возвращает строку заголовка; doc.GetTitle() вызывает TypeError: 'str' object is not callable. Члены с одним или несколькими аргументами вызываются обычным образом.

  • Типизированные null и входные/выходные параметры требуют явных VARIANT. Необязательные интерфейсные аргументы отклоняют голый None с ошибкой «Type mismatch» и требуют VARIANT(VT_DISPATCH, None); выходные параметры ошибок и предупреждений требуют VARIANT(VT_BYREF | VT_I4, 0), при этом результат считывается из .value.

COM-объекты живут в однопотоковом апартаменте, поэтому com_bridge.py пропускает каждый вызов через один выделенный поток. Значения перечислений в constants.py были прочитаны из swconst.tlb, а не переписаны из документации, потому что некоторые отличаются от часто цитируемых значений — swEndCondThroughAllBoth равно 9, а не 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