drawio-engineering-mcp
This server extends draw.io to enable AI agents to create, view, analyze, and export engineering diagrams, with 269 specialized stencils and auto-layout generators for RF, PCB, and EMC workflows.
Open diagrams from XML, CSV, or Mermaid syntax, and load 269 engineering stencil libraries across RF, PCB, EMC, electrical, and wireless domains.
Generate RF block diagrams with auto-layout for 30+ block types (LNA, PA, mixer, filter, antenna, etc.), Friis cascade calculations for gain and noise figure, and injection sources with dashed connections.
Generate EMC test setups using CISPR 25 (radiated/conducted emissions) and ISO 11452 (radiated/BCI immunity) templates, with distance annotations and customizable equipment labels.
Generate PCB stackup cross-sections for 4-layer, 6-layer, or custom stacks, with color-coded layers (copper, prepreg, core, soldermask), material properties (Dk, Df), and thickness annotations supporting FR-4, Rogers, Megtron6, Isola 370HR, etc.
Mark up schematic screenshots with redline circles, revision clouds, delta callouts, arrows, and text notes on a separate annotation layer, with the original image locked as background.
Parse
.drawiofiles to structured JSON, extracting shapes, edges, labels, positions, styles, and connections for analysis.Export diagrams to SVG or PNG for documentation and sharing.
It integrates with Claude Code, Claude Desktop, and any MCP client as part of the eng-mcp-suite.
Generates engineering diagrams in draw.io from structured prompts, providing tools for creating RF block diagrams, PCB stackups, EMC test setups, and more.
Allows opening draw.io with diagrams described in Mermaid syntax.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@drawio-engineering-mcpcreate an RF receiver signal chain with antenna, LNA, mixer, and ADC"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Engineering diagrams in draw.io: RF block diagrams, PCB stackups, and EMC test setups generated from structured prompts. Drive it from your IDE, terminal, or AI agent and skip the manual stencil-dragging.
Quick start · Tools · Workflows · Documentation
What is drawio-engineering-mcp?
drawio-engineering-mcp is a Node.js MCP server that gives an AI agent
the ability to create, view, and analyze engineering diagrams in
draw.io. It extends the
official draw.io MCP (@drawio/mcp)
with 10 tools and 269 drag-and-drop engineering symbols across RF,
PCB, EMC, wireless, electrical, and general engineering.
Where the upstream MCP gives you a diagram editor, this one gives you a diagram generator: an RF receiver signal chain with Friis-cascade annotations, a CISPR 25 / ISO 11452 test setup, a 6-layer PCB stackup with material-property labels. All from a one-sentence prompt or structured JSON input.
What it does well:
AI-native via MCP. First-class Model Context Protocol server with 10 tools wired into the draw.io browser app.
269 engineering stencils. RF blocks, amplifiers, filters, antennas, PCB stackup vias, EMC test equipment, wireless protocol badges, connectors, power ICs. All auto-loaded into the draw.io sidebar.
Auto-layout generators.
create_rf_block_diagramruns Friis gain/NF cascade math;create_pcb_stackuprenders cross-sections with material properties;create_emc_test_setupuses CISPR / ISO templates.yes Round-trip.
read_drawioparses.drawioXML into structured JSON (shapes, edges, styles) so an agent can analyze an existing diagram.export_drawiorenders to SVG / PNG.AGPL-3.0-or-later. Built on the official draw.io MCP foundation (Apache-2.0); this server's engineering extensions are AGPL-3.0-or-later.
Related MCP server: draw-io-mcp
Quick start
Install
git clone https://github.com/RFingAdam/drawio-engineering-mcp.git
cd drawio-engineering-mcp
npm installThree surfaces, same answer
Claude Code
claude mcp add drawio-engineering -s user -- \
node /path/to/drawio-engineering-mcp/src/index.jsClaude Desktop
{
"mcpServers": {
"drawio-engineering": {
"command": "node",
"args": ["/path/to/drawio-engineering-mcp/src/index.js"]
}
}
}Any MCP client: first prompt
Start a new session and ask:
"Create an RF receiver signal chain with antenna, SAW filter, LNA, mixer with PLL LO, IF filter, and ADC. Show cumulative gain and noise figure."
The agent calls create_rf_block_diagram and opens draw.io with a
color-coded, auto-laid-out diagram annotated with Friis cascade values.
Tools
10 MCP tools across 3 categories. Full reference in docs/tools.md.
Viewer / editor
Tool | Purpose | Key arguments |
| Open draw.io with raw XML content |
|
| Open draw.io with CSV data |
|
| Open draw.io with Mermaid syntax |
|
| Open draw.io with the 269 engineering stencils loaded in the sidebar |
|
Generators
Tool | Purpose | Key arguments |
| Auto-layout RF signal chain from JSON (Friis gain/NF cascade) |
|
| CISPR 25 / ISO 11452 EMC test setup diagrams from templates |
|
| PCB cross-section stackup diagrams (4-layer / 6-layer / custom) |
|
| Annotate schematic screenshots with redlines, revision clouds, callouts |
|
Analysis
Tool | Purpose | Key arguments |
| Parse |
|
| Export diagrams to SVG (or PNG with puppeteer) |
|
Stencil libraries
269 engineering symbols across 13 libraries, automatically loaded by
open_drawio_engineering into the draw.io sidebar:
Library | Symbols | Contents |
| 30 | Core RF blocks (LNA, PA, mixer, filter, switch, antenna, …) |
| 16 | Amplifier variants (LNA, PA, VGA, driver, buffer, log, limiting) + mixers |
| 17 | BPF, LPF, HPF, notch, cavity, SAW, BAW, DSA, step / variable atten |
| 14 | Circulators, isolators, directional couplers, Wilkinson, hybrid, balun |
| 10 | Crystal, TCXO, OCXO, VCO, PLL, DDS, synthesizer |
| 15 | SPDT, SP4T, transfer, T/R, power detector, ADC, DAC |
| 20 | Dipole, patch, horn, array, MIMO, coax, microstrip, waveguide |
| 20 | LDO, buck, boost, flyback, battery, SoC, FPGA, MCU, QFN, BGA |
| 14 | SMA, U.FL, N-type, BNC, USB-C, RJ45, pin header, B2B |
| 18 | Spectrum analyzer, VNA, scope, LISN, CDN, anechoic chamber |
| 30 | Copper / prepreg / core layers, through / blind / buried / micro vias, impedance traces |
| 27 | Wi-Fi, BLE, LTE, 5G NR, LoRa, Zigbee, Thread, protocol badges, OFDM, QAM |
| 38 | System blocks, rack diagrams, cables, thermal management, R/L/C/transformer |
By default all libraries load. To load only specific ones:
{
"stencils": ["rf-blocks", "ee-connectors", "pcb-stackup-vias"]
}Workflows
drawio-engineering-mcp fits in the following eng-mcp-suite
workflow bundles:
emc-compliance: paircreate_emc_test_setupwithmcp-emc-regulationsto generate the test setup diagram for the exact CISPR / ISO method the limit lookup returned.pcb-review: generatecreate_pcb_stackupcross-sections during amcp-pcb-emcopilotdesign review.rf-design. Usecreate_rf_block_diagramto visualize the cascade an LNA / mixer / filter chain produces: Friis numbers annotated automatically.
Part of eng-mcp-suite.
Use in the emc-compliance, pcb-review, or rf-design workflow bundles.
See the suite manifest for the full list of sibling MCPs and bundle definitions.
Documentation
Quick Start: install through first call.
Tool reference. Every MCP tool, every argument.
Usage examples: practical end-to-end walkthroughs.
Architecture: how this MCP fits in eng-mcp-suite.
Part of eng-mcp-suite
This MCP server is part of
An open umbrella for engineering MCP servers across RF, EMC, PCB, signal integrity, EM simulation, and lab test. Same brand, same docs structure, designed to compose. See the full catalog or jump to a sibling:
Domain | Sibling MCPs |
RF / Transmission lines | |
EMC regulatory | |
PCB / SI | mcp-pcb-emcopilot (private: public soon) |
EM simulation | mcp-openems, mcp-nec2-antenna (private: public soon) |
Diagrams | drawio-engineering-mcp (this repo) |
3D / rendering | |
Remote access | |
Lab gear | copper-mountain-vna-mcp, mcp-rs-spectrum-analyzer, mcp-rs-siggen, mcp-rs-cmw500 |
Based on
Extended from the official draw.io MCP server
(@drawio/mcp) by JGraph Ltd.
Contributing
Contributions are welcome.
Pick a GitHub issue.
Fork + branch (
feature/your-thingorfix/your-bug).Run tests (
npm test) if present.Open a PR: link the issue, request review.
License
AGPL-3.0-or-later. Relicensed from Apache-2.0 in v1.1.0 to align with the eng-mcp-suite toolkit-wide AGPL move. The upstream draw.io MCP foundation remains Apache-2.0; this server's engineering extensions and added tooling are AGPL-3.0-or-later.
Trademarks and brand assets
This project is not affiliated with, endorsed by, or sponsored by JGraph Ltd. "draw.io" and "diagrams.net" are trademarks of JGraph Ltd. They are used here only to identify the software this project interoperates with.
The project name and the logo files in this repository are not part of the licensed work. The licence above grants no permission to use them, except as needed to describe the origin of the work.
Acknowledgments
JGraph Ltd / draw.io: for the upstream
@drawio/mcpand the underlying diagram editor.The MCP working group: for the Model Context Protocol specification.
Part of eng-mcp-suite: built for RF engineers, PCB designers, EMC labs, and AI agents.
Available Tools
10 toolscreate_emc_test_setupA
Generates an EMC test setup cross-section diagram from a template and opens it in draw.io. Shows equipment layout with ground plane, EUT on table, antenna on mast, and test instruments.
Available templates: cispr25_re: CISPR 25 Radiated Emissions - semi-anechoic chamber, antenna 1m from EUT, 150 kHz - 2.5 GHz cispr25_ce: CISPR 25 Conducted Emissions - LISN on each power line, 150 kHz - 108 MHz iso11452_2_ri: ISO 11452-2 Radiated Immunity - absorber-lined enclosure, 200 MHz - 18 GHz iso11452_4_ci: ISO 11452-4 Conducted Immunity (BCI) - BCI clamp on harness, 1 MHz - 400 MHz
Each template includes standard equipment, distances, and cable connections. Equipment labels can be overridden. Distance annotations are shown by default.
Inputs: template (required), title, show_distances, equipment_overrides, +1 more.
create_pcb_stackupA
Generates a PCB stackup cross-section diagram and opens it in draw.io. Shows each layer as a color-coded horizontal rectangle with labels and material properties.
Available templates: 4layer: Standard 4-Layer (L1 Signal / L2 GND / L3 PWR / L4 Signal, FR-4) 6layer: Standard 6-Layer (L1 Signal / L2 GND / L3-L4 Signal / L5 PWR / L6 Signal, FR-4) custom: Provide your own layers array
Layer types and colors: copper: Signal (red), GND (blue), PWR (orange) - weight in oz prepreg: Light yellow with material properties (Dk, Df) core: Light gray with material properties (Dk, Df) soldermask: Green (outer surfaces)
Available materials: fr4, rogers_4003c, rogers_4350b, megtron6, isola_370hr Copper weights: 0.5oz (17.5um), 1oz (35um), 2oz (70um)
Inputs: template (required), layers, title, show_dimensions, +2 more.
create_rf_block_diagramA
Generates an RF signal chain block diagram from a JSON description and opens it in draw.io. Provide an array of blocks with type, label, and optional RF parameters. The tool auto-layouts blocks left-to-right with signal flow arrows and color-coded shapes. Injection sources (e.g. LO for a mixer) are placed below their target block with dashed arrows. Supports cumulative gain and noise figure annotations using the Friis formula.
Supported block types: Amplifiers: lna, pa, amplifier, driver Filters: bpf, lpf, hpf, notch Mixer: mixer Attenuators: attenuator, dsa Converters: adc, dac Oscillators: vco, oscillator, pll Antenna: antenna Passive: coupler, splitter, combiner, circulator, isolator, balun, duplexer, diplexer Switches: switch, spdt, sp4t Other: detector, custom
Each block object in the chain array accepts: type (required): one of the types above label: display name (defaults to standard abbreviation) sublabel: smaller text below the label (e.g. frequency) gain_db: gain in dB (defaults from component database) nf_db: noise figure in dB (defaults from component database) inject_to: label of the main chain block this injects into (for LO sources, etc.)
Inputs: chain (required), title, show_cumulative, signal_flow_arrows, +1 more.
export_drawioA
Exports a draw.io diagram XML to an SVG or PNG file. For SVG export, the diagram is converted locally without requiring a browser. For PNG export, a headless browser (puppeteer) is used if available. Returns the file path of the exported image.
Inputs: content (required), format, output_path, width, +1 more.
markup_schematicA
Opens a schematic screenshot in draw.io with engineering annotations overlaid. The original image becomes a locked background layer. Annotations (redline circles, revision clouds, delta callouts, arrows, text notes) are placed on a foreground layer. Use this to mark up existing schematics with proposed changes, issues, or review comments. Claude can analyze a screenshot with vision first, then call this tool with coordinates and descriptions for each annotation.
Inputs: image_path (required), annotations (required), title, image_width, +1 more.
open_drawio_csvA
Opens the draw.io editor with a diagram generated from CSV data. The CSV format should follow draw.io's CSV import specification which allows creating org charts, flowcharts, and other diagrams from tabular data.
Inputs: content (required), lightbox, dark.
open_drawio_engineeringA
Opens the draw.io editor with engineering diagram XML and automatically loads 240+ engineering stencil libraries in the sidebar. Libraries cover RF components (amplifiers, mixers, filters, switches, antennas, oscillators), electrical (power ICs, connectors, test equipment), PCB (stackup layers, vias, impedance), wireless/telecom (protocol badges, spectrum, modulation), and general engineering (system blocks, rack diagrams, cables, thermal management, passive components). Use this instead of open_drawio_xml when creating engineering block diagrams. IMPORTANT: Do NOT use double hyphens (--) inside XML comments.
Inputs: content (required), stencils, lightbox, dark.
open_drawio_mermaidA
Opens the draw.io editor with a diagram generated from Mermaid.js syntax. Supports flowcharts, sequence diagrams, class diagrams, state diagrams, entity relationship diagrams, and more using Mermaid.js syntax.
Inputs: content (required), lightbox, dark.
open_drawio_xmlA
Opens the draw.io editor with a diagram from XML content. Use this to view, edit, or create diagrams in draw.io format. The XML should be valid draw.io/mxGraph XML format. IMPORTANT: Do NOT use double hyphens (--) inside XML comments, as this is invalid XML and will break the parser. Use single hyphens or rephrase instead.
Inputs: content (required), lightbox, dark.
read_drawioA
Reads and parses a .drawio or .xml diagram file, returning structured JSON with all shapes, edges, and their properties (labels, positions, styles, connections). Use this to analyze existing diagrams, extract component lists, or understand diagram structure before making modifications. Supports both uncompressed mxGraphModel XML and .drawio file format.
Inputs: file_path (required), include_style_details, include_geometry.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
TDQS
Scored across 10 tools
Most tools have clearly distinct purposes, but some overlap exists between open_drawio_engineering and other open_drawio tools. The descriptions differentiate them, but confusion is possible.
All tool names follow a consistent verb_noun pattern (e.g., create_emc_test_setup, export_drawio, read_drawio), making them predictable and easy to understand.
10 tools is well-scoped for the server's purpose of engineering diagram creation and manipulation. Each tool serves a distinct role without being excessive.
The tool set covers creation from multiple formats, export, and reading. Minor gap: no tool for programmatic editing of existing diagrams beyond markup annotations.
Maintenance
Related MCP Connectors
Create, edit and organize hand-drawn diagrams (flowcharts, ER, architecture) from any AI agent.
Create and edit architecture diagrams from your AI agent; get an SVG and a live editable canvas.
Create draw.io diagrams in chat from Mermaid or XML, shown live and interactive. 10,000+ shapes.
AI agent draws editable hand-drawn diagrams (flowchart, ER, architecture) via MCP, not static images
Related MCP Servers
- AlicenseBqualityAmaintenanceEnables AI agents to programmatically create, modify, and analyze Draw.io diagrams through the Model Context Protocol. Supports generating architectural diagrams, flowcharts, and visualizations with bidirectional communication between AI systems and Draw.io.1397 npm1,501MIT
- AlicenseNot gradedqualityDmaintenanceEnables creating and editing Draw.io diagrams via natural language, supporting shapes, connectors, and multi-line text.2MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to create, modify, and analyze diagrams using Draw.io (Diagrams.net) through MCP commands.MIT
- FlicenseNot gradedqualityFmaintenanceEnables AI assistants to create, read, and manage Draw.io diagrams programmatically through natural language interactions.1-