Статус: v3+ работает — эскиз→операции→STEP→сборка→move_face→структурный осмотр→богатые эскизы→shell (51 инструмент)

КОМПАС-3D MCP-сервер
управление CAD языком LLM

MCP-сервер, который превращает операции КОМПАС-3D — создание документов, эскизы, 3D-операции, параметры — в инструменты для языковой модели. Под капотом — COM Automation API АСКОН.

.NET 8 · C# транспорт stdio COM Automation · API7 / API5 Windows x64 КОМПАС-3D v24 Home 👁 зрение агента
Возможности

Что умеет MCP-сервер

Инструменты сгруппированы вокруг живого инженерного цикла моделирования — от подключения к КОМПАС до построения и опроса детали.

🔌

Подключение к КОМПАС

Attach к запущенному или launch нового экземпляра по ProgID, переход на API7 через ksGetApplication7(), управление видимостью окна.

📄

Документы

Создание, открытие, сохранение и закрытие деталей, сборок, чертежей и фрагментов через IDocuments.

✏️

Эскизы

Эскиз на плоскости или грани, примитивы (линия, окружность, дуга, прямоугольник), безопасный цикл BeginEdit → EndEdit.

🧊

3D-операции

Выдавливание и вырез, вращение, перестроение. Управление направлением, глубиной и типом окончания (ksEndTypeEnum).

🔍

Структурный осмотр

describe_model — паспорт детали (МЦХ, тела, дерево, переменные) одним вызовом. describe_face · describe_edge · measure. Предпочтительнее снимка — без расхода токенов изображения.

🎯

Выборка и запросы

Перечисление граней, рёбер и компонентов сборки с классификацией; МЦХ, габарит. list_faces · list_edges · list_components.

📦

STEP импорт / экспорт

Импорт .step/.stp в новый документ (деталь или сборка, создание файлов компонентов); экспорт в AP203/AP214/AP242 через встроенный конвертер КОМПАС.

✂️

Прямое редактирование

move_face: сдвинуть грань на N мм вдоль нормали (наружу или внутрь). Работает на импортированной B-rep через FaceMover API7.

👁️

Зрение агента

Рендер модели в PNG через временный файл и возврат как image-контент MCP — агент видит результат. Fallback после describe_model для визуально-пространственных вопросов.

Ядро сценария

Цикл «эскиз → операция → эскиз»

Главный пользовательский поток v1 — итеративное параметрическое моделирование с визуальной проверкой: рисуем профиль, превращаем в объём, смотрим на результат, выбираем грань, рисуем следующий профиль.

01

Документ

создать деталь (part)

02

Эскиз

на плоскости XOY, профиль

03

Выдавить

boss-операция → тело

04 👁

Снимок

агент видит результат

05

Выбрать грань

по точке на теле

06

Вырез

новый эскиз → cut

Повторять со зрением — снимок → новая грань → новый эскиз → новая операция → снова снимок, пока деталь не готова

Технологии

Стек решения

Выбор обоснован первоклассным COM-интеропом .NET и официальным C# MCP SDK — подробности в документе архитектуры.

Платформа
.NET 8C# · win-x64
MCP SDK
ModelContextProtocolтранспорт stdio
Интероп
COM AutomationAPI7 + API5 (.tlb)
Потоки
STA-потокнасос сообщений
Прогресс

TODO проекта

Честный срез состояния: фундамент подготовки готов, реализация сервера — впереди.

Общий прогрессv3+: STEP · move_face · структурный осмотр · богатые эскизы (пакет A) · shell (пакет B) · навык kompas-3d · 51 инструмент · 79 тестов

Подготовка ГОТОВО

Исследование, документация и инструменты разработчика

  • Исследование SDK и COM API (API5/API7, паттерны подключения)
  • CLAUDE.md — гайд по репозиторию и API
  • Навигатор по справке: kdoc.py (навык kompas-sdk-research) + индекс на 26k стр.
  • Документ архитектуры docs/ARCHITECTURE.md
  • Выбор стека: .NET/C#, stdio, цикл «эскиз↔операция»
  • Решение о визуальной обратной связи (зрение агента, рендер в растр)

Фундамент v1 ГОТОВО

Скелет сервера и связь с КОМПАС

  • Спайки S1–S4: interop, подключение, STA, рендер
  • Решение Core/Host/Tests, Directory.Build.props, git
  • Маппинг перечислений (enum ↔ строка)
  • STA-диспетчер (выделенный поток, очередь задач)
  • MCP-хост на stdio, логи в stderr
  • Подключение по ProgID (attach/launch)

Инструменты v3+ ГОТОВО

51 инструмент, отдаются по MCP-протоколу

  • System: connect · status · set_visible
  • Documents: create · open · save · save_as · close · active
  • Sketch: create · on_face (точка/индекс) · add line/circle/arc/arc_3points/rectangle/axis/ellipse/polyline/polygon/spline/point · close
  • Features: extrude · revolve · fillet_edge/chamfer_edge (точка + индекс) · shell (оболочка) · rebuild
  • Edit: move_face (прямое редактирование B-rep)
  • Inspection: describe_model · list_features · list_bodies · list_variables · describe_face · describe_edge · measure
  • Vision: model_snapshot 👁️ (fallback)
  • Query: get_part_info · get_bounding_box · list_faces · list_edges · list_components
  • Conversion: import_step · export_step
  • Пакет B (продолжение: rib/draft/loft/sweep/hole) · пакет C (массивы) · рассечение/перемещение тела

Качество и поставка В РАБОТЕ

Тесты, сборка, интеграция с клиентом

  • Unit-тесты — без COM: диспетчер, enum-маппинг, StepFormat, InspectionText
  • Интеграционные тесты с КОМПАС: подключение, документы, снимок, цикл, STEP round-trip, сборка, move_face, инспекция
  • Итого 79 тестов зелёных (47 unit + 32 integration)
  • Сборка kompas-mcp.exe, README с конфигом клиента
  • Навык kompas-3d (методика) + полигон usecases/
  • In-process тест MCP-клиента, релизный publish
Дорожная карта

После v1

Наращиваем покрытие API волнами — от простых операций к параметрике, черчению и сборкам.

v1 · готово ✓

Цикл моделирования

Документы, эскизы, выдавливание/вырез, снимок модели

v2 · готово ✓

Операции, выборка, STEP

Эскиз на грани · вращение · скругление/фаска · list_faces/edges · import_step · export_step · list_components · навык kompas-3d

v3 · готово ✓

B-rep + структурный осмотр

move_face (сдвиг грани на N мм) · describe_model · list_features · list_bodies · list_variables · describe_face · describe_edge · measure

пакет A · готово ✓

Богатые эскизы

arc · arc_3points · ellipse · polyline · polygon · spline · point (+7 инструментов); PartModeler разбит на partial-классы; SketchGeometry

пакет B · в работе

Формообразующие операции

shell ✓ (оболочка) · далее: rib · draft · loft · sweep · hole · пакет C (массивы) · рассечение тела

далее

2D + сборки + транспорт

Виды, размеры, штриховки · построение сборок, сопряжения; HTTP/SSE-транспорт