Server profile

Draw.io MCP Server

Draw.io MCP Server gives assistants control over diagrams in a browser. It can host its own editor or connect through an extension, with explicit document and page selection for larger diagramming sessions.

Server facts

Draw.io MCP Server

Project

Author
lgazo
License
MIT

Tech

Runtime / language
node
Transports
stdio
Remote available
No
Authentication
Not specified

Activity

GitHub stars
1,486
Last commit
Data as of

Tags

  • Diagram Editing
  • Drawio
  • Mermaid
  • Multi Page
  • Visual Documentation

Overview

A diagramming session can contain several files and several pages, so this server makes targeting part of its editing model. It discovers connected documents, routes requests through a document selector, and requires a page selector for operations scoped to one page. Live actions are queued in order for each document; different files can therefore receive work from different agents without sharing one document queue. Page operations cover discovery, creation, copying, and renaming, while layers provide another way to organize diagram content. Editing reaches individual labels, connectors, and shapes, including nesting and grouping. Connector geometry can use waypoints, with automatic routing for self-connections.

Users can enter through the included browser editor or connect an existing Draw.io browser session using an extension. The included editor is served locally and does not need that extension. Diagram interchange covers XML and editable XML embedded within PNG or SVG images. Mermaid content can be imported, embedded, or expanded. Vendor stencils are found in the running editor's sidebar, including cloud and network icon collections, rather than selected from a separately curated list. Setup needs an MCP host and at least Node.js 22. TLS is optional for the server generally, but required for the documented Firefox support. The desktop Electron path is different: its experimental integration currently cannot complete the connection because of an upstream CSP restriction.

Install & configure

Requirements

  • Node.js version 22 or above
  • MCP host to launch the server
  • Browser to open the included editor
Documented launch / install command
npx -y drawio-mcp-server --editor

This is the README's included-editor configuration. Restart the MCP host, then browse to http://localhost:3000/ for the editor UI; that address is not the MCP transport endpoint. An extension-based session can omit --editor. Do not assume the blocked desktop path works like either browser option.

Config file · macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

Windows: %APPDATA%\Claude\claude_desktop_config.json

Use Settings → Developer → Edit Config when available. Do not assume a Linux configuration path; check the client documentation for your platform. Remote servers use the app’s connector flow when supported, not the local stdio file shown here. Merge this example with existing settings; do not overwrite unrelated servers.

Claude Desktop configuration
{
  "mcpServers": {
    "drawio-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "drawio-mcp-server",
        "--editor"
      ],
      "env": {}
    }
  }
}

Read the Claude Desktop setup guide

Config file · Project: .cursor/mcp.json

User: ~/.cursor/mcp.json

The project path is relative to the workspace root. The tilde denotes your user home directory. Use Cursor’s MCP settings to confirm which configuration and scope your installed version is reading. Merge this example with existing settings; do not overwrite unrelated servers.

Cursor configuration
{
  "mcpServers": {
    "drawio-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "drawio-mcp-server",
        "--editor"
      ],
      "env": {}
    }
  }
}

Read the Cursor setup guide

Config file · Workspace: .vscode/mcp.json

For user scope, use the “MCP: Open User Configuration” command if available. Do not guess a user configuration path across operating systems, profiles, containers, or remote workspaces; check the client documentation. Merge this example with existing settings; do not overwrite unrelated servers.

VS Code configuration
{
  "servers": {
    "drawio-mcp-server": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "drawio-mcp-server",
        "--editor"
      ],
      "env": {}
    }
  }
}

Read the VS Code setup guide

Config file · macOS/Linux: ~/.codeium/windsurf/mcp_config.json

Windows: %USERPROFILE%\.codeium\windsurf\mcp_config.json

Open the MCP configuration through Windsurf’s settings when possible to confirm the active file. Paths can differ in managed or future releases; check the client documentation if this location is not present. Merge this example with existing settings; do not overwrite unrelated servers.

Windsurf configuration
{
  "mcpServers": {
    "drawio-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "drawio-mcp-server",
        "--editor"
      ],
      "env": {}
    }
  }
}

Read the Windsurf setup guide

Config file · Project scope: .mcp.json at the repository root

The project file uses mcpServers. For user scope, use claude mcp add --scope user rather than assuming .mcp.json in your home directory is the user configuration. Check the client documentation for managed settings and storage details. Merge this example with existing settings; do not overwrite unrelated servers.

Claude Code configuration
{
  "mcpServers": {
    "drawio-mcp-server": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "drawio-mcp-server",
        "--editor"
      ],
      "env": {}
    }
  }
}

Read the Claude Code setup guide

Examples are translated from the published configuration. Supply your own credentials and verify requirements in the upstream README. Remote connectors are shown only where a supported configuration format is known.

Tools

Source: repository README. Tool descriptions are a documented snapshot, not a live capability check.

ToolWhat it does
list-documentsFind connected diagram instances before choosing the document to edit.
get-current-pageIdentify the active page in a diagram.
list-pagesDiscover the pages belonging to a document.
copy-pageMake another copy of an existing diagram page.
rename-pageUpdate the label used for a diagram page.
create-pageIntroduce an additional page in the diagram.

Names, permissions, and defaults can change. Check the current upstream documentation before granting access.

Use cases

  • Assign diagram work to explicit pages while keeping a multi-file session organized.
  • Refine connectors, labels, and grouped shapes in an existing architecture drawing.
  • Bring Mermaid material into a Draw.io editing session.
  • Exchange image exports that retain the diagram's editable XML.
  • Use discovered cloud or network stencils when building visual documentation.

Strengths

  • The bundled browser editor eliminates an extension requirement for that connection path.
  • Document queues and explicit page targets make the destination of edits unambiguous.
  • Combines diagram interchange with live editing of pages, layers, and elements.
  • Discovers vendor icons from the active editor instead of maintaining a separate icon catalog.

Limitations

  • Runtime requirements start at Node.js 22.
  • Firefox needs a TLS-enabled connection.
  • The experimental desktop integration is presently blocked by upstream CSP behavior.

Frequently asked questions

Run with --editor to use the locally hosted Draw.io interface. The extension is the alternative for attaching an existing browser session.

Document discovery identifies connected instances, and target_document selects the destination. Page-scoped calls additionally require target_page.

Yes. The README describes import and export for SVG and PNG containing embedded XML, alongside plain XML interchange.

The Electron integration is still experimental. An upstream content-security policy rejects its WebSocket connection to the server, blocking the full workflow.

Yes. Importing, embedding, and expanding Mermaid content are documented capabilities.

Independent listing, not an affiliation or security review. Grant the least access needed and verify the upstream instructions before running code.

Related MCP servers

IDA Pro MCP

Security & Reverse Engineering

IDA Pro MCP connects AI clients to IDA for binary inspection, decompilation, database changes, and optional debugging. Its recommended headless path manages persistent analysis workers and explicit database sessions.

Framelink MCP for Figma

Design & Creative

Framelink supplies coding agents with selected Figma metadata and image assets. Developers can bring a design link into an editor conversation and use its underlying layout details while implementing an interface.

21st.dev Magic AI Agent

Design & Creative

21st.dev Magic AI Agent turns natural-language requests into customizable UI components inside supported coding tools. It combines component-library inspiration, previews, TypeScript support, and brand assets for interface development.

DaVinci Resolve MCP Server

Design & Creative

Control DaVinci Resolve Studio from an AI assistant through its scripting API. Editing, grading, media analysis, render preparation, and a local control panel support post-production workflows.

FreeCAD MCP

Design & Creative

Control FreeCAD from an assistant through an addon and Python MCP server. Tools create and inspect CAD objects, run Python, use library parts, capture views, and execute existing FEM analyses.

Photoshop MCP Server

Design & Creative

Photoshop MCP Server lets assistants control a locally installed Photoshop through photoshop-python-api. It supports document work, layers, and session inspection on Windows only.

After Effects MCP Server

Design & Creative

After Effects MCP Server routes assistant commands into an open Adobe After Effects session. A bridge panel enables composition and layer work, animation controls, and JavaScript execution inside the application.