Статус: v1 работает — цикл эскиз→выдавливание→снимок через MCP (18 инструментов)

КОМПАС-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).

🎯

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

Выбор грани точкой для следующего эскиза, перечисление тел и граней, массово-центровочные характеристики детали.

👁️

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

Рендер модели в PNG прямо в память (resultArrayBytes) и возврат как image-контент MCP — агент видит результат и строит пошагово. Плюс set_view: ориентация и zoom-to-fit перед снимком.

🛟

Escape-hatch

Прямой вызов команд КОМПАС через ExecuteKompasCommand для того, что ещё не обёрнуто в типизированные инструменты.

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

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

Главный пользовательский поток 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 проекта

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

Общий прогрессv1 работает · 12 тестов зелёные · доки и ревью

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

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

  • Исследование SDK и COM API (API5/API7, паттерны подключения)
  • CLAUDE.md — гайд по репозиторию и API
  • Навигатор по справке: tools/kdoc.py + индекс на 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)

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

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

  • System: connect · status · set_visible
  • Documents: create · open · save · save_as · close · active
  • Sketch: create · add line/circle/rectangle · close
  • Features: extrude_boss · extrude_cut · rebuild
  • Vision: model_snapshot 👁️
  • Query: select_face · list_bodies · get_part_info (далее)

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

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

  • Unit-тесты диспетчера (5) — без COM
  • Интеграционные тесты с КОМПАС (7): подключение, документы, снимок, цикл
  • Сквозной прогон по MCP-протоколу (tools/call → PNG)
  • Сборка kompas-mcp.exe, README с конфигом клиента
  • In-process тест MCP-клиента, релизный publish
Дорожная карта

После v1

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

v1 · готово ✓

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

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

v2 · далее

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

Выбор граней, эскиз на грани, вращение, скругление/фаска, массивы

v3

Параметрика

Переменные IVariable7, свойства IPropertyMng, формулы

v4

2D-черчение

Виды, размеры, тексты, штриховки; спецификации

v5

Сборки и экспорт

Компоненты, сопряжения, конвертеры (STEP), HTTP/SSE-транспорт