PluginBench
MCP Server
Active
MIT

io.github.sandraschi/qcad-mcp MCP Server

io.github.sandraschi/qcad-mcp

AI-driven 2D CAD automation: DXF/DWG parsing, 3D STL extrusion, room analysis, and persistent file depot.

What is the io.github.sandraschi/qcad-mcp MCP server?

The QCAD MCP server is an AI-driven CAD automation tool that parses DXF/DWG floor plans, converts them to SVG previews, extrudes walls into 3D STL meshes, and performs room analysis. It provides 27 MCP tools for programmatic CAD workflows, integrates with the free ezdxf Python engine, and maintains a persistent file depot for CAD file management.

QCAD MCP lets your AI assistant operate as a QCAD Pro operator, processing floor plans programmatically. Convert DXF to 3D for game engines (Resonite, Unity3D), automate drafting workflows, detect rooms and measure areas, and manage a persistent CAD file depot. It includes a web dashboard with 13 pages (viewer, extrude, analyse, batch processing, AI agent workflows) and a REST API for integration.

How to install io.github.sandraschi/qcad-mcp

Copy-paste configuration for popular MCP clients.

transport: stdio
Config generated by PluginBench — verify against the source before use.
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "qcad-mcp": {
      "command": "https://github.com/sandraschi/qcad-mcp/releases/download/v0.3.0/qcad-mcp-v0.3.0.mcpb",
      "args": []
    }
  }
}

Tools & capabilities

Tools this server exposes to the agent.

  • plan_depot — List files in the persistent CAD depot with metadata
  • plan_info — DXF metadata: layers, entity counts, bounding box, blocks
  • plan_create — Create DXF from primitives (line, rect, circle, text, polyline)
  • plan_to_svg — DXF → SVG preview with layer filtering
  • plan_extrude — DXF walls → 3D STL mesh (configurable height/thickness)
  • plan_export — DXF → SVG/PNG/PDF (ezdxf or QCAD Pro)
  • plan_analyse — Room detection, area calculation, door/window identification
  • plan_measure — Measure distances and lengths in a DXF
  • plan_wall_data — Extract wall segments as BIM-ready JSON (QCAD Pro)
  • plan_beam_analysis — 2D beam FEM analysis (numpy, no QCAD needed)
  • plan_dimension — Add aligned/linear/angular/radial dimensions (QCAD Pro)
  • plan_text — Add text annotations (QCAD Pro)
  • plan_hatch — Add hatch patterns (QCAD Pro)
  • plan_block_insert — Insert CAD blocks from library (QCAD Pro)
  • plan_array — Rectangular/polar array patterns (QCAD Pro)
  • plan_convert — Convert between DXF and DWG (QCAD Pro)
  • plan_modify — Delete/offset/rename/freeze layers
  • plan_script — Execute arbitrary ECMAScript in QCAD Pro
  • plan_render — High-fidelity SVG/PDF/BMP render via QCAD Pro
  • plan_exec — Quick ECMAScript snippet execution

Use cases

  • Convert scanned or digital floor plans (DXF/DWG) to interactive SVG previews with per-layer visibility control
  • Extrude 2D floor plans into 3D STL meshes for import into game engines (Resonite, Unity3D) or 3D modeling software
  • Automate room detection, area calculation, and door/window identification for architectural analysis and BIM workflows
  • Create parametric floor plans programmatically from natural language descriptions via AI-driven ECMAScript generation
  • Batch process multiple CAD files: extract metadata, generate SVG/STL outputs, and perform structural beam analysis in one workflow

io.github.sandraschi/qcad-mcp MCP server FAQ

What is the QCAD MCP server?

It's an MCP server that gives AI assistants (Claude, Cursor) 27 tools for CAD automation: parsing DXF/DWG floor plans, converting to SVG/STL, detecting rooms, measuring distances, and managing a persistent file depot. It integrates with the free ezdxf Python engine and optionally QCAD Pro for advanced features.

Is it free?

The server itself is free (MIT license). It uses the free ezdxf library for core operations (parsing, SVG, STL extrusion, analysis). Optional QCAD Pro features (DWG conversion, advanced rendering, ECMAScript scripting) require a €50.40 one-time license.

How do I install it in Cursor or Claude?

Download the mcpb binary from the releases page (v0.3.0), then add it to your MCP client config pointing to http://localhost:11966/sse with SSE transport. Run `just bootstrap` and `start.ps1` to start the backend and dashboard.

What authentication is required?

None. The server runs locally on ports 11966 (backend) and 11967 (dashboard). No API keys or external services required for core ezdxf tools. Optional: Ollama for local LLM chat, QCAD Pro for advanced features.

Can I use it without QCAD Pro installed?

Yes. Core tools (plan_info, plan_to_svg, plan_extrude, plan_analyse, plan_measure, plan_create, plan_modify) work with ezdxf alone. Tools marked '(QCAD Pro)' require QCAD Pro for DWG conversion, advanced rendering, and ECMAScript execution.

What file formats does it support?

Input: DXF, DWG. Output: SVG, STL (3D mesh), PNG, PDF, BMP. The persistent depot stores DXF/DWG files with metadata (size, dates, description, tags).

README (reference)

Source of truth, from the repository.

QCAD MCP

<p align="center"> <a href="https://github.com/casey/just"><img src="https://img.shields.io/badge/just-ready_to_go-7c5cfc?style=flat-square&logo=just&logoColor=white" alt="Just"></a> <a href="https://github.com/astral-sh/ruff"><img src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json" alt="Ruff"></a> <a href="https://python.org"><img src="https://img.shields.io/badge/Python-3.13+-3776AB?style=flat-square&logo=python&logoColor=white" alt="Python"></a> <a href="https://biomejs.dev"><img src="https://img.shields.io/badge/Linted_with-Biome-60a5fa?style=flat-square&logo=biome&logoColor=white" alt="Biome"></a> <a href="https://github.com/PrefectHQ/fastmcp"><img src="https://img.shields.io/badge/FastMCP-3.2-7c5cfc?style=flat-square" alt="FastMCP"></a> </p>

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

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.

Related MCP servers

Natural language control of Resonite VR worlds, avatars, and assets through AI chat.

8
Python
MIT
View repository →

SOTA 2026 Yahboom Raspbot v2 ROS 2 MCP Server

4
Python
MIT
View repository →

Godot MCP server - Godot 4.x engine control via TCP bridge, STL/GLB/OBJ import, GPU particles, an...

6
Python
MIT
View repository →

GrandOrgue pipe organ simulator MCP server - MIDI bridge, organ control, sample set management, m...

4
TypeScript
MIT
View repository →

AI-powered grocery shopping for Krónan (Iceland) via Claude—search products, manage carts, track orders, and handle checkout.

14
TypeScript
MIT
View repository →

MCP server for Icelandic weather, forecasts, warnings, and earthquakes from vedur.is.

5
TypeScript
View repository →