Skip to main content
Glama
sandraschi

QCAD MCP

QCAD MCP

AI-driven 2D CAD automation — DXF/DWG parsing, 3D extrusion, persistent file depot, room analysis, and full CRUD management. 42 MCP tools for DXF processing. Your AI assistant becomes a QCAD Pro operator.

You might use this if…

You want your AI to process floor plans programmatically, convert DXF to 3D for Resonite/Unity3D, maintain a persistent CAD file depot, or automate drafting workflows.

What it connects to

ezdxf (free Python engine) for all parsing + rendering + extrusion + analysis

Ports

Backend 11966, Dashboard 11967

Start

just bootstrap then start.ps1

MCP Tools

Tool

Access

Purpose

plan_depot

READ

List files in the persistent CAD depot with metadata

plan_info

READ

DXF metadata: layers, entity counts, bounding box, blocks

plan_create

MUTATE

Create DXF from primitives (line, rect, circle, text, polyline)

plan_to_svg

MUTATE

DXF → SVG preview with layer filtering

plan_extrude

MUTATE

DXF walls → 3D STL mesh (configurable height/thickness)

plan_export

MUTATE

DXF → SVG/PNG/PDF (ezdxf or QCAD Pro)

plan_analyse

READ

Room detection, area calculation, door/window identification

plan_measure

READ

Measure distances and lengths in a DXF

plan_wall_data

READ

Extract wall segments as BIM-ready JSON (QCAD Pro)

plan_beam_analysis

READ

2D beam FEM analysis (numpy, no QCAD needed)

plan_dimension

MUTATE

Add aligned/linear/angular/radial dimensions (QCAD Pro)

plan_text

MUTATE

Add text annotations (QCAD Pro)

plan_hatch

MUTATE

Add hatch patterns (QCAD Pro)

plan_block_insert

MUTATE

Insert CAD blocks from library (QCAD Pro)

plan_array

MUTATE

Rectangular/polar array patterns (QCAD Pro)

plan_convert

MUTATE

Convert between DXF and DWG (QCAD Pro)

plan_modify

MUTATE

Delete/offset/rename/freeze layers

plan_script

MUTATE

Execute arbitrary ECMAScript in QCAD Pro

plan_render

MUTATE

High-fidelity SVG/PDF/BMP render via QCAD Pro

plan_exec

MUTATE

Quick ECMAScript snippet execution

plan_blocks

READ

Search 4800+ CAD blocks from part library

plan_blocks_download

MUTATE

Download a block DXF from library

plan_scripts_search

READ

Search QCAD ECMAScript scripts gallery

plan_scripts_download

MUTATE

Download a script from gallery/Gist

qcad_status

READ

QCAD Pro install/running/version report

plan_agentic

MUTATE

NL → ECMAScript via AI sampling (MCP only, needs QCAD Pro)

plan_transpile

MUTATE

AutoLISP → QCAD ECMAScript translation (MCP only, needs QCAD Pro)

plan_generate

MUTATE

Floor-plan DXF from a text brief via local LLM

plan_stack

MUTATE

Multi-storey wall extrusion to STL

plan_obj / plan_glb

MUTATE

Extrusion output → OBJ / GLB (Resonite path)

plan_drawings

READ

Drawing-set helpers for multi-sheet DXF

plan_auto_dimension

MUTATE

Auto-dimension wall geometry (BIM)

plan_building_meta

READ

Building/storey metadata for BIM handoff

plan_to_ifc_data

READ

Wall data as IFC-shaped JSON

qcad_help

READ

Live help catalog: tools, REST routes, config

qcad_shutdown

READ

Orderly server shutdown (confirm=true)

Related MCP server: autocad-mcp

Fleet Crossconnects (Companions)

qcad-mcp works completely standalone. You can optionally connect it with companion servers in the sandraschi fleet to unlock extended features:

Companion Server

Feature Unlocked

Status

Setup

blender-mcp

3d-scene-extrusion, render-dxf-layouts

Optional

Install Guide

freecad-mcp

2d-draft-to-parametric-3d

Optional

Install Guide

Self-Contained Companions: Fleet companions operate independently. Installing companions does not trigger transitive dependency chains.

CAD Depot (Persistent File Storage)

All CAD files are stored in a persistent depot at %LOCALAPPDATA%\qcad-mcp\depot — survives server restarts and system reboots. Configurable via QCAD_MCP_DEPOT env var.

Depot CRUD via REST API:

Endpoint

Method

Description

/api/v1/depot

GET

List all files with metadata (size, dates, description, tags)

/api/v1/depot/{name}

GET

Download a DXF file

/api/v1/depot/{name}

PUT

Rename or update description/tags

/api/v1/depot/{name}

DELETE

Remove file + metadata sidecar

/api/v1/depot/create

POST

Create DXF from JSON entity spec (line, rect, circle, text, polyline)

/api/v1/depot/upload

POST

Upload DXF/DWG directly to depot

REST API

Endpoint

Method

Description

/api/v1/status

GET

Server health, ezdxf version, QCAD Pro status

/api/v1/upload

POST

Upload DXF/DWG (also saved to depot)

/api/v1/download/{name}

GET

Download SVG/STL/PDF/PNG outputs

/api/v1/files

GET

List all files (depot + outputs)

/api/v1/depot/*

GET/PUT/DELETE

Full CRUD on the persistent CAD depot

/api/v1/control/tool

POST

Execute any MCP tool

/api/v1/logs/stream

GET

SSE live log stream

/api/v1/chat

POST

Chat with CAD expert via Ollama

/api/v1/settings

GET/PUT

LLM + extrusion defaults + QCAD Pro path

Webapp Pages

Route

Page

Description

/

Dashboard

Hero banner, QCAD Pro status panel, depot stats, ezdxf version

/demo

AI CAD Demo

NL → floor plan → SVG → 3D STL. Baroque church, mob compound, art museum presets

/depot

Depot

Full CRUD file browser with SVG preview, create DXF wizard, upload, rename, delete

/viewer

Viewer

DXF upload + SVG preview with per-layer toggle

/extrude

Extrude

DXF → STL with wall height/thickness/wall-layer controls

/analyse

Analyse

Room detection, area table, door/window list

/layers

Layers

Layer visibility, freeze/lock, rename, bulk operations

/blocks

Blocks

Search 4800+ CAD blocks from library with download

/scripts

Scripts

Browse QCAD ECMAScript scripts gallery + save local scripts

/agentic

AI Agent

Autonomous multi-step CAD workflow (QCAD Pro)

/batch

Batch

Run info/analysis/extrude across all depot files. STL batch extrude with gallery

/pipeline

Pipeline

5-step wizard: describe → SVG → analyse → STL → FreeCAD wall data export

/playground

Playground

Tool API tester: select any tool, edit JSON args, execute, view raw response

/models

Models

Uploads vs outputs listing with download

/logs

Logs

Live SSE log viewer with filter/export/pause

/settings

Settings

LLM provider/model, extrusion defaults, QCAD Pro path

/help

Help

10-tabbed reference: QCAD, ezdxf, tools, pipeline, formats, fleet

docs/floorplan-sources.md

—

Free, paid, and historic floorplan sources + raster→DXF pipeline

Quick Start

just bootstrap   # uv sync + npm install
start.ps1        # kills zombies, starts backend + frontend, opens browser

Install (Claude Desktop, Windows)

irm https://github.com/sandraschi/qcad-mcp/releases/latest/download/install.ps1 | iex

Installs the stable qcad-mcp.mcpb bundle into Claude Desktop. Other clients (Cursor, VS Code, OpenCode): use uvx with the stdio entry:

{
  "mcpServers": {
    "qcad-mcp": {
      "command": "uv",
      "args": ["run", "--directory", "D:\\Dev\\repos\\qcad-mcp", "run_server.py"]
    }
  }
}

MCP Client Config

{
  "mcpServers": {
    "qcad": {
      "url": "http://localhost:11966/sse",
      "transport": "sse"
    }
  }
}

Raster → DXF Pipeline (Planned)

Scanning a floorplan print into a working DXF is straightforward:

Book/magazine page → scanner (300-600 DPI)          inkscape-mcp
                         ↓                          (Trace Bitmap)
                    Potrace / Inkscape                    ↓
                         ↓                          QCAD MCP
                    Raw vector DXF                    (plan_modify)
                         ↓
                    Clean up in QCAD / plan_modify

Step

Tool

What it does

Scan

Any scanner

300-600 DPI, grayscale or B&W, save as PNG/TIFF

Vectorize

inkscape-mcp trace_bitmap() or potrace CLI

Converts raster lines to SVG paths

Convert

SVG → DXF (via potrace or ezdxf)

Opens in any CAD program

Clean

qcad-mcp plan_modify

Merge short segments, delete stray marks, re-layer, re-dimension

Two approaches:

  1. inkscape-mcp route — send the scanned PNG to inkscape-mcp's trace_bitmap() tool, get back SVG with proper path geometry. The SVG imports cleanly into QCAD as workable entities.

  2. potrace in qcad-mcp — add a plan_raster_to_dxf(file_name) tool that wraps potrace + ezdxf. Self-contained, no external server needed.

Either way, the result goes through plan_modify for cleanup (delete noise, merge wall segments, re-assign layers, re-add dimensions). The baroque church preset in the Demo page proves the parametric geometry works — scanning would let you capture actual existing buildings.

QCAD Pro Pricing — €50? Really?

QCAD Professional sells for €50.40 for a single-user license — lifetime, no subscription. That looks absurd next to AutoCAD at $2,000+/year, but RibbonSoft's revenue model is more nuanced:

Product

Price

Market

Community Edition

Free (GPLv3)

Hobbyists, students, tinkerers

QCAD Professional

€50.40

Individual professionals, small firms

QCAD Pro Site License

€440.40

Companies (unlimited seats, single site)

QCAD Pro Server License

€583.20

Self-hosted deployment

QCAD Pro Scalable Server

€1,771.20

Enterprise-scale

QCAD/CAM (CNC add-on)

€132.00

Manufacturing

QCAD/CAM Site License

€1,173.60

CNC shops

Books / E-Books

€40–42 each

Documentation, passive income

The strategy is open-core freemium with enterprise site-license extraction:

  1. Community Edition is genuinely free and capable (GPLv3). It's a giant funnel — architects, makers, and students learn on it, recommend it, and eventually their employer buys a site license.

  2. €50 individual is friction-free "impulse buy" pricing — no PO approval needed, no vendor negotiation. You just buy it.

  3. Site & server licenses (€440–€1,771) are where the real revenue lives. An architecture firm with 20 seats paying €440 beats 200 individuals paying €50. And server licenses for SaaS/on-prem deployment scale further.

  4. QCAD/CAM at €132 captures the CNC/manufacturing niche — a separate, higher-value market.

  5. Books at €40 are pure margin — the manual is already written, printing costs are negligible.

RibbonSoft is a Swiss GmbH (limited company) based in Sarnen, not retirees. 100% of their office energy is from Swiss hydropower (they're proud enough to put it in the footer). They've been doing this since 1999 — 26+ years of sustainable bootstrapping.

Who pays? Ganesh in Bangalore runs the Community Edition for his residential projects — it handles DXF perfectly for Indian building code drawings. When a client demands DWG or PDF export, he drops €50 on Pro — one job pays for it. As his practice scales past 5 seats, he graduates to a site license. Meanwhile a European architecture firm pays €440 for compliance reasons and never thinks twice. The Bay Area Autodesk tax ($2,500+/year) only makes sense when someone else is paying.

€50 clears every threshold, everywhere. No PO approval, no vendor negotiation, no subscription clock. You buy it once and own it.

Quality Stack

  • Python: Ruff linter + format, Pyright typecheck — src/ + run_server.py

  • Frontend: Biome + tsc --noEmit — 18 TypeScript pages

  • Protocol: FastMCP 3.4 (stdio + HTTP /mcp) + 40 REST routes

  • Tools: 42 MCP tools with READ_ONLY/MUTATING annotations

  • Automation: Justfile recipes for all fleet operations

  • Tests: pytest (78+) + Playwright e2e specs

License

MIT — see LICENSE.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI/natural-language-driven 2D drafting automation on a running Windows AutoCAD, exposing drawing, dimensioning, layer/block management, and mechanical drawing tools such as title blocks, BOM, and balloons to any MCP client.
    156 PyPI
    MIT
  • F
    license
    B
    quality
    A
    maintenance
    Natural-language MCP bridge for AutoCAD 2024. Enables users to inspect and edit DWG drawings, manage layers, entities, layouts, styles, and system variables; draw 2D geometry and 3D solids; perform measurements and transactional edits; and export to DWG, STL, PDF, DWF, SVG, or raster formats through a local named-pipe connection.
    21
    1
    -
  • A
    license
    A
    quality
    B
    maintenance
    Enables an AI assistant to conversationally control Autodesk AutoCAD, drawing, inspecting, and editing plans, and includes a cross-platform DXF engine that runs without AutoCAD on macOS and Linux. It exposes tools for rendering views as images, batching geometry, blocks, and structures, measuring and checking plans, and undoing whole batches.
    12
    MIT