Skip to main content
Glama

Battenmark

Infraestructura CAD abierta y neutral respecto al backend para agentes de IA y software.

CI License schema MCP

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-end

Orden 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

npx agentcad-mcp

HTTP

npx agentcad serve --port 8787 y luego /api/v1/... (token Bearer mediante AGENTCAD_API_TOKEN)

CLI

npx agentcad --help

Python

python/agentcad — consulta examples

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"])   # 48000

Related 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 cambios

  • Referencias de geometría persistentes (gref) con errores explícitos de pérdida o ambigüedad

  • Orificios 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 gref persistente lo mitiga

Lista completa: docs/LIMITATIONS.md.

Documentación

Tema

Doc

Arquitectura y fundamentos

docs/ARCHITECTURE.md · docs/FOUNDATION.md

Contrato de operación y esquema de

docs/CONTRACT.md · docs/VERSIONING.md

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

docs/SERVICE.md · docs/AUTH.md

Importa / exportación y vista previa

docs/IMPORT.md · docs/PREVIEW.md

Plataformas y validación

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

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.

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