Skip to content
FunCoding

qcad-mcp

Listed in the official MCP Registry

QCAD MCP server - DXF/DWG floor plans to SVG preview + STL extrusion via MCP tools and REST API

Star
18
Version
v0.3.0
License
MIT
Last commit
Oct 9, 2026

QCAD MCP

Just Ruff Python Biome FastMCP

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 toezdxf (free Python engine) for all parsing + rendering + extrusion + analysis
PortsBackend 11966, Dashboard 11967
Startjust bootstrap then start.ps1

MCP Tools

ToolAccessPurpose
plan_depotREADList files in the persistent CAD depot with metadata
plan_infoREADDXF metadata: layers, entity counts, bounding box, blocks
plan_createMUTATECreate DXF from primitives (line, rect, circle, text, polyline)
plan_to_svgMUTATEDXF → SVG preview with layer filtering
plan_extrudeMUTATEDXF walls → 3D STL mesh (configurable height/thickness)
plan_exportMUTATEDXF → SVG/PNG/PDF (ezdxf or QCAD Pro)
plan_analyseREADRoom detection, area calculation, door/window identification
plan_measureREADMeasure distances and lengths in a DXF
plan_wall_dataREADExtract wall segments as BIM-ready JSON (QCAD Pro)
plan_beam_analysisREAD2D beam FEM analysis (numpy, no QCAD needed)
plan_dimensionMUTATEAdd aligned/linear/angular/radial dimensions (QCAD Pro)
plan_textMUTATEAdd text annotations (QCAD Pro)
plan_hatchMUTATEAdd hatch patterns (QCAD Pro)
plan_block_insertMUTATEInsert CAD blocks from library (QCAD Pro)
plan_arrayMUTATERectangular/polar array patterns (QCAD Pro)
plan_convertMUTATEConvert between DXF and DWG (QCAD Pro)
plan_modifyMUTATEDelete/offset/rename/freeze layers
plan_scriptMUTATEExecute arbitrary ECMAScript in QCAD Pro
plan_renderMUTATEHigh-fidelity SVG/PDF/BMP render via QCAD Pro
plan_execMUTATEQuick ECMAScript snippet execution
plan_blocksREADSearch 4800+ CAD blocks from part library
plan_blocks_downloadMUTATEDownload a block DXF from library
plan_scripts_searchREADSearch QCAD ECMAScript scripts gallery
plan_scripts_downloadMUTATEDownload a script from gallery/Gist
qcad_statusREADQCAD Pro install/running/version report
plan_agenticMUTATENL → ECMAScript via AI sampling (MCP only, needs QCAD Pro)
plan_transpileMUTATEAutoLISP → QCAD ECMAScript translation (MCP only, needs QCAD Pro)
plan_generateMUTATEFloor-plan DXF from a text brief via local LLM
plan_stackMUTATEMulti-storey wall extrusion to STL
plan_obj / plan_glbMUTATEExtrusion output → OBJ / GLB (Resonite path)
plan_drawingsREADDrawing-set helpers for multi-sheet DXF
plan_auto_dimensionMUTATEAuto-dimension wall geometry (BIM)
plan_building_metaREADBuilding/storey metadata for BIM handoff
plan_to_ifc_dataREADWall data as IFC-shaped JSON
qcad_helpREADLive help catalog: tools, REST routes, config
qcad_shutdownREADOrderly server shutdown (confirm=true)

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 ServerFeature UnlockedStatusSetup
blender-mcp3d-scene-extrusion, render-dxf-layoutsOptionalInstall Guide
freecad-mcp2d-draft-to-parametric-3dOptionalInstall 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:

EndpointMethodDescription
/api/v1/depotGETList all files with metadata (size, dates, description, tags)
/api/v1/depot/{name}GETDownload a DXF file
/api/v1/depot/{name}PUTRename or update description/tags
/api/v1/depot/{name}DELETERemove file + metadata sidecar
/api/v1/depot/createPOSTCreate DXF from JSON entity spec (line, rect, circle, text, polyline)
/api/v1/depot/uploadPOSTUpload DXF/DWG directly to depot

REST API

EndpointMethodDescription
/api/v1/statusGETServer health, ezdxf version, QCAD Pro status
/api/v1/uploadPOSTUpload DXF/DWG (also saved to depot)
/api/v1/download/{name}GETDownload SVG/STL/PDF/PNG outputs
/api/v1/filesGETList all files (depot + outputs)
/api/v1/depot/*GET/PUT/DELETEFull CRUD on the persistent CAD depot
/api/v1/control/toolPOSTExecute any MCP tool
/api/v1/logs/streamGETSSE live log stream
/api/v1/chatPOSTChat with CAD expert via Ollama
/api/v1/settingsGET/PUTLLM + extrusion defaults + QCAD Pro path

Webapp Pages

RoutePageDescription
/DashboardHero banner, QCAD Pro status panel, depot stats, ezdxf version
/demoAI CAD DemoNL → floor plan → SVG → 3D STL. Baroque church, mob compound, art museum presets
/depotDepotFull CRUD file browser with SVG preview, create DXF wizard, upload, rename, delete
/viewerViewerDXF upload + SVG preview with per-layer toggle
/extrudeExtrudeDXF → STL with wall height/thickness/wall-layer controls
/analyseAnalyseRoom detection, area table, door/window list
/layersLayersLayer visibility, freeze/lock, rename, bulk operations
/blocksBlocksSearch 4800+ CAD blocks from library with download
/scriptsScriptsBrowse QCAD ECMAScript scripts gallery + save local scripts
/agenticAI AgentAutonomous multi-step CAD workflow (QCAD Pro)
/batchBatchRun info/analysis/extrude across all depot files. STL batch extrude with gallery
/pipelinePipeline5-step wizard: describe → SVG → analyse → STL → FreeCAD wall data export
/playgroundPlaygroundTool API tester: select any tool, edit JSON args, execute, view raw response
/modelsModelsUploads vs outputs listing with download
/logsLogsLive SSE log viewer with filter/export/pause
/settingsSettingsLLM provider/model, extrusion defaults, QCAD Pro path
/helpHelp10-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
StepToolWhat it does
ScanAny scanner300-600 DPI, grayscale or B&W, save as PNG/TIFF
Vectorizeinkscape-mcp trace_bitmap() or potrace CLIConverts raster lines to SVG paths
ConvertSVG → DXF (via potrace or ezdxf)Opens in any CAD program
Cleanqcad-mcp plan_modifyMerge 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:

ProductPriceMarket
Community EditionFree (GPLv3)Hobbyists, students, tinkerers
QCAD Professional€50.40Individual professionals, small firms
QCAD Pro Site License€440.40Companies (unlimited seats, single site)
QCAD Pro Server License€583.20Self-hosted deployment
QCAD Pro Scalable Server€1,771.20Enterprise-scale
QCAD/CAM (CNC add-on)€132.00Manufacturing
QCAD/CAM Site License€1,173.60CNC shops
Books / E-Books€40–42 eachDocumentation, 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.

Similar MCP servers

tldraw

Draw and visually collaborate with your agents on tldraw's canvas.

TLtldraw/tldraw51k105 new stars in the last 7 days

Featured

mcp-for-blender

Let your agent model, build and edit 3D scenes in Blender.

AHahujasid/mcp-for-blender30k489 new stars in the last 7 days

screenpipe

Search your local screen recordings, audio transcripts, and computer activity from screenpipe.

SCscreenpipe/screenpipe22k99 new stars in the last 7 days

FunASR

Transcribe local audio with FunASR and SenseVoice using private, on-device inference.

MOmodelscope/FunASR21k65 new stars in the last 7 days

Featured

unity-mcp

Manage assets, control scenes, edit scripts and run tests in the Unity Editor.

COCoplayDev/unity-mcp15k154 new stars in the last 7 days

Unity-MCP

AI Skills, MCP Tools, and CLI for Unity Engine. Full AI develop and test loop. Use cli for quick setup. Efficient token usage, advanced tools. Any C# method may be turned into a tool by a single line. Works with Claude Code, Gemini, Copilot, Cursor and any other absolutely for free.

IVIvanMurzak/Unity-MCP4.4k37 new stars in the last 7 days