lambdacad-mcp

lambdacad-mcp

MCP server that lets AI draw in AutoLISP-capable CAD (reference BricsCAD on Linux) via a file bridge, enabling 2D drafting, 3D solid modeling, and verification with 100 tools.

Category
Visit Server

README

λ lambdacad-mcp

Let AI draw in your CAD. An MCP server for any AutoLISP-capable CAD — no COM, no SDK, no plugins. Pure AutoLISP. The reference adapter drives BricsCAD on Linux: the first MCP server for a professional DWG CAD on Linux.

License: Apache 2.0 Platform: Linux Python 3.10+ Tools: 100 MCP Registry Glama score lambdacad-mcp MCP server

"Draw a DN80 flange: front view, hatched section, dimensions — then model it in 3D."

lambdacad-mcp demo: AI draws a complete flange in BricsCAD, 2D + 3D

Real-time capture, unedited: front view with bolt circle, hatched section, radial/diameter dimensions, leader, title block — then the same flange modeled as a 3D solid with an AI-written parametric AutoLISP loop and one boolean subtraction. ~20 seconds, 12 tool calls.

Complete 2D drawing, drawn by Claude 3D solids with booleans Clean render for AI vision
2D flange 3D solids bracket render

Why this exists

Every other MCP server for a professional DWG CAD (multiCAD-mcp, autocad-mcp, CAD-MCP, ...) talks to the CAD through Windows COM — none of them can run on Linux, and none of them does real 3D.

BricsCAD is the professional DWG CAD that does run natively on Linux. This server drives it through a mechanism that needs no API at all: an AutoLISP file bridge. The MCP server writes LISP expressions to a file, triggers a tiny MCP command inside the CAD, and reads the result back. That's the whole trick — and it unlocks everything the CAD can do, including 3D solid modeling.

Because the bridge is plain AutoLISP + standard DXF entmake + AutoCAD-compatible commands, it is portable by construction: AutoCAD, ARES Commander (also Linux-native!), ZWCAD, GstarCAD and the IntelliCAD family all speak the same language. Porting means swapping the autoload file name and the keystroke trigger — adapters welcome.

MCP client (Claude, Cursor, ...)            BricsCAD (Linux)
        │                                        │
        ▼                                        ▼
  server.py (FastMCP, 100 tools)          c:MCP AutoLISP command
        │        writes LISP  ──►  /tmp/mcp_bricscad.in
        │        triggers via xdotool ──► reads, evals line by line
        │        reads result ◄──  /tmp/mcp_bricscad.out

What it can do

  • Full 2D drafting — lines/arcs/polylines/splines, real HATCH (with islands), dimensions incl. radius/diameter/angular, leaders, linetypes (chain/hidden), text styles, trim/extend/fillet/chamfer/offset/mirror/arrays, blocks
  • Semantic shapes — slot, bolt_circle, rounded_rect, polygon, center_mark: one call, the server does the math
  • 3D solid modeling — box/cylinder/sphere/cone/wedge/torus, extrude/revolve/sweep, union/subtract/intersect, slice — and flatshot_view: auto-generate correct 2D drawing views from the 3D model
  • Batch & atomic — draw_batch executes N operations in one round-trip, wrapped in one undo group (one batch = one Ctrl+Z)
  • Talk about what the user selected — get_selection reads the GUI pickfirst set; select_by/select_window highlight what the AI found before acting; modify tools accept "selection"
  • Verification without screenshots — bounding boxes, key points, exact lengths/areas, intersection checks (collision detection), solid volume/centroid
  • Eyes when needed — render_view: BricsCAD's internal PNG render (clean, no UI, ~30 KB) for vision models
  • Deliverables — save DWG, export DXF and PDF
  • Escape hatch — run_lisp evaluates arbitrary AutoLISP (multi-line, multi-expression): capable models write parametric code and love it

Full reference: docs/TOOLS.md · How it works: docs/ARCHITECTURE.md

Measured, not promised

Metric Result
Tool calls for a complete dimensioned flange 200 → 22 (9× fewer round-trips vs primitive-per-call)
Trigger latency 0.25 s per call
Error reporting per-line LISP errors (msg=L2: ...) → models self-correct without screenshots
Exactness entity_length on an r=20 circle: 125.664 / 1256.637 (2πr, πr² exact)

Details and model-behavior notes (Sonnet writes parametric LISP, Haiku uses typed tools): docs/BENCHMARKS.md

Quick start

Requirements: Linux, BricsCAD (any recent version — tested on V26), Python 3.10+, xdotool.

git clone https://github.com/Psalmustrack/lambdacad-mcp
cd lambdacad-mcp
./install.sh

The installer creates a venv, installs the AutoLISP bridge into BricsCAD's Support/on_doc_load.lsp (idempotent, marker-delimited), and prints ready-to-paste config for Claude Code / Claude Desktop.

Then:

  1. Start BricsCAD and open a drawing (the bridge loads when a document opens).
  2. Start a new AI session — the bricscad tools appear.
  3. Ask: "draw the plan of a 4×3 m room with a door and dimensions".

Configuration (env vars)

Variable Default Purpose
BRICS_DISPLAY session $DISPLAY X display where BricsCAD runs (e.g. :77 for a nested Xephyr)
BRICS_COMPACT off 1 = expose only 14 essential tools (~1k schema tokens instead of ~7k) for clients that inject every schema
BRICS_MCP_IN / BRICS_MCP_OUT /tmp/mcp_bricscad.{in,out} bridge file paths

Security note

run_lisp and run_command execute arbitrary code inside BricsCAD by design — that's what makes the server fully general. Only connect MCP clients you trust, and treat the bridge files as trusted input. The bridge itself never loads foreign files (read+eval only) and honors BricsCAD's SECURELOAD.

Troubleshooting

Symptom Fix
ERR: BricsCAD window not found Is BricsCAD running on BRICS_DISPLAY?
ERR: no response from BricsCAD Is a drawing open (not the Start page)? The bridge loads on document open.
Commands typed into the drawing as text Click once inside the drawing area so the command line has focus, then retry.
Wayland Works via XWayland; if your compositor struggles with heavy CAD redraws, run BricsCAD under a nested X server (Xephyr) and set BRICS_DISPLAY.

Related projects

Project CAD Platform 3D
λ lambdacad-mcp (this) any AutoLISP CAD — BricsCAD reference Linux yes
multiCAD-mcp AutoCAD/BricsCAD/ZWCAD via COM Windows no
puran-water/autocad-mcp AutoCAD LT (LISP bridge) Windows no
hvkshetry/autocad-mcp AutoCAD LT Windows no
freecad-mcp (various) FreeCAD cross-platform yes (FreeCAD)

Credit where due: multiCAD-mcp inspired the project; puran-water/autocad-mcp independently validated the LISP-bridge approach on Windows.

Roadmap

  • Focus-free dispatch (targeted X synthetic events — no window activation)
  • In-process socket bridge (no keystroke trigger, ~0 latency)
  • VIEWBASE paper-space drawing views; sheet metal (SMUNFOLD) and BIM commands
  • Compact-mode behavioral benchmark

License

Apache 2.0 — with an explicit patent grant and trademark protection for the lambdacad-mcp name.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured