{"ref":"artifact:etosin-arc-draw","page":"/artifacts/etosin-arc-draw","json":"/artifacts/etosin-arc-draw.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"etosin-arc-draw","name":"ARC-DRAW","artifact_type":"mcp-server","ecosystem":"btp","domain":"developer-experience","origin_ring":"independent","description":{"one_line":"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.","short":"MCP server drawing BTP solution diagrams on a draw.io canvas","what_it_solves":"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](artifact:sap-btp-solution-diagrams) 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](external:drawio) 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](https://github.com/lgazo/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.","when_not_to_use":"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."},"links":{"repo":"https://github.com/etosin/arc-draw"},"identity":{"author":"Emerson Tosin","license":"MIT"},"source_available":true,"compat":{"runtimes":["node"]},"type_properties":{"runs":{"value":["local-process"],"sources":[{"url":"https://github.com/etosin/arc-draw","title":"ARC-DRAW — README, MCP client configuration","checked":"2026-09-28","quote":"/absolute/path/to/arc-draw/packages/drawio-mcp-server/build/index.js"}]},"transports":{"value":["stdio"],"sources":[{"url":"https://github.com/etosin/arc-draw","title":"ARC-DRAW — README, MCP client configuration","checked":"2026-09-28","quote":"\"type\": \"stdio\""}]}},"provides":[{"capability":"capability:architecture-diagrams","what_it_does":"Draws BTP solution diagrams onto a live draw.io canvas, placing SAP's own icons as native shapes rather than labelled boxes.","facets":[{"key":"diagram_format","value":["drawio"],"source":{"url":"https://raw.githubusercontent.com/etosin/arc-draw/main/README.md","title":"ARC-DRAW — README","checked":"2026-09-28","quote":"**An open-source [MCP](https://modelcontextprotocol.io) server that lets your AI agent draw SAP BTP solution diagrams on a live [draw.io](https://www.drawio.com) canvas, with the official SAP icons and the SAP diagram rules built in.**"}},{"key":"checks_the_file","value":false,"source":{"url":"https://raw.githubusercontent.com/etosin/arc-draw/main/README.md","title":"ARC-DRAW — README, Roadmap","checked":"2026-09-28","quote":"- [ ] Diagram linter: check an existing `.drawio` file against the SAP guideline"}}],"sources":[{"url":"https://github.com/etosin/arc-draw","title":"ARC-DRAW — README","checked":"2026-09-28","quote":"111 SAP BTP icons as native `sap.*` shapes, plus draw.io's own SAP palette (`mxgraph.sap.*`) when your draw.io ships it"},{"url":"https://github.com/etosin/arc-draw","title":"ARC-DRAW — README","checked":"2026-09-28","quote":"It is the live canvas, and drawing tools only work while it is connected."}]},{"capability":"capability:agent-guidance","what_it_does":"Sends SAP's diagram guideline to the MCP client as a drawing constitution when the client connects, and answers the agent's own calls for a canonical pattern or for a rule by topic.","sources":[{"url":"https://github.com/etosin/arc-draw","title":"ARC-DRAW — README","checked":"2026-09-28","quote":"The SAP BTP Solution Diagram guideline distilled into a drawing *constitution*, sent to your MCP client the moment it connects"},{"url":"https://github.com/etosin/arc-draw","title":"ARC-DRAW — README","checked":"2026-09-28","quote":"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…)."}]}],"maintainers":["actor:etosin"],"requires":[{"ref":"external:drawio","for":"The server draws onto a live draw.io canvas, and its drawing tools work only while that canvas is open and connected.","sources":[{"url":"https://github.com/etosin/arc-draw","title":"ARC-DRAW — README","checked":"2026-09-28","quote":"It is the live canvas, and drawing tools only work while it is connected."}]},{"ref":"external:nodejs","for":"The 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.","sources":[{"url":"https://github.com/etosin/arc-draw","title":"ARC-DRAW — README","checked":"2026-09-28","quote":"Node.js 22 LTS, Git, and pnpm"}]}],"provenance":{"discovered_via":[{"source":"source:curator"}],"first_seen":"2026-09-28"},"drafted_with_ai":true,"history":[{"date":"2026-09-28","field":"description.when_not_to_use","from":null,"to":"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.","reason":"The README declares the status early (v0.x), installation from source and testing with Claude Code alone, and the entry carried none of it. The maturity label is the maintainer's own, dated here, and the live-canvas requirement is what separates this option from the ones that write a file."}],"contributors":["actor:etosin"]},"effective_normative_relations":[],"readings":{"liveness":[{"label":"Maintenance","tier":"unknown","evidence":"no release data"},{"label":"Continuity","tier":"fair","evidence":"one contributor, personally owned"},{"label":"Repository","tier":"good","evidence":"pushed 2026-09, not archived"}],"compatibility":[{"label":"Declared for","tier":"unknown","evidence":"no BTP release lines in the atlas"},{"label":"Survived majors","tier":"unknown","evidence":"no BTP release lines in the atlas"},{"label":"Maintainer's CI","tier":"good","evidence":"CI green, 2026-09-30"}],"practice":[{"label":"Tests","tier":"good","evidence":"67 test files"},{"label":"Docs","tier":"good","evidence":"docs/ with 12 pages, README 12 KB"},{"label":"Changelog","tier":"fair","evidence":"none in the repo"}],"reach":[{"value":null,"unit":"installs/week"},{"value":35,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-26","npm":"not published under this name","stars":35,"forks":4,"open_issues":10,"archived":false,"pushed_at":"2026-09-30","license_spdx":"MIT","org_owned":false,"default_branch":"main","contributors":1,"tree_truncated":false,"test_files":67,"workflows":2,"other_ci":false,"readme_bytes":11931,"docs_files":12,"changelog":false,"license_file":true,"dts_files":0,"first_commit":"2026-09-28","last_commit":"2026-09-30","commits":14,"ci_status":"success","ci_run_at":"2026-09-30","ci_workflow":"CI","ci_event":"push","readme_path":"README.md","readme_sha":"6e218d07fa194127a13225349ab2136d6e03624e","created_at":"2026-09-28T10:36:05Z","open_prs":0,"repo_read":"2026-10-26"},"edges":{"maintainers":[{"ref":"actor:etosin","name":"Emerson Tosin","json":"/actors/etosin.json"}],"contributors":[{"ref":"actor:etosin","name":"Emerson Tosin","json":"/actors/etosin.json"}],"explained_by":[],"alternative_to_this":[],"needed_by":[],"available_via":[],"parts":[],"add_ons":[],"answered_through_parts":[]}}