Skip to main content
Glama

altium-kp — MCP-сервер для Altium Designer

MCP server that lets an AI assistant (Claude Code, Claude Desktop, Cursor, any MCP client) drive Altium Designer on Windows without screen automation: schematic entry, ГОСТ/ЕСКД-style drawings, ECO, board outline, design rules, placement, autorouting, DRC, board statistics, DXF export for AutoCAD and BOM generation. Built for student PCB projects (курсовой «Разработка печатного узла средствами САПР»), useful for any Altium work.

Сервер управляет запущенным Altium Designer через его встроенный DelphiScript: генерирует скрипт, запускает его командой X2.EXE -RScriptingSystem:RunScript и получает результат в JSON. Мышь и экран не используются. Модальные окна Altium перехватываются: снимок окна возвращается ассистенту, окно закрывается, скрипт, остановленный в отладчике, снимается. Altium не остаётся заблокированным.

Проверено на Altium Designer 25.5 (Windows 11). Должно работать на AD 20+.

Что умеет (47 инструментов, полный список — TOOLS.md)

Этап

Инструменты

Проект и библиотеки

project_create (PrjPcb + SchDoc + PcbDoc, IntLib распаковывается в проект), project_open/close/add_documents/save_all, lib_list_components, lib_extract_intlib

УГО по ГОСТ

lib_create_gost_symbols: резисторы, конденсаторы (в т.ч. оксидные), диоды, стабилитроны, светодиоды, транзисторы n-p-n/p-n-p (и зеркальные), батареи, катушки, кварц, кнопки, соединители, микросхемы по ГОСТ 2.743; lib_create_symbols — любой символ из примитивов

Схема

sch_place_components (возвращает точки подключения выводов), sch_wire (ортогональные линии связи вывод→вывод, Т-ответвления с точками), sch_connect (метки цепей / порты питания), sch_draw, sch_update_components, sch_delete, sch_get_components

Оформление по ЕСКД

sch_gost_sheet (формат A4…A1, рамка 20/5 мм, основная надпись по форме 1 ГОСТ 2.104), sch_gost_style (шрифт ISOCPEUR, размеры по ГОСТ 2.304, горизонтальные позиционные обозначения у корпуса, чёрный цвет)

ERC и список связей

project_compile (ошибки, цепи, отчёт .md для приложений)

Плата

pcb_import_changes (ECO), pcb_set_board (контур, начало координат, keep-out, крепёжные отверстия), pcb_set_rules, pcb_get_components, pcb_place_components (by_center), pcb_auto_place_grid, pcb_autoroute (Situs), pcb_unroute, pcb_remove_rooms

Проверка и оценка

pcb_run_drc (нарушения с объектами, отчёт), pcb_statistics (коэффициент заполнения, длины проводников по слоям и цепям, ширины, переходные, таблица отверстий, неразведённые связи)

Выпуск документации

pcb_export_dxf (1:1, мм: контур, медь, площадки, отверстия с условными знаками, таблица сверления — для чертежа ПП в AutoCAD), bom_export (перечень элементов по ГОСТ 2.701 в .docx/.xlsx/.csv)

Расчёты

calc_pcb_mounting (ширина проводников по току и падению напряжения, зазоры, отверстия, контактные площадки, переходные — ГОСТ 23751), calc_board_size (МЭК 297-3 / ГОСТ 10317), calc_power

Всё остальное

altium_run_script (любой DelphiScript с помощниками), altium_run_process, altium_dialogs, altium_click_button, altium_screenshot, altium_status

Пример результата: examples/blinker — мультивибратор от пустой папки до схемы Э3 на листе A3 с основной надписью, разведённой платы, DRC, DXF и перечня элементов, одним скриптом.

Related MCP server: KiCAD MCP Server

Установка

Нужны Windows, Altium Designer, Python 3.10+.

git clone https://github.com/luxsordel/altium-kp-mcp.git
cd altium-kp-mcp
python -m venv .venv
.venv\Scripts\pip install -e .

Claude Code:

claude mcp add --scope user altium-kp -- "<path>\altium-kp-mcp\.venv\Scripts\python.exe" -m altium_kp

Claude Desktop / другие клиенты (claude_desktop_config.json):

{
  "mcpServers": {
    "altium-kp": {
      "command": "C:\\path\\altium-kp-mcp\\.venv\\Scripts\\python.exe",
      "args": ["-m", "altium_kp"]
    }
  }
}

Сервер сам находит C:\Program Files\Altium\AD*\X2.EXE (новейшую версию) и запускает Altium, если тот закрыт. Переменные окружения: ALTIUM_X2 — путь к X2.EXE, ALTIUM_KP_EXCHANGE — папка обмена (по умолчанию C:\Users\Public\altium_kp). Для текстов по ГОСТ нужен шрифт ISOCPEUR (ставится с AutoCAD; можно указать другой в sch_gost_style/sch_gost_sheet).

Типичный сценарий (что просить у ассистента)

  1. «Создай проект в папке X с библиотекой Miscellaneous Devices.IntLib и сгенерируй библиотеку ГОСТ-УГО с посадочными местами…»

  2. «Нарисуй схему по этому списку цепей на листе A2 по ГОСТ, основная надпись: …» → sch_place_components + sch_wire + sch_gost_sheet + sch_gost_style

  3. «Проверь ERC и перенеси на плату» → project_compile, pcb_import_changes

  4. «Рассчитай печатный монтаж для класса точности 3, плата 100×80, выставь правила, расставь компоненты, разведи» → calc_*, pcb_set_board, pcb_set_rules, pcb_place_components, pcb_autoroute

  5. «DRC, коэффициент заполнения, DXF для AutoCAD и перечень элементов» → pcb_run_drc, pcb_statistics, pcb_export_dxf, bom_export

Ограничения (честно)

  • Только Windows и только с установленным Altium Designer (используется его скриптовый движок).

  • Зеркалирование размещённых компонентов из скрипта не работает — для транзисторов есть зеркальные УГО (VT_NPN_M, VT_PNP_M).

  • Приоритет правил из скрипта не задаётся — pcb_set_rules делает области правил ширины непересекающимися.

  • Толщина/материал платы — в Layer Stack Manager (скриптовое API стека в AD25 только для чтения).

  • Коэффициенты в calc_pcb_mounting (j_доп = 20 А/мм², позиционные допуски) типовые — сверяйте с вашей методичкой.

  • Если в Altium открыт другой проект с документами тех же имён, компилятор Altium их путает — project_compile предупреждает, закройте лишний проект (project_close).

  • Автотрассировщик и pcb_auto_place_grid — отправные точки; качественная расстановка задаётся координатами (by_center).

  • Сервер не подписан и запускает Altium с параметрами командной строки; проверяйте результат скриншотами (altium_screenshot).

Как это устроено

  • altium_kp/bridge.py — запуск DelphiScript в Altium, ожидание результата, перехват окон, межпроцессная блокировка.

  • altium_kp/prelude.pas, lib.pas — помощники DelphiScript (JSON-вывод, поиск проектов/документов, схема, плата).

  • altium_kp/server*.py — инструменты MCP; gost.py — геометрия УГО и основной надписи; calc.py, export.py — расчёты, DXF, перечень.

Подводные камни DelphiScript, найденные по ходу (могут пригодиться): обратный слэш в строковых литералах — escape (используйте Chr(92)); if True or (...) не разбирается; объекты платы, сложенные в TList, нельзя удалить (ищите и удаляйте по одному); Rule.Priority не присваивается; процессы ECO/компиляции работают с «текущим» проектом (DM_SetAsCurrentProject); компилятор кэширует единицы и размер листа при открытии документа.

Благодарности

Идея связки Python ↔ DelphiScript и шаблон скриптового проекта KP_Exec.PrjScr — по мотивам coffeenmusic/altium-mcp (MIT). Хорошо дополняет этот сервер: embedded-society/altium-designer-mcp — чтение/запись .SchLib/.PcbLib без Altium.

Лицензия

MIT

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables AI assistants like Claude to interact with KiCAD for PCB design automation, providing comprehensive tool schemas and real-time project state access.
      63 npm
      2
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables AI assistants to interact with KiCAD for PCB design automation. Users can design PCBs using natural language, including component placement, routing, checks, and export.
      63 npm
      MIT
    • A
      license
      B
      quality
      C
      maintenance
      Enables AI assistants to interact with KiCAD for PCB design automation, including schematic editing, component placement, routing, DRC/ERC, and export.
      100
      27 npm
      2
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables AI clients to drive Altium Designer by reading the active document context, editing schematics, PCBs, and component libraries, and managing live bridge sessions with automatic recovery and source-snapshot script deployment. It bundles three coordinated servers (a Python control bridge, a legacy Python bridge, and an independent Rust library file server) that can be installed and configured on Windows alongside a running Altium instance.
      8
      MIT