Labsco
MCP SERVER

Draw.io MCP Server

by lgazo

Let an agent draw in Draw.io — shapes, edges, layers and pages, in the editor you have open.

Diagrams & ChartsOfficial source
Summary
The diagram is edited live, in an editor you can watch.

This is not generating a file to open afterwards — shapes appear in the open canvas, and the agent can read the model back to see the result. Stencils being discovered from the sidebar is what lets it place a real GCP or Cisco icon instead of a labelled box.

What it is

A bridge into Draw.io that lets an agent create, read, modify and delete diagram elements. It either hosts the editor itself, reachable in your browser, or connects to Draw.io already running there through a browser extension. Vendor stencils are discovered from the sidebar at runtime, so cloud icons can be placed by their real names.

What you get
  • Rectangles, shapes and edges added to a page, edited, restyled, given data, and deleted by id
  • The shape catalog browsable — categories, the shapes inside one, and a shape looked up by name — with AWS, GCP, Azure, Cisco19 and CiscoSafe stencils discovered from Draw.io's own sidebar rather than a hand-written list
  • The model read back page by page, and the currently selected cell inspected, so an agent can see what it just drew
  • Layers created, switched, and cells moved between them, plus parent-child nesting for grouping
  • Pages listed, created, copied and renamed, with the current page readable and page-scoped tools taking an explicit target
  • Several open documents addressed individually, with operations serialised per document so two agents on two files do not collide
  • Diagrams imported and exported as XML, or as SVG and PNG with the XML embedded, and Mermaid diagrams imported straight in
Requirements

Node.js v22 or higher, run over stdio from npm as drawio-mcp-server. With the editor flag it hosts Draw.io itself and you open http://localhost:3000/ — nothing else to install. The alternative is the browser extension, which needs Draw.io already open in your browser; Firefox works but requires TLS mode, and the server can generate self-signed certificates for that itself. Integration with the desktop Electron app is not there yet, blocked upstream.

Setup effort

One command — npx -y drawio-mcp-server --editor