Qcad Mcp

io.github.sandraschiPublished by GitHub account sandraschiv0.5.0Updated Oct 24, 2026

QCAD 2D CAD automation: DXF/DWG floor plans to SVG and STL, via MCP tools and REST

Overview

AI-generated overview

Local MCP server that lets an assistant parse, convert, annotate and extrude 2D CAD floor plans (DXF/DWG) into SVG, STL and BIM data.

What you can do
  • Inspect, convert and export drawings: DXF info, SVG rendering, DWG/DXF conversion, GLB/STL extrusion and stacking
  • Edit and annotate plans: layers and entities, dimensions, measurements, text, hatches, blocks, arrays, wall data
  • Run QCAD Pro operations: ECMAScript scripts, renders and command execution
  • Generate and analyse: natural-language floor plans, room/area analysis, beam analysis, building metadata and IFC handoff
  • Manage a persistent CAD depot: list, upload, create, rename, tag and delete files, plus status and help cards
When to use it
Useful when you want an assistant to process floor plans programmatically, turn DXF drawings into 3D models for engines such as Unity or Resonite, keep a persistent library of CAD files, or automate repetitive drafting and annotation work.
Requirements
Runs as a local process on Windows (desktop only), started via the bundled mcpb package, uv, or a local server on ports 11966 and 11967. Parsing uses the free ezdxf Python engine; DWG conversion, scripting and rendering need a separately licensed QCAD Professional install. The depot path can be set with the QCAD_MCP_DEPOT environment variable.
Before you install
Many tools are marked MUTATE: they create, modify, rename or delete files in the depot and can run arbitrary ECMAScript through QCAD Pro, so review changes before approving. QCAD Professional is a paid license (about EUR 50 per user, more for site or server licenses). The optional chat feature sends content to a local Ollama model, and settings can point it at other LLM providers.

Installation

In SourceWeft

  1. Open Qcad Mcp in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

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. 12 MCP tools (8 portmanteaus + 4 Prefab cards) 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

v0.5.0 portmanteau surface: each tool takes an op discriminator plus the op's parameters (old per-op names survive only as webapp-internal aliases).

ToolAccessPurpose
planREAD/MUTATECore ezdxf ops: info, to_svg, extrude, stack, obj, glb, drawings, export, analyse, create, depot
plan_editMUTATEconvert (DWG↔DXF via QCAD Pro), modify (layers/entities)
plan_annotateREAD/MUTATEdimension, measure, text, hatch, block_insert, array, wall_data, beam_analysis
plan_proMUTATEQCAD Pro: script, render, exec (ECMAScript)
plan_libraryREAD/MUTATEblocks, blocks_download, scripts_search, scripts_download
plan_aiMUTATEgenerate (NL floor plan), agentic (NL workflow), transpile (AutoLISP), sampling (host LLM reason)
plan_bimREAD/MUTATEauto_dimension, building_meta, to_ifc_data (BIM handoff)
qcadREADstatus (QCAD Pro install), help (live catalog), shutdown (orderly exit)
show_qcad_status_cardREADPrefab card: QCAD Pro status
show_depot_cardREADPrefab card: depot files
show_beam_analysis_cardREADPrefab card: beam FEA results
show_building_meta_cardREADPrefab card: building metadata

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. Preset cards, pipeline stepper, tabbed results
/chatChatStreaming LLM chat, skill-first, 6 personalities, history, export
/inboxInboxNew-file review queue with inline preview and Viewer links
/toolsToolsPortmanteau catalog with op chips + Playground deep-links
/skillsSkillsSkill browser (same files the Chat uses as system prompt)
/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

powershell
just bootstrap   # uv sync + bun installstart.ps1        # kills zombies, starts backend + frontend, opens browser

Install (Claude Desktop, Windows)

powershell
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:

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

MCP Client Config

json
{  "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_edit(op="modify"))                         ↓                    Clean up in QCAD / plan_edit(op="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_edit(op="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_edit(op="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 (0 errors) — src/ + run_server.py
  • Frontend: Biome + tsc --noEmit + bun lockfile — 22 TypeScript pages
  • Protocol: FastMCP 3.4 (stdio + HTTP /mcp) + 40 REST routes
  • Tools: 12 MCP tools (8 portmanteaus + 4 Prefab cards) with READ_ONLY/MUTATING annotations
  • Automation: Justfile recipes for all fleet operations
  • Tests: pytest (78+) + Playwright e2e specs

License

MIT — see LICENSE.

Source: README.md at commit b8eb4e9

Tools

0
SourceWeft started this package once in an isolated sandbox, without credentials, to list its tools. That failed: the package type cannot run in the sandbox.

Version history

2
  1. v0.5.0LatestOct 22, 2026
  2. v0.3.0Sep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts