← Back to directory
D

draw.io MCP Server

Official
Create and render live, interactive draw.io diagrams inline in chat.
Category
Other #20 of 230
Stars
★ 5.6k Very popular
Transport
Streamable HTTP
Runtime
Hosted (no local runtime) · Node.js
Credentials
No credential needed
License
Apache-2.0
Last commit
Tools
2
68FMRS · C

Official draw.io MCP App Server that renders interactive diagrams inline in chat via the hosted mcp.draw.io endpoint, offering create_diagram and search_shapes tools; requires no install but sends diagram data to the cloud by default, with self-hosting available for stricter data residency needs.

Strongest · Documentation 16/20 Weakest · Reliability 9/20

Reliability
9/20
Security and permissions
14/20
Maintenance
15/20
Documentation
16/20
Setup experience
14/20
Why each score
Reliability 9/20
The manifest declares a single remote streamable-http endpoint and two tools (create_diagram, search_shapes) whose behavior descriptions in the README are internally consistent, and a GitHub Action refreshes the shape index automatically. However, no test files or CI workflows validating the MCP server's own request/response handling (init handshake, tool invocation, error paths) are present in the reviewed material, so the happy path is only plausible from documentation, not verified. Per the static calibration rule, reliability is capped at 12; the actual score is reduced further to 9 for the complete absence of disclosed error handling, retry behavior, or edge-case documentation for the two tools.
Security and permissions 14/20
No credentials, tokens, or destructive/irreversible operations are involved; the two tools (diagram creation and shape search) are read/render-oriented with no filesystem or remote-command side effects. The README's 'Data Residency & Offline Use' section is unusually transparent, explicitly disclosing that the hosted endpoint (mcp.draw.io) sends diagram content to draw.io's own server, and offers self-hosting to avoid this — a strong positive. However, using the hosted remote (the actual target of this server.json) sends user diagram data to a third-party service by default with no runtime confirmation step, only documentation-level disclosure, and there is no explicit statement of access scope or rate limiting on the public endpoint, so full least-privilege/confirmation marks are not met. No red-line issue is present, so the 0-4 red-line band does not apply.
Maintenance 15/20
The repository is an official project maintained by jgraph (the draw.io organization), not archived, licensed under Apache-2.0, with only 1 open issue against 5130 stars suggesting responsive issue triage. A GitHub Action (update-search-index.yml) automatically keeps the shape index in sync with upstream draw.io releases, showing an active automated maintenance pipeline, and the manifest uses semantic versioning (1.0.3). No SECURITY.md or explicit vulnerability-disclosure channel is referenced in the material reviewed, and no changelog or release-cadence information is visible, preventing a top score.
Documentation 16/20
Documentation is unusually layered for an MCP server: the top-level README compares four integration paths in a table, links to per-component READMEs, documents a shared canonical XML-generation reference used by all four approaches, explains the shape-search index generation and refresh pipeline, and includes a dedicated 'Data Residency & Offline Use' section with a per-approach table of whether diagram data leaves the machine plus concrete mitigation steps (VIEWER_PATH, DRAWIO_BASE_URL, DRAWIO_ICON_SERVICE_URL). This significantly exceeds typical disclosure of limitations and cost/data-flow tradeoffs. Deduction: the two tools' formal parameter schemas (accepted XML size, rate limits, error responses, timeout behavior) are not documented in the material reviewed, only prose-level tool descriptions, leaving some operational assumptions hidden.
Setup experience 14/20
For the reviewed server.json target (MCP App Server, hosted remote), setup is minimal: no installation is required, only adding the URL https://mcp.draw.io/mcp as a remote MCP server, with a one-click install link provided for Cursor and stated compatibility with Claude.ai, VS Code, and any MCP Apps-compatible host. Self-hosting alternatives (local Node.js or Cloudflare Workers) are also documented for stricter data-residency needs. Per the static calibration rule, setup is capped at 15 absent committed tests/CI proving the described steps actually work end-to-end; the score is set at the cap given the described steps are clear and few, but this has not been independently verified by execution.

Static review · not runListed 2026-08-26

Read the FMRS scoring method →

Fit and risk

What it can accessUses the network

Best for

  • Users who want inline diagram previews without leaving the chat
  • Teams brainstorming architecture or process diagrams in Claude.ai or Cursor
  • Users comfortable relying on the hosted mcp.draw.io endpoint

Not for

  • Users needing local .drawio files, PNG/SVG/PDF export, or Mermaid/CSV input (use the MCP Tool Server or Assistant Plugins instead)
  • Strict data-residency environments that cannot send diagram XML to the hosted mcp.draw.io endpoint (self-hosting required)
  • MCP hosts without MCP Apps extension support, where diagrams return as text only

Required permissions

  • Sends diagram XML data to the hosted mcp.draw.io endpoint unless self-hosted
  • Loads draw.io viewer application code from app.diagrams.net / viewer.diagrams.net by default
  • No local filesystem or system access required when used as the hosted remote server

Risks and side effects

  • Diagram content is sent to draw.io's hosted server when using the default mcp.draw.io endpoint
  • Outbound requests to app.diagrams.net/viewer.diagrams.net load viewer code by default unless built with VIEWER_PATH
  • Inline rendering depends on the host supporting the MCP Apps extension; otherwise only raw XML text is returned

Setup

Before you start

Runtime:Hosted (no local runtime) · Node.js

Other optional settings (4)
VIEWER_PATH optional App Server build variable to inline the viewer code instead of loading it from viewer.diagrams.net, reducing outbound requests.
DRAWIO_BASE_URL optional Tool Server env var pointing to a self-hosted draw.io instance instead of the default app.diagrams.net.
DRAWIO_ICON_SERVICE_URL optional Override the icon service endpoint (icons.diagrams.net) with a self-hosted one, or set to off to disable icon supplementation.
DEBUG optional Set to true on the Cloudflare-hosted App Server to log response bodies.

Add https://mcp.draw.io/mcp as a remote MCP server URL in Claude.ai, Cursor, or another MCP Apps-compatible host's settings — no installation required. To self-host instead, clone the repo and run cd mcp-app-server && npm install && npm start, or deploy to Cloudflare Workers; set the VIEWER_PATH environment variable at build time to inline the viewer and avoid loading it from viewer.diagrams.net.

.cursor/mcp.json
{"mcpServers": {"drawio": {"url": "https://mcp.draw.io/mcp"}}}

Shown for Cursor. Other clients may use a different file or key (VS Code uses "servers") — the configurator below converts it.

.vscode/mcp.json
{
  "servers": {
    "drawio": {
      "url": "https://mcp.draw.io/mcp"
    }
  }
}

Goes in your project's .vscode/mcp.json (VS Code uses a "servers" key).

Terminal
claude mcp add --transport http drawio https://mcp.draw.io/mcp

Run it in a terminal; replace any <…> placeholders with your own values first.

Check that it works

After adding https://mcp.draw.io/mcp as a remote MCP server, create_diagram and search_shapes should appear in the client's tool list; calling create_diagram with simple draw.io XML should render an interactive diagram inline if the host supports MCP Apps.

Troubleshooting

  1. If diagrams don't render inline, confirm the host supports the MCP Apps extension
  2. On Cursor versions older than 2.6, use the stdio-based @drawio/mcp Tool Server instead
  3. For strict data residency, self-host via Node.js or Cloudflare Workers instead of the hosted endpoint
  4. Call search_shapes before create_diagram to get correct shape style strings

Things to try

Once connected, you can ask your AI assistant things like:

  • Use search_shapes to find an AWS Lambda shape, then draw a diagram of a Lambda function calling S3
  • Create an architecture diagram of three interacting microservices using ELK auto-layout (postLayout: "elk")
  • Search for Kubernetes shapes and then create a diagram of a Pod and a Service
  • Create a dark-mode BPMN flowchart with orthogonal connectors using libavoid routing (routing: "libavoid")

Tools 2

create_diagram writes
Renders draw.io XML as an interactive diagram inline in chat
search_shapes read-only
Searches draw.io's shape libraries by keyword and returns exact style strings for use in XML

Use cases

Sketch architecture diagrams during a chat conversation
Visualize flowcharts, UML, network diagrams, and BPMN inline
Search for and insert correctly-styled shapes (AWS, Azure, GCP, Cisco, Kubernetes icons, etc.) into diagrams

Supported clients

Claude.ai
Cursor
VS CodePartial support

Listed from the project's documentation, not tested by this site.

Overview

The draw.io MCP App Server is the official draw.io MCP server that renders diagrams inline in AI chat interfaces using the MCP Apps protocol, appearing as interactive iframes instead of opening a browser tab. The official hosted endpoint at https://mcp.draw.io/mcp can be added as a remote MCP server to Claude.ai, Cursor, or any MCP Apps-compatible host with no installation required; it can also be run locally via Node.js or deployed to your own Cloudflare Workers instance. It exposes two tools: create_diagram, which renders draw.io XML as an interactive diagram inline in the conversation, and search_shapes, which searches over 10,000 shapes across draw.io's libraries (AWS, Azure, GCP, P&ID, electrical, Cisco, Kubernetes, UML, BPMN, etc.) by keyword, falling back to the draw.io icon service when no strong local match exists, and returns exact style strings usable directly in XML.

Similar servers

BioMCP 75 · B

One binary. One grammar. Evidence from the biomedical sources you already trust.

★ 654 · Tools 11 Compare with this →

Source revision e6073e8140c3 Data synced 2026-10-12 Read the FMRS scoring method