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