solidworks-mcp
solidworks-mcp
MCP-сервер, который управляет локальной установкой SOLIDWORKS для создания и изменения параметрических твердотельных моделей.
Проверено на SOLIDWORKS 2026 SP0 (ревизия 34.0.0) в Windows 11.
Как это работает
MCP client ──stdio──► solidworks-mcp ──COM──► SLDWORKS.exeSOLIDWORKS предоставляет классический COM-API для автоматизации. Сервер подключается к запущенному экземпляру (или запускает его), и каждый инструмент отображается на этот API.
Все длины указаны в миллиметрах, все углы — в градусах. Внутри API SOLIDWORKS использует метрическую систему СИ; преобразование происходит на границе инструментов.
Related MCP server: SolidworksMCP
Требования
Установленный и лицензированный 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.
This server cannot be deployed
Maintenance
Related MCP Connectors
Headless CAD engine & MCP server for 2D/3D drafting, solids, DXF/SVG export, and automation.
- OwlCADOAuthcom.owlcad
Parametric 3D CAD for AI agents: build print-ready parts, check them, export STL, 3MF or STEP.
- ApricotOAuthtools.apricot
Manage SysML2 projects; check, evaluate, verify, query, document and diagram models.
Design, solve and simulate HVAC systems from real components, weather years and buildings.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables 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
- FlicenseNot gradedqualityBmaintenanceEnables 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-
- AlicenseBqualityBmaintenanceEnables 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.401MIT
- AlicenseNot gradedqualityBmaintenanceEnables 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