Skip to main content
Glama

Battenmark

Открытая, нейтральная к бэкенду CAD-инфраструктура для ИИ-агентов и программного обеспечения.

CI License schema MCP

Battenmark предоставляет типизированный, нейтральный к бэкенду интерфейс для создания, редактирования, проверки, валидации и экспорта эталонной CAD-геометрии на взаимозаменяемых CAD-бэкендах. Вызывающий код запрашивает create_hole, но никогда — PartDesign::Hole. Моделью не владеет ни один транспорт; её владельцем является один канонический сервис.

ChatGPT / Claude / Gemini / Grok / Codex / local models / IDE agents / custom apps
                                   │
                    MCP / HTTP / Python / CLI
                                   │
                                   ▼
                         Battenmark Core
                                   │
                    typed CAD operations / CAD IR
                                   │
                        Backend Registry
                                   │
             ┌─────────────────────┼──────────────────────┐
             ▼                     ▼                      ▼
          FreeCAD                JSCAD              future adapters
     authoritative B-rep        preview        build123d/CadQuery/etc.
  • FreeCAD / OpenCascade — эталонное ядро B-rep (headless JSON-lines воркер)

  • JSCAD — внутрипроцессный бэкенд предпросмотра/оболочки (не источник истины)

Быстрый старт

Требования: Node.js ≥ 20 и npm. FreeCAD необязателен для основного сервиса и требуется только для эталонного B-rep бэкенда.

npm install
npx tsc --noEmit   # type check
npm test           # fast kernel-free suites (parametric, selectors, registry)

Бэкенд FreeCAD

sh scripts/bootstrap-macos.sh      # macOS: discovers /Applications/FreeCAD.app
sh scripts/install-freecad.sh      # Linux: installs headless 1.0.2 AppImage (no FUSE)
npm run test:freecad               # proves the real worker end-to-end

Порядок обнаружения: $AGENTCAD_FREECAD_CMD → пакеты macOS FreeCAD.app → Homebrew → извлечённый Linux AppImage → PATH. См. docs/MACOS.md и docs/LINUX.md.

Транспорты

Транспорт

Точка входа

MCP stdio

npx agentcad-mcp

HTTP

npx agentcad serve --port 8787, затем /api/v1/... (Bearer-токен через AGENTCAD_API_TOKEN)

CLI

npx agentcad --help

Python

python/agentcad — см. примеры

Пример использования Python-клиента:

from agentcad import AgentCad

c = AgentCad(base_url="http://127.0.0.1:8787", token="secret-token")
pid = c.project_create("demo")["project_id"]
c.create_box(pid, 80, 50, 12)
print(c.rebuild(pid)["data"]["volume_mm3"])   # 48000

Related MCP server: freecad-tool-server

Эталонная smoke-модель

Канонический релизный smoke-тест — это объединение 80 × 50 × 12 мм = 48 000 мм³, проверяемый через JSCAD, FreeCAD, HTTP, CLI, MCP и Python-клиент (test:transport-parity). Не меняйте этот фикстур без веской причины.

Возможности

  • Типизированные операции, нейтральные к бэкенду, с явной схемой (agentcad_schema_version: 2)

  • Эталонный B-rep FreeCAD/OpenCascade; предпросмотр JSCAD

  • Скалярные параметрические выражения и вычисление зависимостей

  • Семантические селекторы граней/рёбер (top_premeter, …), которые переинициализируются после правок

  • Постоянные геометрические ссылки (gref) с явными ошибками «потеряно/неоднозначно»

  • Сквозные / закованные / с цековкой / с зенковкой отверстия

  • Скругления и фаски · линейные и прямоугольные массивы

  • Обмен STEP / FCStd / STL · предпросмотр PNG в четырёх проекциях

  • Динамический реестр бэкендов с определением возможностей для каждого бэкенда

  • Один последовательный воркер FreeCAD с восстановлением через kill/restart

Статус платформ

Платформа

Статус

macOS Apple Silicon

Tier 1 — подтверждено на реальном оборудовании (arm64, macOS 26.6.2, FreeCAD 1.1.3)

Linux x86_64

headless / валидировано для разработки (FreeCAD 1.0.2 AppImage)

macOS Intel

не проверено

Windows

не поддерживается / не проверено

Известные ограничения

Это альфа-ПО до версии 1.0; API могут меняться.

  • Сборки, сопряжения и ограничения сборки отсутствуют

  • Нет круговых масси [no circular patterns]

  • Резьбы — это косметические метаданные, а не спиральные тела

  • Импортированный STEP — это только импорт геометрии, а не автоматическая её реконструкция

  • Нативные FCStd-документы сохраняют исторические формы PartDesign; Battenmark измеряет итоговый Tip Body (суммирование исторических тел даёт двойной счёт)

  • Один последовательный воркер FreeCAD (плохие пулы)

  • Предпросмотр рендерится в JSCAD, а не в режиме скрытых линий OCC

  • Полное топологическое именование не решено; постоянные gref смягчают эту проблему

Полный список: docs/LIMITATIONS.md.

Документация

Тема

Документация

Архитектура и основы

docs/ARCHITECTURE.md · docs/FOUNDATION.md

Контракт операций и схема

docs/CONTRACT.md · docs/VERSIONING.md

Бэкенды и ядра

docs/BACKENDS.md · docs/FREECAD.md · docs/JSCAD.md · docs/KERNEL.md

Транспорты

docs/MCP.md · docs/HTTP.md · docs/CLI.md · docs/PYTHON.md · docs/CLIENTS.md

Сервис и хранение данных

docs/SERVICE.md · docs/AUTH.md

Импорт / экспорт и предпросмотр

docs/IMPORT.md · docs/PREVIEW.md

Платформы и валидация

docs/MACOS.md · docs/LINUX.md · docs/RELEASE.md

Идентификаторы совместимости

Публичный бренд — Batternmark. Исторические инженерные идентификаторы сохранены намеренно и представляют собой интерфейс совместимости, а не второй бренд: AgentCadService, agentcad_schema_version, переменные окружения AGENTCAD_*, бинарные файлы agentcad / agentcad-mcp. Внутренняя версия сервиса 0.5.6 намеренно отличается от тега релиза; см. docs/VERSIONING.md.

Участие в разработке и безопасность

См. CONTRIBUTING.md и SECURITY.md. Кодекс поведения: CODE_OF_CONDUCT.md.

Лицензия

Apache-2.0 для этого репозитория. FreeCAD/OpenCascade запускаются как отдельный процесс под лицензией LGPL (скрипты воркера выполняются внутри FreeCADCmd). См. LICENSE, NOTICE и THIRD_PARTY_NOTICES.md.

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
<1hResponse time
Release cycle
1Releases (12mo)
Commit activity

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

  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables AI to directly call FreeCAD for 3D modeling via the MCP protocol, providing 39 modeling tools including primitive creation, boolean operations, transformations, and export.
    2
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to programmatically build, analyze, and export 3D CAD geometry using FreeCAD through REST or MCP tools.
    1
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables agent-driven CAD design through deterministic source files (.kcad.ts), including model evaluation, validation, and export to STEP/STL via MCP tools for review and introspection.
    95
    14
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    AI pilots FreeCAD. Provides full control of FreeCAD for parametric modeling, assembly, geometry sensing, and more via MCP tool calls.
    33
    6
    MIT

View all related MCP servers

Related MCP Connectors

  • Create, browse, remix, collaborate on, and run durable AI workflow nodes from MCP hosts.

  • OCR, transcription, file extraction, and image generation for AI agents via MCP.

  • Generate, edit, and deploy immersive 3D/WebGL web projects from any MCP assistant.

View all MCP Connectors

Latest Blog Posts

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/halsyourpal422/Battenmark'

If you have feedback or need assistance with the MCP directory API, please join our Discord server