Data as of

Draw.io MCP Server for Cursor: Setup & Config

Draw.io MCP Server gives Cursor control over diagrams in a browser.

What you can do with Draw.io in Cursor

Keep assistant-driven diagram edits tied to explicit files and pages, with a bundled browser editor.

  • Assign diagram work to explicit pages while keeping a multi-file session organized.
  • Exchange image exports that retain the diagram's editable XML.
  • Use discovered cloud or network stencils when building visual documentation.

Before you start: Draw.io in Cursor

  • Node.js version 22 or above
  • MCP host to launch the server
  • Browser to open the included 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.

Draw.io Cursor configuration

  1. Choose Cursor configuration scope

    For Draw.io MCP Server, open Project: .cursor/mcp.json User: ~/.cursor/mcp.json. Merge into mcpServers at project or user scope.

  2. Add Draw.io MCP Server to Cursor

    Use the drawio-mcp-server entry below in mcpServers. Keep Draw.io MCP Server's documented stdio connection fields and your other Cursor entries.

  3. Check Draw.io MCP Server in Cursor

    Draw.io MCP Server: Enable in Cursor’s MCP settings; inspect tools.

Config file · Project: .cursor/mcp.json

User: ~/.cursor/mcp.json

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

Draw.io tools available to Cursor

Draw.io's stored tool list documents 6 tools; compare it with Cursor's connected tool list, because the stored list is not a live check.

list-documents

Find list-documents under Draw.io in Cursor's MCP settings; inspect its arguments when the agent requests a call.

get-current-page

Find get-current-page under Draw.io in Cursor's MCP settings; inspect its arguments when the agent requests a call.

list-pages

Find list-pages under Draw.io in Cursor's MCP settings; inspect its arguments when the agent requests a call.

copy-page

Find copy-page under Draw.io in Cursor's MCP settings; inspect its arguments when the agent requests a call.

Make another copy of an existing diagram page.

rename-page

Find rename-page under Draw.io in Cursor's MCP settings; inspect its arguments when the agent requests a call.

Update the label used for a diagram page.

create-page

Find create-page under Draw.io in Cursor's MCP settings; inspect its arguments when the agent requests a call.

Introduce an additional page in the diagram.

Draw.io: full stored tool descriptions

Troubleshooting Draw.io in Cursor

  • Cursor must find npx drawio-mcp-server (Node.js/npm) for Draw.io MCP Server. Enable the project/user entry in MCP settings and inspect its tools.
  • Draw.io MCP Server uses stdio here: Cursor must keep the configured process running; protocol output belongs on stdout and diagnostics on stderr.
  • Known limitation: Runtime requirements start at Node.js 22.
  • Known limitation: Firefox needs a TLS-enabled connection.
  • Known limitation: The experimental desktop integration is presently blocked by upstream CSP behavior.
  • General Cursor troubleshooting lives in the /clients/cursor guide.

Draw.io MCP Server — details. Cursor guide

Frequently asked questions

Cursor's Draw.io MCP Server entry belongs under mcpServers in .cursor/mcp.json (project) or ~/.cursor/mcp.json (user). Confirm the active scope in MCP settings.

Cursor's drawio-mcp-server example uses stdio.

Draw.io MCP Server's Cursor configuration invokes npx drawio-mcp-server (Node.js/npm).

Draw.io MCP Server's stored list contains 6 tools, including list-documents, get-current-page, list-pages. Compare those names with Cursor's connected tool list; the stored list is not a live check.

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

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.