Battenmark
Battenmark
面向 AI 智能体与软件的开源、后端中立 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 内核(无头 JSON-lines worker)
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
黄金冒烟测试模型
发布时验证的标准冒烟测试是 80 × 50 × 12 mm 的方块 = 48,000 mm³,已通过 JSCAD、FreeCAD、HTTP、CLI、MCP 和 Python 客户端验证(test:transport-parity)。请勿随意更改此测试夹具。
能力
后端中立的类型化 CAD 操作,带有显式 schema(
agentcad_schema_version: 2)FreeCAD / OpenCascade 权威 B-rep;JSCAD 预览
标量参数表达式与依赖求值
语义化面 / 边选择器(
top_perimeter等),可在编辑后重新解析持久化几何引用(
gref),并带有明确的丢失 / 歧义错误通孔 / 盲孔 / 沉孔 / 锥形沉孔
圆角与倒角 · 线性阵列与矩形阵列
STEP / FCStd / STL 交换 · 四视图 PNG 预览
动态后端注册表,支持按后端进行能力发现
单一串行化的 FreeCAD worker,支持 kill / restart 恢复
平台状态
平台 | 状态 |
macOS Apple Silicon | Tier 1 —— 硬件实测通过(arm64、macOS 26.6.2、FreeCAD 1.1.3) |
Linux x86_64 | 无头 / 开发验证通过(FreeCAD 1.0.2 AppImage) |
macOS Intel | 未验证 |
Windows | 不支持 / 未验证 |
已知限制
这是 pre-1.0 的 alpha 阶段软件,API 可能发生变更。
尚无装配体、配合或装夹约束
暂无圆弧阵列
螺纹只是装饰性元数据,并非螺旋实体
导入的 STEP 仅作为几何数据导入——并非自动参数化重建
原生 FCStd 文档会保留历史 PartDesign 特征形状;Battenmark 度量最终的 Body Tip(将历史实体相加会产生重复)
单一串行化的 FreeCAD worker(无连接池)
预览渲染基于 JSCAD,而非 OCC 隐藏线算法
完整的拓扑命名问题尚未解决;持久化的
gref可缓解这一困难
完整列表:docs/LIMITATIONS.md。
文档
主题 | 文档 |
架构与基础 | |
运行契约与 schema | |
后端与内核 | 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 |
服务与持久化 | |
导入 / 导出 与预览 | |
平台与验证 |
兼容性标识符
对外品牌是 Battenmark。历史工程标识符有意保留,并作为兼容性表面而非第二品牌:AgentCadService、agentcad_schema_version、AGENTCAD_* 环境变量、agentcad / agentcad-mcp 可执行文件。内部服务版本 0.5.6 特意不同于发布 tag;详见 docs/VERSIONING.md。
贡献与安全
参见 CONTRIBUTING.md 和 SECURITY.md。 行为准则:CODE_OF_CONDUCT.md。
许可证
本仓库采用 Apache-2.0。FreeCAD / OpenCascade 以单独 LGPL 进程的方式被调用(worker 脚本在 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