ARC-DRAW

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

Connect your client

Local (from source)

Add in one click

Opens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.

Or add it by command or config

FirstTerminal
git clone https://github.com/etosin/arc-draw.git
cd arc-draw
pnpm install --frozen-lockfile
pnpm -r build
Claude CodeTerminal
claude mcp add arc-draw -- node '<CLONE_PATH>/packages/drawio-mcp-server/build/index.js' --editor
Claude Desktopclaude_desktop_config.json
{
  "mcpServers": {
    "arc-draw": {
      "command": "node",
      "args": [
        "<CLONE_PATH>/packages/drawio-mcp-server/build/index.js",
        "--editor"
      ]
    }
  }
}
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "arc-draw": {
      "command": "node",
      "args": [
        "<CLONE_PATH>/packages/drawio-mcp-server/build/index.js",
        "--editor"
      ]
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "arc-draw": {
      "type": "stdio",
      "command": "node",
      "args": [
        "<CLONE_PATH>/packages/drawio-mcp-server/build/index.js",
        "--editor"
      ]
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.arc-draw]
command = "node"
args = ["<CLONE_PATH>/packages/drawio-mcp-server/build/index.js", "--editor"]
Gemini CLITerminal
gemini mcp add --scope user arc-draw node -- '<CLONE_PATH>/packages/drawio-mcp-server/build/index.js' --editor

Settings 1

GITHUB_TOKEN Optional: Optional GitHub token (no scopes needed) used when downloading the draw.io editor assets is rate-limited.

What it does

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.

What it needs

RuntimeNode.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.

Limits

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.

Who it suits

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.

Tools 33

check-sap-diagram
Checks the current drawing against the SAP BTP diagram guideline
get-sap-examples
Returns reference SAP diagram patterns with their exact styles
get-sap-guideline
Returns SAP diagram rules for a chosen topic such as areas or connectors
list-documents
Lists the draw.io documents currently connected to the server
set-document-title
Renames the selected draw.io document
save-document
Triggers draw.io's File > Save for the selected document
get-selected-cell
Returns the cell currently selected on a page
get-shape-categories
Lists the shape library categories available in the editor
get-shapes-in-category
Lists the shapes within one library category
get-shape-by-name
Looks up one library shape by its name
list-paged-model
Returns a filtered, paginated list of a page's cells and edges
add-rectangle
Places a rectangle at a given position and size
add-edge
Connects two cells with an edge, optional label and waypoints
delete-cell-by-id
Removes a cell from the diagram by its ID
add-cell-of-shape
Places a library shape, such as an SAP icon, on the page
set-cell-shape
Changes an existing cell to a different library shape
set-cell-data
Stores a custom attribute on a cell
edit-cell
Updates a cell's text, position, size or style
edit-edge
Updates an edge's label, endpoints, style or waypoints
set-cell-parent
Moves a cell inside another container cell
list-pages
Lists the pages in a document
get-current-page
Returns the page currently shown in the editor
create-page
Adds a new page to the document
copy-page
Duplicates an existing page
rename-page
Gives a page a new name
list-layers
Lists the layers on a page
set-active-layer
Chooses which layer new cells go to
move-cell-to-layer
Moves a cell onto another layer
get-active-layer
Returns the layer currently active
create-layer
Adds a new layer to a page
export-diagram
Exports a page as SVG, PNG or XML, optionally to a file
import-diagram
Loads draw.io XML, or SVG/PNG with embedded XML, into a page
import-mermaid
Converts Mermaid source into draw.io cells or an embedded image

Similar servers