Skip to main content
Glama

Battenmark

AI 에이전트와 소프트웨어를 위한 개방형, 백엔드 중립 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 커널(헤드리스 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

골든 스모크 모델

공식 릴리스 스모크 테스트는 80 × 50 × 12 mm 상자 = 48,000 mm³이며, JSCAD, FreeCAD, HTTP, CLI, MCP 및 Python 클라이언트(test:transport-parity)를 통해 검증됩니다. 이 테스트 픽스처를 함부로 변경하지 마십시오.

기능

  • 명시적 스키마를 갖춘 백엔드 중립의 타입 형식 CAD 연산(agentcad_schema_version: 2)

  • FreeCAD/OpenCASCADE 기반의 신뢰할 수 있는 B-rep; JSCAD 미리보기

  • 스칼라 파라미터 표현식 및 종속성 평가

  • 편집 후 재해석되는 의미적 면/모서리 선택자(top_perimeter, …)

  • 명시적인 유실/모호 오류가 포함된 영구 지오메트리 참조(gref)

  • 관통 / 블라인드 / 카운터보어 / 카운터싱크 홀

  • 필렛 및 모따기 · 선형 및 직사각형 패턴

  • STEP / FCStd / STL 호환 · 사방-png 미리보기

  • 백엔드별 기능 탐색을 지원하는 동적 백엔드 레지스트리

  • 종료/재실행 복구를 갖춘 단일 직렬화 FreeCAD 워커

플랫폼 상태

플랫폼

상태

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

지원 및 검증되지 않음

알려진 제한 사항

이 소프트웨어는 프리-1.0 알파 버전입니다. API는 변경될 수 있습니다.

  • 아직 어셈블리, 메이트 또는 어셈블리 구속조건이 없습니다.

  • 원형 패턴 없음

  • 나사산은 코스메틱 메타데이터일 뿐이며 나선형 솔리드가 아닙니다.

  • STEP 가져오기는 형상 가져오기일 뿐, 자동 파라메트릭 재구성이 아닙니다.

  • 네이티브 FCStd 문서는 이전 PartDesign 피처 형상을 유지합니다. Battenmark는 현재 결과를 반환하며(최종 Body Tip 측정).(과거 솔리드를 합산하면 중복 집계됨)

  • 단일 직렬화 FreeCAD 워커(풀링 없음)

  • 미리보기 렌더링은 OCC 숨김선이 아닌 JSCAD입니다.

  • 완전한 위상적 이름 명명법은 아직 해결되지 않았으며, 영구 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

호환 식별자

공식 브랜드는 Battenmark입니다. 레거시 엔지니어링 식별자는 의도적으로 유지되며, 이는 두 번째 브랜드가 아니라 호환성 인터페이스입니다: 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를 참조하세요.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    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.
    3
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to programmatically build, analyze, and export 3D CAD geometry using FreeCAD through REST or MCP tools.
    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.
    121 npm
    29
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables engineering agents to perform parametric CAD operations through a controlled MCP gateway built on FreeCAD, with transactions, diagnostics, and reproducible verification.
    2
    GNU Lesser General Public v2.1 only