Skip to main content
Glama
drawio-engineering-mcp

drawio-engineering-mcp

by RFingAdam

License Node MCP eng-mcp-suite

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_diagram runs Friis gain/NF cascade math; create_pcb_stackup renders cross-sections with material properties; create_emc_test_setup uses CISPR / ISO templates.

  • yes Round-trip. read_drawio parses .drawio XML into structured JSON (shapes, edges, styles) so an agent can analyze an existing diagram. export_drawio renders 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 install

Three surfaces, same answer

Claude Code

claude mcp add drawio-engineering -s user -- \
  node /path/to/drawio-engineering-mcp/src/index.js

Claude 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_drawio_xml

Open draw.io with raw XML content

xml

open_drawio_csv

Open draw.io with CSV data

csv, style

open_drawio_mermaid

Open draw.io with Mermaid syntax

mermaid

open_drawio_engineering

Open draw.io with the 269 engineering stencils loaded in the sidebar

stencils

Generators

Tool

Purpose

Key arguments

create_rf_block_diagram

Auto-layout RF signal chain from JSON (Friis gain/NF cascade)

blocks, frequency_ghz

create_emc_test_setup

CISPR 25 / ISO 11452 EMC test setup diagrams from templates

template, dut_name

create_pcb_stackup

PCB cross-section stackup diagrams (4-layer / 6-layer / custom)

layers, materials

markup_schematic

Annotate schematic screenshots with redlines, revision clouds, callouts

image_path, annotations

Analysis

Tool

Purpose

Key arguments

read_drawio

Parse .drawio files into structured JSON (shapes, edges, styles)

file_path

export_drawio

Export diagrams to SVG (or PNG with puppeteer)

file_path, format


Stencil libraries

269 engineering symbols across 13 libraries, automatically loaded by open_drawio_engineering into the draw.io sidebar:

Library

Symbols

Contents

rf-blocks

30

Core RF blocks (LNA, PA, mixer, filter, switch, antenna, …)

rf-amplifiers-mixers

16

Amplifier variants (LNA, PA, VGA, driver, buffer, log, limiting) + mixers

rf-filters-attenuators

17

BPF, LPF, HPF, notch, cavity, SAW, BAW, DSA, step / variable atten

rf-passive-components

14

Circulators, isolators, directional couplers, Wilkinson, hybrid, balun

rf-sources-oscillators

10

Crystal, TCXO, OCXO, VCO, PLL, DDS, synthesizer

rf-switches-detectors

15

SPDT, SP4T, transfer, T/R, power detector, ADC, DAC

rf-antennas-txlines

20

Dipole, patch, horn, array, MIMO, coax, microstrip, waveguide

ee-power-ics

20

LDO, buck, boost, flyback, battery, SoC, FPGA, MCU, QFN, BGA

ee-connectors

14

SMA, U.FL, N-type, BNC, USB-C, RJ45, pin header, B2B

ee-test-equipment-emc

18

Spectrum analyzer, VNA, scope, LISN, CDN, anechoic chamber

pcb-stackup-vias

30

Copper / prepreg / core layers, through / blind / buried / micro vias, impedance traces

wireless-telecom

27

Wi-Fi, BLE, LTE, 5G NR, LoRa, Zigbee, Thread, protocol badges, OFDM, QAM

general-engineering

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: pair create_emc_test_setup with mcp-emc-regulations to generate the test setup diagram for the exact CISPR / ISO method the limit lookup returned.

  • pcb-review: generate create_pcb_stackup cross-sections during a mcp-pcb-emcopilot design review.

  • rf-design. Use create_rf_block_diagram to 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


Part of eng-mcp-suite

This MCP server is part of

eng-mcp-suite

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

lineforge

EMC regulatory

mcp-emc-regulations

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

mcp-blender

Remote access

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

  1. Pick a GitHub issue.

  2. Fork + branch (feature/your-thing or fix/your-bug).

  3. Run tests (npm test) if present.

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

Part of eng-mcp-suite: built for RF engineers, PCB designers, EMC labs, and AI agents.

Available Tools

10 tools
create_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

    A4.1/5.0

    Scored across 10 tools

    Disambiguation4/5

    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.

    Naming Consistency5/5

    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.

    Tool Count5/5

    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.

    Completeness4/5

    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

    ActivityMaintained
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers