Draw.io MCP Server
Builds, edits and exports draw.io diagrams live in a browser tab under an assistant's direction
Draws SAP BTP solution architecture diagrams on a live draw.io canvas with SAP icons and rules
By Emerson Tosin (individual) TypeScript Local · stdio Design
19 popularity score ★ 36
Opens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.
git clone https://github.com/etosin/arc-draw.git
cd arc-draw
pnpm install --frozen-lockfile
pnpm -r buildclaude mcp add arc-draw -- node '<CLONE_PATH>/packages/drawio-mcp-server/build/index.js' --editor{
"mcpServers": {
"arc-draw": {
"command": "node",
"args": [
"<CLONE_PATH>/packages/drawio-mcp-server/build/index.js",
"--editor"
]
}
}
}{
"mcpServers": {
"arc-draw": {
"command": "node",
"args": [
"<CLONE_PATH>/packages/drawio-mcp-server/build/index.js",
"--editor"
]
}
}
}{
"servers": {
"arc-draw": {
"type": "stdio",
"command": "node",
"args": [
"<CLONE_PATH>/packages/drawio-mcp-server/build/index.js",
"--editor"
]
}
}
}[mcp_servers.arc-draw]
command = "node"
args = ["<CLONE_PATH>/packages/drawio-mcp-server/build/index.js", "--editor"]gemini mcp add --scope user arc-draw node -- '<CLONE_PATH>/packages/drawio-mcp-server/build/index.js' --editorGITHUB_TOKEN |
Optional: Optional GitHub token (no scopes needed) used when downloading the draw.io editor assets is rate-limited. |
|---|
ARC-DRAW is a local MCP server for SAP architects who want an assistant to sketch SAP Business Technology Platform solution diagrams. It is built on Ladislav Gazo's drawio-mcp-server (v2.3) and adds an SAP layer on top: 111 SAP BTP icons registered as sap.* shapes in the draw.io plugin, and a set of drawing rules taken from SAP's BTP Solution Diagram guideline that the server hands to the client as instructions when it connects. Those rules cover colours, area nesting, and what solid and dashed connectors mean.
The server starts a draw.io editor in your browser at localhost, and the assistant places shapes, edges, layers and pages on that open canvas over a WebSocket link, so you can keep editing the same diagram by hand. Three tools are specific to this project: get-sap-examples returns reference patterns, get-sap-guideline returns rules on a topic, and check-sap-diagram reviews the finished drawing against the guideline. Everything from the upstream server remains, including Mermaid import, XML/SVG/PNG import and export, and the AWS, Azure, GCP and Cisco stencils, which can be mixed with SAP shapes.
The author describes it as early (v0.x) and an independent community project with no affiliation to SAP SE.
| Runtime | Node.js 22+ |
|---|
Node.js 22 LTS, Git and pnpm 10 to clone and build from source. A browser tab open on the built-in draw.io editor (http://localhost:3000/ by default) for as long as drawing tools are used. On first start it downloads the draw.io editor assets from GitHub once, so it needs network access then, or the assets placed by hand with --asset-path. Windows works for build and run; tests need Git Bash or WSL.
Early v0.x release; install is from source only. The upstream npx installer and plugin marketplace entry install the plain draw.io server without the SAP layer. Only tested with Claude Code; other clients are unverified. Drawing tools fail when the canvas tab is closed. Diagram quality depends on the model, which the rules steer but cannot guarantee. SAP icon assets keep their own licence terms.
Suits SAP solution architects who already describe BTP landscapes and want first drafts that follow SAP's diagram conventions, while staying in control of a live draw.io canvas they edit alongside the assistant. It runs entirely on your machine and needs no account. If you draw diagrams for AWS, Azure or other clouds with no SAP content, the upstream drawio-mcp-server gives the same canvas tools with a published npm install. Its README names btp-drawio-skill as an alternative that writes .drawio files directly as a Claude Code skill rather than editing a live canvas.
check-sap-diagramget-sap-examplesget-sap-guidelinelist-documentsset-document-titlesave-documentget-selected-cellget-shape-categoriesget-shapes-in-categoryget-shape-by-namelist-paged-modeladd-rectangleadd-edgedelete-cell-by-idadd-cell-of-shapeset-cell-shapeset-cell-dataedit-celledit-edgeset-cell-parentlist-pagesget-current-pagecreate-pagecopy-pagerename-pagelist-layersset-active-layermove-cell-to-layerget-active-layercreate-layerexport-diagramimport-diagramimport-mermaid