Battenmark
Battenmark
Infraestructura CAD abierta y neutral respecto al backend para agentes de IA y software.
Battenmark ofrece una interfaz tipada y neutral respecto al backend para crear, editar,
inspeccionar, validar y exportar geometría CAD autoritativa a través de
backends CAD intercambiables. Quien la invoca solicita create_hole, nunca
PartDesign::Hole. Ningún transporte posee el modelo; lo hace un único servicio canónico.
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 — kernel B-rep autoritativo (trabajador headless de líneas JSON)
JSCAD — backend de vista previa/envolvente en el mismo proceso (no es la fuente de verdad)
Inicio rápido
Requisitos previos: Node.js ≥ 20 y npm. FreeCAD es opcional para el servicio principal y solo se requiere para el backend B-rep autoritativo.
npm install
npx tsc --noEmit # type check
npm test # fast kernel-free suites (parametric, selectors, registry)Backend de 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-endOrden de detección: $AGENTCAD_FREECAD_CMD → paquetes de macOS FreeCAD.app →
Homebrew → AppImage de Linux extraído → PATH. Consulta docs/MACOS.md
y docs/LINUX.md.
Transportes
Transporte | Punto de entrada |
MCP stdio |
|
HTTP |
|
CLI |
|
Python |
|
Ejemplo de cliente 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
Modelo golden de prueba de humo
La prueba de humo canónica de lanzamiento es una caja de 80 × 50 × 12 mm = 48 000 mm³,
verificada mediante JSCAD, FreeCAD, HTTP, CLI, MCP y el cliente Python
(test:transport-parity). No cambies este fixture a la ligera.
Capacidades
Operaciones CADe tipadas y neutrales el backend con esquema explícito (
agentcad_schema_version: 2)B-rep autoritativo FreeCAD/OpenCascade; vista previa JSCAD
Expresiones de parámetros escalares y evaluación de dependencias
Selectores semánticos de caras/bordes (
top_perimeter, …) que se re-resuelven tras los cambiosReferencias de geometría persistentes (
gref) con errores explícitos de pérdida o ambigüedadOrificios pasantes, ciegos, con avellanado cilíndrico y avellanado cónico
Redondeos y chaflanes · patrones lineales y rectangulares
Intercambio STEP / FCStd / STL · vistas previas PNG en cuatro vistas
Registro dinámico de backends con descubrimiento de capacidades por backend
Un único worker de FreeCAD serializado con recuperación ante kill o reinicio
Estado de la plataforma
Platform | Estado |
macOS Apple Silicon | Nivel 1 — verificado en hardware (arm64, macOS 26.6.2, FreeCAD 1.1.3) |
Linux x86_64 | headless / validado para desarrollo (FreeCAD 1.0.2 AppImage) |
macOS Intel | sin verificar |
Windows | no compatible / sin verificar |
Limitaciones conocidas
Este es software alpha pre-1.0; las the APIs pueden cambiar.
Aún no hay ensamblajes, aceros no restricciones de ensamblado
Aún no hay patrones circulares
Las roscas son datos metadatos decorativos, no sólidos helicoidales
Importar STEP es una importación geométrica, no una reconstrucción paramétrica automática
Los documentos FCStd nativos conservan los shape de las características históricas de PartDesign; Battenmark mide la Punta final del Body (sumar los sólidos históricos produciría doble contación)
Un único worker de FreeCAD serializado (sin pooling)
El render en vista previa es JSCAD, no línea oculta de OCC
El nombrado topológico completo no está resuelto; el
grefpersistente lo mitiga
Lista completa: docs/LIMITATIONS.md.
Documentación
Tema | Doc |
Arquitectura y fundamentos | |
Contrato de operación y esquema de | |
Backends y motores | docs/BACKENDS.md · docs/FREECAD.md · docs/JSCAD.md · docs/KERNEL.md |
Transportes | docs/MCP.md · docs/HTTP.md · docs/CLI.md · docs/PYTHON.md · docs/CLIENTS.md |
Servicio y persistencia | |
Importa / exportación y vista previa | |
Plataformas y validación |
Identificadores de compatibilidad
La branding pública es Battenmark. Los identificadores históricos de ingeniería se mantienen a propósito y son una superficie de compatibilidad ", no, not a second brand:
AgentCadService, agentcad_schema_version, variables de entorno AGENTCAD_*,
los binarios agentcad / agentcad-mcp. La versión interna del servicio 0.5.6
difiere intencionalmente de la etiqueta de la release; consultar
docs/VERSIONING.md.
Contribución y seguridad
Ver CONTRIBUTING.md y SECURITY.md. Consulta el Código de conducta: CODE_OF_CONDUCT.md.
Licencia
Apache-2.0 para este repositorio. FreeCAD/OpenCASCADE se invoca como un procesoLGPL separado (los scripts del worker run inside FreeCADCmd). Consultar LICENSE, NOTICE y 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