Battenmark
Battenmark
Открытая, нейтральная к бэкенду CAD-инфраструктура для ИИ-агентов и программного обеспечения.
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 |
|
HTTP |
|
CLI |
|
Python |
|
Пример использования 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"]) # 48000Related 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/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 |
Сервис и хранение данных | |
Импорт / экспорт и предпросмотр | |
Платформы и валидация |
Идентификаторы совместимости
Публичный бренд — 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.
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
- FlicenseNot gradedqualityCmaintenanceEnables 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
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to programmatically build, analyze, and export 3D CAD geometry using FreeCAD through REST or MCP tools.1MIT
- AlicenseNot gradedqualityAmaintenanceEnables 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.9514MIT
- AlicenseAqualityAmaintenanceAI pilots FreeCAD. Provides full control of FreeCAD for parametric modeling, assembly, geometry sensing, and more via MCP tool calls.336MIT
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.
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/halsyourpal422/Battenmark'
If you have feedback or need assistance with the MCP directory API, please join our Discord server