MCP serverMCP servertypeExposes tools to a coding agent over MCP.See every one →What this type is →independently maintainedindependently maintainedoriginPublished by one person or a small company outside SAP. Says nothing about quality; the readings say that.See every one →

ARC-DRAW

An MCP server that draws BTP solution diagrams onto a live draw.io canvas, with 111 SAP BTP icons as native shapes and SAP's diagram guidelines handed to the client as drawing rules.

The agent gets two things: 111 SAP BTP icons as native sap.* shapes, so it places sap.cloud_integration instead of a labelled box, and the SAP BTP Solution Diagram Guidelines distilled into a drawing constitution that reaches the MCP client the moment it connects, covering colours, connector semantics, area nesting and compose order. Two further tools let the agent ask for a canonical pattern or for a rule by topic. It draws onto a live canvas rather than writing a file: draw.io has to be open at http://localhost:3000/, and the drawing tools work only while that tab is connected. The draw.io half is drawio-mcp-server by Ladislav Gazo, which the maintainer credits as what ARC-DRAW stands on. Installation is from source with pnpm, and a one-line npx install sits on the maintainer's list of what is still to come.

Facts

Last pushLicenceMIT

Where it sits

Lives in
Provides
Architecture diagramsBTPArchitecture diagramscapabilityDrawing the architecture and components of a solution so another person can understand their responsibilities and connections. Shared notation makes diagrams readable across teams.Agent guidanceBTPAgent guidancecapabilityPackaged knowledge you hand a coding agent so it gets a framework right unprompted — skills, rule files, instruction packs. Distinct from agent tooling, which is about building agentic features into your application, and from [agent access to your code](capability:agent-code-access), where the agent reads the real project instead of being handed a file about it.
Requires
draw.iodraw.iooutside the atlasThe server draws onto a live draw.io canvas, and its drawing tools work only while that canvas is open and connected.Node.jsNode.jsoutside the atlasThe MCP client starts the server as a Node process from the built output, and the repository names the runtime version it is built and run with.

Who is behind it

Emerson TosinEmerson TosinPersonMaintains this
In the atlas: maintains 1, contributes to 1
@etosin
maintainer

Before choosing this

Conditions

PracticalFunctional boundary

Any run nobody is watching: the drawing tools work only while the draw.io canvas at http://localhost:3000/ is open and connected, so there is no diagram to produce on a build agent or a server. Nothing checks the result either, because the maintainer keeps a diagram linter on the roadmap rather than in the release. The maintainer marks the status early at v0.x, installs it from source, and records testing with Claude Code alone.

What it declares

Every artifact

Type
MCP server
Origin
Independently maintained
Runtime
Node.js

As an MCP server

Runs as
local process
Transport
stdio

For architecture diagrams

Checking
Checks the fileChecks the pictureRepairs findings
Diagram format
drawio
property statedstated nonot said

Tasks this contributes to2Beta

Check a BTP solution diagram against the guidelineA BTP solution diagram exists, and before it goes into a document or a review someone wants to know whether it follows SAP's visual language rather than only looking about right.Stated not supportednone for this outcome
What it does

The maintainer lists a diagram linter that would check an existing .drawio file against the SAP guideline on the roadmap, so the release carries no such check. The guideline reaches the agent as a drawing constitution before the diagram, not as a check after it.

Remaining work

Read the drawn canvas by eye, or run one of the other contributions over the exported file.

All options on the Architecture diagrams page →
Hand an agent SAP's BTP diagram rulesSomeone asks an agent for a BTP solution diagram and wants it drawn in SAP's own visual language without the rules being typed into the prompt.Coversthe rules pushed to the client on connect
What it does

The guideline reaches the MCP client as a drawing constitution the moment it connects, rather than being loaded as a skill the agent decides to read. Two tools, get-sap-examples and get-sap-guideline, let the agent ask for a canonical pattern or a rule by topic afterwards.

Remaining work

Install from source and keep a draw.io canvas open and connected, since that is what the drawing tools work against. Nothing here checks the result: the maintainer keeps a diagram linter on the roadmap.

All options on the Agent guidance page →

Connections4

Your machineARC-DRAW — README, MCP client configuration, checked 2026-09-28: “"type": "stdio"”stdiodocumentedrequiresdocumentedrequiresYour MCP client, actorYour MCP clientdraw.io, systemdraw.iosystemNode.js, systemNode.jssystemARC-DRAW, moduleARC-DRAW
SAPnot SAP's, or the project's ownstated in the documentdocumented only

README

quoted from etosin/arc-draw under MIT, read
etosin/arc-draw/README.mdOn GitHub
ARC-DRAW: describe your SAP architecture, your AI agent draws it the SAP way

License: MIT MCP SAP BTP icons Good first issues PRs welcome

An open-source MCP server that lets your AI agent draw SAP BTP solution diagrams on a live draw.io canvas, with the official SAP icons and the SAP diagram rules built in.

Quick start · Try a prompt · Help build it · Roadmap


One prompt to Claude Code, and ARC-DRAW builds an SAP BTP inbound-integration diagram on a live draw.io canvas: partner, SAP BTP with Cloud Integration and Connectivity Service, Cloud Connector, and S/4HANA on-premise, with a legend

One prompt to Claude Code, a diagram built live on the draw.io canvas (sped up ~3.5×). The agent finishes by checking its own work with check-sap-diagram.


Why this exists

Every SAP architect knows the routine. A whiteboard sketch turns into forty minutes of hunting for the right BTP icon, fixing colours and re-routing connectors, just so the diagram looks like something SAP would publish.

Generic AI diagram tools don't fix that. They draw boxes, not SAP products. They use black arrows and random colours, and they put your on-premise S/4HANA inside the BTP boundary.

ARC-DRAW gives your agent the two things it is missing.

What it isWhy it matters
🎨 Vocabulary111 SAP BTP icons as native sap.* shapes, plus draw.io's own SAP palette (mxgraph.sap.*) when your draw.io ships itThe agent places sap.cloud_integration, not "a blue box labelled CPI". Icons live in the plugin, so they never eat your model's context.
📐 GrammarThe SAP BTP Solution Diagram guideline distilled into a drawing constitution, sent to your MCP client the moment it connectsColours, connector semantics (solid = sync, dashed = async), area nesting and compose order become rules the agent follows, not suggestions.

On top of that, two tools the agent can call by itself: get-sap-examples (canonical patterns with ground-truth styles) and get-sap-guideline (specific rules by topic: areas, connectors, icons, numbering…).

constitution auto-loaded+ get-sap-examples / get-sap-guideline WebSocket You(plain language) MCP clientClaude Code · Claude Desktop · … ARC-DRAWMCP server draw.io plugin+ SAP icon catalog Live canvasyou keep editing by hand

🚀 Quick start

Status: early (v0.x). It works and we use it, but expect rough edges. Installation is from source for now; a one-line npx install is on the roadmap.

You need: Node.js 22 LTS, Git, and pnpm (corepack enable, or npm i -g pnpm@10).

git clone https://github.com/etosin/arc-draw.git
cd arc-draw
pnpm install --frozen-lockfile
pnpm -r build

Register the server in your MCP client, using the absolute path to your clone.

Claude Code / Claude Desktop (JSON config)
{
  "mcpServers": {
    "arc-draw": {
      "type": "stdio",
      "command": "node",
      "args": [
        "/absolute/path/to/arc-draw/packages/drawio-mcp-server/build/index.js",
        "--editor"
      ]
    }
  }
}

On Windows use forward slashes: C:/Users/you/dev/arc-draw/packages/drawio-mcp-server/build/index.js.

Port 3000 already taken?

Corporate security agents like port 3000. Add "--http-port", "4000" to args and open http://localhost:4000/ instead.

Restart your MCP client, open http://localhost:3000/ and leave that tab open. It is the live canvas, and drawing tools only work while it is connected.

💬 Try these prompts

  • "Draw a TO-BE inbound integration: partner → SOAP sender adapter → Cloud Integration iFlow (enrichment) → REST receiver → S/4HANA on-premise via a standard API. Put Cloud Integration and API Management inside an Integration Suite area and add a legend."
  • "Show an AS-IS / TO-BE comparison for replacing a PI/PO interface with Cloud Integration."
  • "Side-by-side extension: a CAP app on Cloud Foundry reads S/4HANA through a Destination and Cloud Connector, users sign in through Cloud Identity Services. Number the flow steps."

Then edit the result by hand in the canvas, or ask the agent to change it. Got a prompt that works well, or one that goes wrong? Share it: that is the most useful thing you can do.

🧰 What's inside

CategoryIcons
sap.foundation43
sap.integration_suite15
sap.app_dev_and_automation17
sap.data_and_analytics8
sap.btp_saas17
sap.ai11

ARC-DRAW is built on drawio-mcp-server v2.3, so everything from upstream still works: multi-page and multi-document targeting, layers, edges, Mermaid import, TLS, the browser extension, and the AWS/Azure/GCP/Cisco stencils. You can mix them with SAP shapes in one diagram.

🙋 Help build this

This project needs SAP practitioners more than it needs programmers. The agent is only as good as the rules and patterns we give it, and you know how these diagrams should look.

You don't need to write a line of TypeScript to make a real difference:

I have…I can…Time
5 minutesReport a diagram the agent got wrong. Include your prompt and a screenshot.⏱️
A diagram I draw every monthPropose a pattern: AS-IS/TO-BE, event-driven, side-by-side extension…⏱️⏱️
The SAP guideline openSpot a rule in constitution/ that doesn't match it, and fix it in a PR.⏱️⏱️
A different MCP clientTell us if it works with Cursor, Copilot, Codex, Zed…, or write the setup guide.⏱️⏱️
A screen recorderRecord the demo GIF that should sit at the top of this README.⏱️⏱️
TypeScript skillsPick a good first issue or a help wanted.⏱️⏱️⏱️

Questions and half-formed ideas are welcome in Discussions. Everything is in CONTRIBUTING.md.

Every contributor is credited in the release notes and below. ⭐ A star also helps other SAP people find the project.

Contributors

🗺️ Roadmap

  • One-line install via npx, with the Claude Code plugin pointing at ARC-DRAW
  • Demo GIF and a gallery of community diagrams
  • Reusable SAP patterns (AS-IS/TO-BE, BTP inbound/outbound, side-by-side extension)
  • Diagram linter: check an existing .drawio file against the SAP guideline
  • Decide whether the bundled icon catalog can be retired in favour of draw.io's native SAP palette
  • Setup guides for more MCP clients
  • Server tests that pass on Windows

Have a better idea? Open a discussion.

⚠️ Known limitations

We would rather tell you now:

  • Installation is from source. The /plugin marketplace entry and the npx drawio-mcp-server install command inherited from upstream install the plain draw.io server, without the SAP layer. Use the manual setup above until the npx install lands.
  • Tested with Claude Code. Other MCP clients should work, since this is a standard MCP server, but we have not verified them yet. Tell us what you find.
  • Diagram quality depends on the model. The constitution steers the agent; it can't make every model perfect. That is why diagram feedback is so valuable.
  • Windows: build and run work from PowerShell, but pnpm test needs Git Bash or WSL, and a few inherited upstream tests assume Linux/macOS.

ARC-DRAW is not the only attempt at teaching an AI agent to draw SAP BTP diagrams. btp-drawio-skill by Wouter Lemaire is a Claude Code plugin: a skill that authors .drawio files directly, with the full official SAP BTP icon library bundled and a structural + style validator script. ARC-DRAW takes a different route: an MCP server that edits a live draw.io canvas, so a person and the agent can work on the same diagram together. The two approaches complement each other, and both follow the official SAP BTP Solution Diagram guideline.

If you know of another one, open an issue and it will be added here.

🔧 Troubleshooting

The agent says there is no document / list-documents is empty. The canvas tab isn't open. Open http://localhost:3000/ and keep it open, then hard-refresh (Ctrl+F5).

MCP client shows Failed to reconnect: -32000. The build didn't run on this machine. Run pnpm install && pnpm -r build and check that packages/drawio-mcp-server/build/index.js exists.

The first launch is slow, or fails with "Could not download the draw.io editor assets". The built-in editor downloads draw.io once and caches it. If GitHub rate-limits your network (common on shared IPs and behind corporate proxies), ARC-DRAW retries through the GitHub release page on its own. If that fails too, it prints the fix. Either:

  • set a GITHUB_TOKEN environment variable (any token, no scopes needed) and start again; or
  • install the assets by hand: download draw.war from the draw.io releases, unzip it into <folder>/webapp (so that index.html sits directly inside), delete the WEB-INF and META-INF folders in there, and start the server with --asset-path <folder>.

More in TROUBLESHOOTING.md and docs/SAP-INTEGRATION.md.

Credits

ARC-DRAW stands on the shoulders of drawio-mcp-server by Ladislav Gazo (MIT). The MCP server, the draw.io plugin, the browser extension and all live-canvas tooling are his work; ARC-DRAW adds the SAP vocabulary and grammar. If you like this, please star the upstream project too. The original README is kept as README.upstream.md.

SAP icons and diagram conventions come from SAP's BTP Solution Diagrams (Apache-2.0). See NOTICE.md. Diagrams are rendered by draw.io.

Created and maintained by Emerson Tosin, SAP Solution Architect.

License & disclaimer

MIT. See LICENSE.md and NOTICE.md.

ARC-DRAW is an independent community project. It is not affiliated with, sponsored by, or endorsed by SAP SE. SAP, SAP BTP, SAP S/4HANA and other SAP product names are trademarks of SAP SE. SAP icon assets remain subject to their own license terms.

MIT, read

Others providing24

Architecture diagrams
  1. btp-solution-diagram-generatorClaude plugin writing BTP solution diagrams as .drawio files
  2. abap-skillsSeventeen agent skills for ABAP development
  3. drawio-skill-sapGitHub Copilot skill writing BTP solution diagrams as draw.io XML
  4. sap-architectureClaude Code plugin and skill drawing validated BTP diagrams
  5. drawio-btp-diagram-skillsClaude Code skills for BTP architecture diagrams in draw.io
  6. SAP BTP Solution Diagram GuidelinesSAP's visual language and templates for BTP solution diagrams
Agent guidance
  1. sap-cx-developer-companionAgent skill for SAP Customer Experience APIs, CDS and errors
  2. sap-cloud-integration-pipeline-assistantAgent skill for the Pipeline Concept in SAP Cloud Integration
  3. DanKromp/skillOverflowCollection of 41 agent skills, 37 for SAP development tasks
  4. sap-ai-dev-toolkitMCP proxy pinning an agent's ABAP tools to one SAP system
  5. sap-odata-explorerRust CLI and desktop app for exploring SAP OData services
  6. btp-solution-diagram-generatorClaude plugin writing BTP solution diagrams as .drawio files
  7. abap-skillsSeventeen agent skills for ABAP development
  8. drawio-skill-sapGitHub Copilot skill writing BTP solution diagrams as draw.io XML
  9. sap-mdk-appsAgent skill for Mobile Development Kit projects
  10. sap-architectureClaude Code plugin and skill drawing validated BTP diagrams
  11. SAP Datasphere Plugin for ClaudeEighteen Datasphere skills over a bundled MCP server
  12. SAP Power for KiroSAP skills for the Kiro IDE
  13. drawio-btp-diagram-skillsClaude Code skills for BTP architecture diagrams in draw.io
  14. aicore-skillsFour agent skills for SAP AI Core in SAP's AI Skills Library
  15. SAP/automation-pilot-agent-skillsEight skills for writing and operating SAP Automation Pilot content
  16. SAP Developers MCPHosted MCP server of developers.sap.com tutorials and missions
  17. sap-fiori-iosAgent skill mapping Fiori iOS UI Kit nodes in Figma to SwiftUI
  18. SAP/leanix-ai-pluginsClaude Code plugin with two skills for SAP LeanIX scripting
  19. SAP-samples/html5-applications-migration-skills-for-sap-btpClaude Code plugin with skills migrating HTML5 apps to appFront
  20. SAP-samples/joule-a2a-agent-toolkitSkills for building an A2A agent for Joule and deploying it to CF
  21. SAP-samples/sap-devs-cliCLI adding SAP developer knowledge and MCP servers to AI coding tools
  22. sap-tutorials-contentAgent skill mapping the developers.sap.com content API
  23. secondsky/sap-skillsForty SAP development plugins for coding agents

Details

Sources3
Added by handdiscovered herechecked
github.com/etosin/arc-drawtree, pushes, contributors, CIchecked
README.mdquoted, and what the entry declareschecked

Sources are graph entities: the same page may back several entries, and an unreachable source flags every row that rests on it.

Compatibility and provenance
runtimesnode
discovered viaAdded by hand
first seen in the atlas
ecosystem and domainbtp, developer-experience
History in the atlas2
  1. Any run nobody is watching: the drawing tools work only while the draw.io canvas at `http://localhost:3000/` is open and connected, so there is no diagram to produce on a build agent or a server. Nothing checks the result either, because the maintainer keeps a diagram linter on the [roadmap](https://github.com/etosin/arc-draw#-roadmap) rather than in the release. The maintainer marks the status early at v0.x, installs it from source, and records testing with Claude Code alone.
  2. First seen.
For your agent
Ref
artifact:etosin-arc-draw
JSON
/artifacts/etosin-arc-draw.json
MCP
Connecting an agent