QCAD MCP

MCP serverDev tools

Your AI can turn DXF and DWG floor plan files into SVG previews and 3D STL models. Once the app is added, hand it a floor plan drawing and it will produce a viewable image of the plan or build a 3D model from it. It works with both DXF and DWG, two standard CAD drawing formats.

Unavailable. This server has no hosted endpoint yet, so ahel can't serve it.

After adding it, hand your AI a DXF or DWG floor plan file and ask for an SVG preview or a 3D STL model. You can find the source at github.com/sandraschi/qcad-mcp.

What your AI can do with it

  • Turn DXF floor plans into SVG previews
  • Turn DWG floor plans into SVG previews
  • Create 3D STL models from floor plans
  • Work with DXF and DWG drawing files

From the project's README

As published by sandraschi/qcad-mcp in README.md.

AI-driven 2D CAD automation — DXF/DWG parsing, 3D extrusion, persistent file depot, room analysis, and full CRUD management. 7 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)

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.mdFree, 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

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 — zero errors across 5 MCP tools + depot CRUD
  • Frontend: Biome + tsc — zero errors across 9 TypeScript pages
  • Protocol: FastMCP 3.2 SSE transport + 10 REST endpoints
  • Automation: Justfile recipes for all fleet operations
  • AI Protocol: FastMCP 3.2 with SSE transport

License

MIT — see LICENSE.

Signals

GitHub stars
12
Last commit
Sep 2026
Advanced
Delivery
qcad-mcp MCP server → your ahel gateway (mcp.ahel.ai) → every connected AI client.
Catalog kind
mcp-server
Gateway key
io-github-sandraschi-qcad-mcp
Source
github.com/sandraschi/qcad-mcp