{"_id":"@diagrams-so/mcp","_rev":"8-f17dd84193b3124f66e534b921fb30ab","name":"@diagrams-so/mcp","dist-tags":{"latest":"1.4.6"},"versions":{"1.3.0":{"name":"@diagrams-so/mcp","version":"1.3.0","license":"Apache-2.0","_id":"@diagrams-so/mcp@1.3.0","maintainers":[{"name":"diagrams-so","email":"success@diagrams.so"}],"bin":{"diagrams-so-mcp":"dist/index.js"},"dist":{"shasum":"da93243de4a7d0a74dc81d17eb4fa248040daa2d","tarball":"https://registry.npmjs.org/@diagrams-so/mcp/-/mcp-1.3.0.tgz","fileCount":6,"integrity":"sha512-nPG+4JklRexeOEKQ7QjrPGG3UrMS4LkCa13U8aB305OBhQ6de/wVOE5S3pGo4WZW5p1RWYvBgelX9TinMdFsmQ==","signatures":[{"sig":"MEQCIAXwZCnapDDqmRRwuauOO1TvI+5vgcwunO7cZyKgApG0AiB9CqDCv/PpQ/UQcx2BDK8O1YkK/0eecsPsSCofTKmO1w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":62365},"main":"dist/index.js","type":"module","engines":{"node":">=18"},"gitHead":"ba4d899e5a141f85bad7d0b2d80aceaec17a0ea7","mcpName":"io.github.RedHold/diagrams-so-mcp","scripts":{"dev":"tsc && node dist/index.js","build":"tsc","smoke":"node test-smoke.mjs","start":"node dist/index.js","prepare":"npm run build","test:idempotency":"node scripts/test-idempotency.mjs"},"_npmUser":{"name":"diagrams-so","email":"success@diagrams.so"},"_npmVersion":"10.8.2","description":"MCP server for Diagrams.so — generate, edit, and manage architecture diagrams from any MCP client (Claude, Cursor).","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.3.0_1785738892669_0.6935271870476283","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@diagrams-so/mcp","version":"1.4.0","license":"Apache-2.0","_id":"@diagrams-so/mcp@1.4.0","maintainers":[{"name":"diagrams-so","email":"success@diagrams.so"}],"bin":{"diagrams-so":"dist/index.js","diagrams-so-mcp":"dist/index.js"},"dist":{"shasum":"6623048bd40f148f3626b6f2000ea9ca64865a0f","tarball":"https://registry.npmjs.org/@diagrams-so/mcp/-/mcp-1.4.0.tgz","fileCount":7,"integrity":"sha512-MyaGfABPsInlLbn7z4+2DeNKPpoNaQHqNuAbcJAWkwxkVIB4jZxwVWBAJZcWMCWXOD6AdJsNE0vh21mFfNj0Og==","signatures":[{"sig":"MEUCIDVU5bNtrMijHLb9sdpggiIErxSJdj4jMKQcDNEKw0jZAiEAmj9cjpX53iaDQ0k7yJ8ebMn8Oi1VZfiJMyblYxz51p8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":88663},"main":"dist/index.js","type":"module","engines":{"node":">=18"},"gitHead":"40cd451028e95b37eb74399b7e70a1690b3781bd","mcpName":"io.github.RedHold/diagrams-so-mcp","scripts":{"dev":"tsc && node dist/index.js","build":"tsc","smoke":"node test-smoke.mjs","start":"node dist/index.js","prepare":"npm run build","test:idempotency":"node scripts/test-idempotency.mjs","test:device-login":"node scripts/test-device-login.mjs","test:intool-connect":"node scripts/test-intool-connect.mjs"},"_npmUser":{"name":"diagrams-so","email":"success@diagrams.so"},"_npmVersion":"10.8.2","description":"MCP server for Diagrams.so — generate, edit, and manage architecture diagrams from any MCP client (Claude, Cursor).","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.4.0_1785842956292_0.45202974929561823","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"@diagrams-so/mcp","version":"1.4.1","keywords":["mcp","model-context-protocol","mcp-server","diagram","diagrams","architecture","drawio","draw.io","aws","azure","gcp","kubernetes","terraform","ai","claude","cursor"],"license":"Apache-2.0","_id":"@diagrams-so/mcp@1.4.1","maintainers":[{"name":"diagrams-so","email":"success@diagrams.so"}],"homepage":"https://diagrams.so/developers","bugs":{"url":"https://github.com/RedHold/diagrams-mcp-app-core/issues"},"bin":{"diagrams-so":"dist/index.js","diagrams-so-mcp":"dist/index.js"},"dist":{"shasum":"3e8399f44595d731f5364475c7b573df467d017b","tarball":"https://registry.npmjs.org/@diagrams-so/mcp/-/mcp-1.4.1.tgz","fileCount":7,"integrity":"sha512-rLZafTOzEgUiwjS//NaLs6UneQbbvXOtn8fivlcRcTltNgpvRBQ8ADOAFbarePFX9YewYzV6p6CYSqKww4cu8A==","signatures":[{"sig":"MEUCIBk9C1rbxkqQmgsIEMZdIdo+enMROaH0eGDUz5xH7dE1AiEA4CaY7pspbF0AOmAsqeuixdd70L6g7TXDub+gxichSzU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":91800},"main":"dist/index.js","type":"module","engines":{"node":">=18"},"gitHead":"b92247b8032d51ab682b70920fdc30d48a2ef523","mcpName":"io.github.RedHold/diagrams-so-mcp","scripts":{"dev":"tsc && node dist/index.js","build":"tsc","smoke":"node test-smoke.mjs","start":"node dist/index.js","prepare":"npm run build","test:idempotency":"node scripts/test-idempotency.mjs","test:device-login":"node scripts/test-device-login.mjs","test:intool-connect":"node scripts/test-intool-connect.mjs"},"_npmUser":{"name":"diagrams-so","email":"success@diagrams.so"},"repository":{"url":"git+https://github.com/RedHold/diagrams-mcp-app-core.git","type":"git"},"_npmVersion":"10.8.2","description":"MCP server for Diagrams.so — generate, edit, and manage architecture diagrams from any MCP client (Claude, Cursor).","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.4.1_1785850276312_0.903634340663777","host":"s3://npm-registry-packages-npm-production"}},"1.4.2":{"name":"@diagrams-so/mcp","version":"1.4.2","keywords":["mcp","model-context-protocol","mcp-server","diagram","diagrams","architecture","drawio","draw.io","aws","azure","gcp","kubernetes","terraform","ai","claude","cursor"],"license":"Apache-2.0","_id":"@diagrams-so/mcp@1.4.2","maintainers":[{"name":"diagrams-so","email":"success@diagrams.so"}],"homepage":"https://diagrams.so/developers","bugs":{"url":"https://github.com/RedHold/diagrams-mcp-app-core/issues"},"bin":{"diagrams-so":"dist/index.js","diagrams-so-mcp":"dist/index.js"},"dist":{"shasum":"dfbdfce0dd29e1889e26de6e1992d923721981fc","tarball":"https://registry.npmjs.org/@diagrams-so/mcp/-/mcp-1.4.2.tgz","fileCount":7,"integrity":"sha512-w5+fOGiOzNsBo/8keDMM7ZHSReuHwVYsQWfpwcIbzzH3H+fHVqhMk/Axb8TTZ/uGhUWYCKSbhP4UN4Y9ukXSkg==","signatures":[{"sig":"MEUCIC+ceDjww3Y3lC7tKaGPJZTN2b9Og53jX6+jwwuVN1IxAiEAioWcL2qOqpUdV1gkPpOaKd+IK8bzQn/7THnWspJO6VU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":93587},"main":"dist/index.js","type":"module","engines":{"node":">=18"},"gitHead":"26c7c6f561c6bf2e51dc1c684d96a0765934ecf9","mcpName":"io.github.RedHold/diagrams-so-mcp","scripts":{"dev":"tsc && node dist/index.js","build":"tsc","smoke":"node test-smoke.mjs","start":"node dist/index.js","prepare":"npm run build","test:idempotency":"node scripts/test-idempotency.mjs","test:device-login":"node scripts/test-device-login.mjs","test:intool-connect":"node scripts/test-intool-connect.mjs"},"_npmUser":{"name":"diagrams-so","email":"success@diagrams.so"},"repository":{"url":"git+https://github.com/RedHold/diagrams-mcp-app-core.git","type":"git"},"_npmVersion":"10.8.2","description":"MCP server for Diagrams.so — generate, edit, and manage architecture diagrams from any MCP client (Claude, Cursor).","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.4.2_1785930148412_0.6865541178299224","host":"s3://npm-registry-packages-npm-production"}},"1.4.3":{"name":"@diagrams-so/mcp","version":"1.4.3","keywords":["mcp","model-context-protocol","mcp-server","diagram","diagrams","architecture","drawio","draw.io","aws","azure","gcp","kubernetes","terraform","ai","claude","cursor"],"license":"Apache-2.0","_id":"@diagrams-so/mcp@1.4.3","maintainers":[{"name":"diagrams-so","email":"success@diagrams.so"}],"homepage":"https://diagrams.so/developers","bugs":{"url":"https://github.com/RedHold/diagrams-mcp-app-core/issues"},"bin":{"diagrams-so":"dist/index.js","diagrams-so-mcp":"dist/index.js"},"dist":{"shasum":"30a418d6c65d35487725706fd2749567f9b61547","tarball":"https://registry.npmjs.org/@diagrams-so/mcp/-/mcp-1.4.3.tgz","fileCount":7,"integrity":"sha512-rSq+y5yeL8SB4kabaUH4ML7T6Ys+scMCJb3rlthsIszvCz00lX4nwchjHJ1GdRrh368pOtRep5q5HY/xHZX0IA==","signatures":[{"sig":"MEUCIQDGd1N9Vq+tiJ/wEjCP2fMEEJL6IebnLwy2QKvIHA7mHQIgcr6Ht79aJOnnS0pp+6nBJmN8EPCrk7yGO8/0MSIA18c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":95528},"main":"dist/index.js","type":"module","engines":{"node":">=18"},"gitHead":"1e2446eb9ee50a7e7d3e7ee7f85a5df57f987faf","mcpName":"io.github.RedHold/diagrams-so-mcp","scripts":{"dev":"tsc && node dist/index.js","build":"tsc","smoke":"node test-smoke.mjs","start":"node dist/index.js","prepare":"npm run build","test:idempotency":"node scripts/test-idempotency.mjs","test:device-login":"node scripts/test-device-login.mjs","test:intool-connect":"node scripts/test-intool-connect.mjs"},"_npmUser":{"name":"diagrams-so","email":"success@diagrams.so"},"repository":{"url":"git+https://github.com/RedHold/diagrams-mcp-app-core.git","type":"git"},"_npmVersion":"10.8.2","description":"MCP server for Diagrams.so — generate, edit, and manage architecture diagrams from any MCP client (Claude, Cursor).","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.4.3_1785999625322_0.4718162916784241","host":"s3://npm-registry-packages-npm-production"}},"1.4.4":{"name":"@diagrams-so/mcp","version":"1.4.4","keywords":["mcp","model-context-protocol","mcp-server","diagram","diagrams","architecture","drawio","draw.io","aws","azure","gcp","kubernetes","terraform","ai","claude","cursor"],"license":"Apache-2.0","_id":"@diagrams-so/mcp@1.4.4","maintainers":[{"name":"diagrams-so","email":"success@diagrams.so"}],"homepage":"https://diagrams.so/developers","bugs":{"url":"https://github.com/RedHold/diagrams-mcp-app-core/issues"},"bin":{"diagrams-so":"dist/index.js","diagrams-so-mcp":"dist/index.js"},"dist":{"shasum":"230484119a1787b56832a3919643523087784657","tarball":"https://registry.npmjs.org/@diagrams-so/mcp/-/mcp-1.4.4.tgz","fileCount":7,"integrity":"sha512-aftMd8nGJOvDi6ttPvEy49nOBA0mkuG15J2IfM3nbnyUQO528DpWFwUNcIlkAZKpH3+vPkI4YHmiRAKS3olNrw==","signatures":[{"sig":"MEUCIQCR/YCq5dBxm+d2MPtvupjBb53x5SrY/of5r4CSrdZf2QIgRjwkbcZndGUf7fwmTVnD+mGv8bBaGEmTKbgfmwTWPnk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":95598},"main":"dist/index.js","type":"module","engines":{"node":">=18"},"gitHead":"3a6761f6f4f44e1b6a9742f16debed60de04331c","mcpName":"io.github.RedHold/diagrams-so-mcp","scripts":{"dev":"tsc && node dist/index.js","build":"tsc","smoke":"node test-smoke.mjs","start":"node dist/index.js","prepare":"npm run build","test:idempotency":"node scripts/test-idempotency.mjs","test:device-login":"node scripts/test-device-login.mjs","test:intool-connect":"node scripts/test-intool-connect.mjs"},"_npmUser":{"name":"diagrams-so","email":"success@diagrams.so"},"repository":{"url":"git+https://github.com/RedHold/diagrams-mcp-app-core.git","type":"git"},"_npmVersion":"10.8.2","description":"MCP server for Diagrams.so — generate, edit, and manage architecture diagrams from any MCP client (Claude, Cursor).","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.4.4_1786020026230_0.7376372055700016","host":"s3://npm-registry-packages-npm-production"}},"1.4.5":{"name":"@diagrams-so/mcp","version":"1.4.5","keywords":["mcp","model-context-protocol","mcp-server","diagram","diagrams","architecture","drawio","draw.io","aws","azure","gcp","kubernetes","terraform","ai","claude","cursor"],"license":"Apache-2.0","_id":"@diagrams-so/mcp@1.4.5","maintainers":[{"name":"diagrams-so","email":"success@diagrams.so"}],"homepage":"https://diagrams.so/developers","bugs":{"url":"https://github.com/RedHold/diagrams-mcp-app-core/issues"},"bin":{"diagrams-so":"dist/index.js","diagrams-so-mcp":"dist/index.js"},"dist":{"shasum":"989dff9346e33af78c1993f009849b68b8f10d93","tarball":"https://registry.npmjs.org/@diagrams-so/mcp/-/mcp-1.4.5.tgz","fileCount":7,"integrity":"sha512-HdkB+UUmmoxn1ExpqyAhQy+6yCDQyRLs22W9oKNI/RQKAyd5kCmRtHVBI+WwDDwfFEgUNwHFkLBfFMSnUYbZyA==","signatures":[{"sig":"MEQCIBBpIm8GSRrmSZK5YQLFgd9cwQ/CWL7MAIVzTdGjVQcZAiBpjIBYv+xuhOxc1T6s6aZPPARSza4X0QDsuE+qzqHOIg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":96256},"main":"dist/index.js","type":"module","engines":{"node":">=18"},"gitHead":"2efe7ebc4c9c107335eb9c0016dc83b87b852638","mcpName":"io.github.RedHold/diagrams-so-mcp","scripts":{"dev":"tsc && node dist/index.js","build":"tsc","smoke":"node test-smoke.mjs","start":"node dist/index.js","prepare":"npm run build","test:idempotency":"node scripts/test-idempotency.mjs","test:device-login":"node scripts/test-device-login.mjs","test:intool-connect":"node scripts/test-intool-connect.mjs"},"_npmUser":{"name":"diagrams-so","email":"success@diagrams.so"},"repository":{"url":"git+https://github.com/RedHold/diagrams-mcp-app-core.git","type":"git"},"_npmVersion":"10.8.2","description":"MCP server for Diagrams.so — generate, edit, and manage architecture diagrams from any MCP client (Claude, Cursor).","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.4.5_1786083798371_0.23509023738614832","host":"s3://npm-registry-packages-npm-production"}},"1.4.6":{"name":"@diagrams-so/mcp","version":"1.4.6","mcpName":"io.github.RedHold/diagrams-so-mcp","description":"MCP server for Diagrams.so — generate, edit, and manage architecture diagrams from any MCP client (Claude, Cursor).","keywords":["mcp","model-context-protocol","mcp-server","diagram","diagrams","architecture","drawio","draw.io","aws","azure","gcp","kubernetes","terraform","ai","claude","cursor"],"homepage":"https://diagrams.so/developers","repository":{"type":"git","url":"git+https://github.com/RedHold/diagrams-mcp-app-core.git"},"bugs":{"url":"https://github.com/RedHold/diagrams-mcp-app-core/issues"},"type":"module","license":"Apache-2.0","bin":{"diagrams-so":"dist/index.js","diagrams-so-mcp":"dist/index.js"},"main":"dist/index.js","scripts":{"build":"tsc","start":"node dist/index.js","dev":"tsc && node dist/index.js","prepare":"npm run build","smoke":"node test-smoke.mjs","test:idempotency":"node scripts/test-idempotency.mjs","test:device-login":"node scripts/test-device-login.mjs","test:intool-connect":"node scripts/test-intool-connect.mjs"},"engines":{"node":">=18"},"dependencies":{"@modelcontextprotocol/sdk":"^1.0.0","zod":"^3.23.0"},"devDependencies":{"typescript":"^5.5.0","@types/node":"^20.0.0"},"_id":"@diagrams-so/mcp@1.4.6","gitHead":"b67e123b6d557f0dcf02e473aa10cf37bd145580","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-E2SC+HZXDQoqtx3o3fBJYVoSapeutYmJjmEsV7FevZMLj/i7bHwpJv4Ia5tvAFVl8C8iGlomS0yvucnu4Kcg7w==","shasum":"f18fe6c0e12eb218b9519fea3b032d006a0c4172","tarball":"https://registry.npmjs.org/@diagrams-so/mcp/-/mcp-1.4.6.tgz","fileCount":7,"unpackedSize":98146,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIF6/jH6rtbCXJd0foqiKh/mUPdqxLjHfbsmR24AkRxTtAiBNIwAhD0uPL6gHa4P2hDusVQq9vQkqHsDgIfJUP5pWzA=="}]},"_npmUser":{"name":"diagrams-so","email":"success@diagrams.so"},"directories":{},"maintainers":[{"name":"diagrams-so","email":"success@diagrams.so"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp_1.4.6_1787139659025_0.7438074853850682"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-03T06:34:52.471Z","modified":"2026-08-19T11:40:59.312Z","1.3.0":"2026-08-03T06:34:52.849Z","1.4.0":"2026-08-04T11:29:16.437Z","1.4.1":"2026-08-04T13:31:16.463Z","1.4.2":"2026-08-05T11:42:28.564Z","1.4.3":"2026-08-06T07:00:25.471Z","1.4.4":"2026-08-06T12:40:26.385Z","1.4.5":"2026-08-07T06:23:18.501Z","1.4.6":"2026-08-19T11:40:59.182Z"},"bugs":{"url":"https://github.com/RedHold/diagrams-mcp-app-core/issues"},"license":"Apache-2.0","homepage":"https://diagrams.so/developers","keywords":["mcp","model-context-protocol","mcp-server","diagram","diagrams","architecture","drawio","draw.io","aws","azure","gcp","kubernetes","terraform","ai","claude","cursor"],"repository":{"type":"git","url":"git+https://github.com/RedHold/diagrams-mcp-app-core.git"},"description":"MCP server for Diagrams.so — generate, edit, and manage architecture diagrams from any MCP client (Claude, Cursor).","maintainers":[{"name":"diagrams-so","email":"success@diagrams.so"}],"readme":"# @diagrams-so/mcp\n\n[![CI](https://github.com/RedHold/diagrams-mcp-app-core/actions/workflows/ci.yml/badge.svg)](https://github.com/RedHold/diagrams-mcp-app-core/actions/workflows/ci.yml)\n[![Smithery](https://img.shields.io/badge/Smithery-diagrams--so%2Fmcp-orange)](https://smithery.ai/servers/diagrams-so/mcp)\n\nThe **Diagrams.so MCP server** — generate, edit, and manage cloud architecture diagrams from any MCP client (Claude Desktop, Claude Code, Cursor). It's a thin stdio client over the public Diagrams.so API (`/api/v2`); every tool is one REST call.\n\n## Quick start\n\nNeeds **Node ≥ 18**. No API key to copy: you connect by approving in a browser.\n\n```bash\n# 1. add the server to Claude Code\nclaude mcp add diagrams-so -- npx -y @diagrams-so/mcp\n\n# 2. connect this machine (a browser opens, press Approve)\nnpx @diagrams-so/mcp login\n```\n\nRestart your client, then ask: *\"Generate an AWS 3-tier web app diagram and show me the warnings.\"*\nRun `/mcp` if you want to confirm all 23 tools registered first.\n\nUsing it a lot? Install once and the command gets shorter:\n\n```bash\nnpm i -g @diagrams-so/mcp\ndiagrams-so login\n```\n\n> The server talks to production (`https://api.diagrams.so/api/v2`) by default. Point it at a\n> local or self-hosted API with `DIAGRAMS_API_BASE`.\n\nUsing Claude Desktop or Cursor instead of the CLI? See [Add it to your MCP client](#add-it-to-your-mcp-client). Prefer a one-click, no-terminal install? See [One-click install (MCPB)](#one-click-install-mcpb).\n\n<details>\n<summary>No terminal at all (Claude Desktop)</summary>\n\nAdd the server to your client config (below) with `DIAGRAMS_LOGIN_EMAIL` set to your email,\nthen just ask for a diagram. Because the machine isn't connected yet, the first tool call\nemails you a one-time sign-in code and replies with a link. Open it, enter the code, press\n**Approve**, and ask again. Nothing to install or type.\n</details>\n\n## Generating a diagram from Claude\n\n`login` only connects the machine. It never generates anything itself, so there is no\n`generate` command to type in a terminal. You write the prompt **in your assistant's normal\nchat box** and it calls the tools for you.\n\n| Client | Where you type the prompt |\n|---|---|\n| Claude Code | the terminal chat, same place you ask anything else |\n| Claude Desktop | the normal message box |\n| Cursor | the chat or composer panel |\n\n**MCP servers load at startup, so restart your client after adding it.** Then run `/mcp` and\nconfirm `diagrams-so` shows 23 tools.\n\nNow just ask, in plain English:\n\n> Generate an AWS three-tier web app with an ALB, EC2 Auto Scaling and RDS Multi-AZ.\n> Show me the design warnings, then export it as draw.io.\n\nBehind that one sentence the assistant calls `generate_diagram`, then `get_warnings`, then\n`export_diagram`. You never name a tool or write JSON.\n\nMore things worth asking, once you have a diagram:\n\n> The warnings mention no encryption in transit. Fix that one and show me the new score.\n\n> Add a CloudFront distribution in front of the ALB.\n\n> Re-export it as SVG so I can drop it in the README.\n\nEach reply carries the credit cost and your remaining balance. Generating, editing, fixing and\nre-laying-out spend credits; reading, warnings and **every export** are free.\n\nThe `.drawio` file the assistant saves opens at [app.diagrams.net](https://app.diagrams.net) or\nin the desktop app, fully editable — it is real draw.io XML, not a picture.\n\n**Prefer not to use an assistant at all?** [diagrams.so/create](https://diagrams.so/create) has\nthe same thing as a web page: type the prompt in the box. No install, no `login`, no MCP.\n\n## Tools (23)\n\n**Create & change (mutating)**\n\n| Tool | What it does | Cost |\n|---|---|---|\n| `generate_diagram` | Create a diagram from a prompt → id + draw.io XML + warnings + score | credits |\n| `edit_diagram` | Apply a natural-language change (new version) | credits |\n| `fix_warning` | Resolve one Well-Architected warning | credits |\n| `relayout_diagram` | AI re-arrange the layout (async; first 2/diagram free, then confirm) | credits* |\n| `import_diagram` | Import existing draw.io XML as a new diagram | free |\n| `update_diagram` | Rename / change visibility / replace XML | free |\n| `revert_diagram` | Revert to an earlier version | free |\n| `delete_diagram` | Soft-delete a diagram (destructive) | free |\n| `fork_template` | Copy a public/library diagram into your account (private) | free |\n\n**Read (free)**\n\n| Tool | What it does |\n|---|---|\n| `get_diagram` | Fetch a diagram's XML + score |\n| `list_diagrams` | List your diagrams (cursor-paginated) |\n| `get_warnings` | Well-Architected findings for a diagram |\n| `export_diagram` | Raw `drawio` or `svg` file (free on every plan; free-plan SVG is watermarked) |\n| `list_versions` | Version history (with `is_current`) |\n| `get_version` | A specific version's XML + score |\n| `get_relayout_status` | Poll an async re-layout job |\n| `search_gallery` | Search public community + curated library diagrams |\n| `enhance_prompt` | Turn a rough idea into a detailed prompt |\n| `clarify_prompt` | Get clarifying questions for a vague prompt |\n| `get_usage` | Plan + credits + cost estimates |\n| `get_usage_history` | Itemized credit ledger per task (action, credits, diagram, surface) with filters + a live session tally |\n| `whoami` | Account, plan, scopes, live/test mode |\n| `list_capabilities` | Valid diagram types / providers / export formats |\n\nReads and exports are free; `generate` / `edit` / `fix` / `relayout` cost credits, and `delete` is destructive. `relayout` asks for `confirm=true` before it charges.\n\n## CLI\n\n### Commands\n\nInstalling the package puts `diagrams-so` on your PATH. The longer\n`diagrams-so-mcp` name still works, and `npx @diagrams-so/mcp <command>` works\nwithout installing anything.\n\n```bash\nnpm i -g @diagrams-so/mcp\n\ndiagrams-so login          # connect this machine (a browser opens, press Approve)\ndiagrams-so whoami         # which account is this machine connected as\ndiagrams-so logout         # remove the local credential\ndiagrams-so install        # print client config to paste\n```\n\n### Environment\n| Var | Required | Default |\n|---|---|---|\n| `DIAGRAMS_API_KEY` | ❌ | — (CI and headless only; `login` is the normal path) |\n| `DIAGRAMS_API_BASE` | ❌ | `https://api.diagrams.so/api/v2` (production; override for local/self-hosted) |\n| `DIAGRAMS_API_TIMEOUT_MS` | ❌ | `450000` (per-request safety-net; sits above the API's full server-side timeout ladder) |\n| `DIAGRAMS_BROWSER` | ❌ | — (`login` opens your default browser; set e.g. `Google Chrome` when your Diagrams.so session lives in a non-default browser) |\n| `DIAGRAMS_NO_BROWSER` | ❌ | — (set to any value to stop `login` opening a browser; the URL is always printed) |\n| `DIAGRAMS_NO_AUTO_LOGIN` | ❌ | — (set to any value to disable in-tool connect; unauthenticated tools then just say to run `login`) |\n| `DIAGRAMS_LOGIN_EMAIL` | ❌ | — (address for in-tool connect: the one-time sign-in code is emailed there; without it, unauthenticated tools say to run `login` instead of starting a connect) |\n\n## Add it to your MCP client\n\nThe published package runs straight from npm, so there is no path to fill in and no key in the\nconfig. Run `npx @diagrams-so/mcp install` to print these blocks for your client.\n\n### Claude Code (CLI)\n```bash\nclaude mcp add diagrams-so -- npx -y @diagrams-so/mcp\nnpx @diagrams-so/mcp login\n```\n\n### Claude Desktop / Cursor (`claude_desktop_config.json` / `mcp.json`)\n```jsonc\n{\n  \"mcpServers\": {\n    \"diagrams-so\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@diagrams-so/mcp\"]\n      // optional: \"env\": { \"DIAGRAMS_API_BASE\": \"http://localhost:8000/api/v2\" } for a local API\n    }\n  }\n}\n```\n\nConnect either by running `npx @diagrams-so/mcp login` once, or, with `DIAGRAMS_LOGIN_EMAIL`\nset, by asking for a diagram and following the link the first tool call gives you (the sign-in\ncode arrives by email). Set `DIAGRAMS_API_KEY` instead only for CI and headless machines,\nwhere no browser can open.\n\nRestart the client, then ask: *\"Generate an AWS 3-tier web app diagram and show me the warnings.\"*\n\n### One-click install (MCPB)\nDownload `diagrams-so.mcpb` from the\n[latest release](https://github.com/RedHold/diagrams-mcp-app-core/releases/latest) and drag it into\nClaude Desktop. No terminal, and it no longer asks for an API key: install it, then connect on first\nuse by clicking the link the first tool call gives you.\n\nBuilding the bundle yourself is a contributor step, see [Developing locally](#developing-locally).\n\n### Smithery\nThe server is listed at [smithery.ai/servers/diagrams-so/mcp](https://smithery.ai/servers/diagrams-so/mcp),\nwhich installs it for you and lists all 23 tools with their parameters:\n\n```bash\nnpx -y smithery mcp add diagrams-so/mcp\n```\n\nSame package, same `login` step. It's the MCPB bundle Smithery installs, not the npm package, so the\nversion shown there follows releases rather than `npm dist-tags`.\n\n## Verify it works\n```bash\nDIAGRAMS_API_KEY=dgz_live_your_key node test-smoke.mjs\n```\nRuns the full flow (connect → list tools → whoami → generate → warnings → fix → export → error handling).\n\n## Continuous integration & releases\n\n| Workflow | Trigger | What it does |\n|---|---|---|\n| **CI** (`ci.yml`) | every push / PR | `npm ci` + `npm run build` on Node 18/20/22, then a **free** smoke (`scripts/ci-smoke.mjs`) that launches the built server and asserts all 23 tools register. **No API calls, no credits.** |\n| **Live smoke** (`live-smoke.yml`) | nightly + manual | the full end-to-end flow (`test-smoke.mjs`) against the real API. **Spends credits** — runs only when the `DIAGRAMS_API_KEY` secret is set. |\n| **Release** (`release.yml`) | tag `vX.Y.Z` | build → `npm prune --omit=dev` → pack `diagrams-so.mcpb` → attach to a GitHub Release. Publishes to npm too if an `NPM_TOKEN` secret is set. |\n\n**Cut a release:**\n```bash\n# bump \"version\" in package.json + manifest.json to match, commit, then:\ngit tag v1.2.0 && git push origin v1.2.0\n```\nThe tag must match `package.json`'s `version` (the workflow enforces this). The\n`.mcpb` bundle appears on the GitHub Release; manual `workflow_dispatch` produces\nit as a downloadable artifact without publishing (handy for testing a bundle).\n\n**Repo secrets/variables (optional):** `DIAGRAMS_API_KEY` (live smoke),\n`NPM_TOKEN` (npm publish), `DIAGRAMS_API_BASE` variable (non-prod live-smoke target).\n\n## Notes\n- **stdout is the MCP channel** — the server logs only to stderr.\n- Errors come back as clean MCP tool errors carrying the API's `code`, HTTP status, and `request_id`.\n- The server never talks to internal services or the database — only the public `/api/v2`.\n- **Long-running tools stay alive past client timeouts.** `generate` / `edit` / `fix` / `relayout` / `enhance_prompt` / `clarify_prompt` emit a `notifications/progress` every 10s while running, so MCP clients that reset their request timeout on progress (`resetTimeoutOnProgress`) won't abort a slow generation at the SDK's 60s default. If your client doesn't reset on progress, raise its per-call timeout for these tools.\n\n## Developing locally\n\nOnly needed if you are changing the server itself. Users should install from npm, see\n[Quick start](#quick-start).\n\n```bash\ngit clone https://github.com/RedHold/diagrams-mcp-app-core.git\ncd diagrams-mcp-app-core\nnpm install                  # installs deps and builds dist/ via the prepare hook\nnode scripts/ci-smoke.mjs    # all 23 tools register; no API calls, no credits\n\n# point a client at your working copy\nclaude mcp add diagrams-so-dev -- node \"$(pwd)/dist/index.js\"\n\n# build the MCPB bundle\nnpm run build && npx @anthropic-ai/mcpb pack\n```\n\n## License and legal\n\n- **Code:** [Apache-2.0](./LICENSE). See [NOTICE](./NOTICE).\n- **Service:** this server is a client for the Diagrams.so API. Use of the API is governed by the [Terms of Service](https://diagrams.so/policy/terms) and [Acceptable Use Policy](https://diagrams.so/policy/acceptable-use); the code license grants no rights to the API itself.\n- **Privacy:** the server runs locally, connects only to `api.diagrams.so`, and contains no telemetry. Credentials from `login` are stored at `~/.diagrams-so/credentials.json` with owner-only permissions. See the [Privacy Policy](https://diagrams.so/policy/privacy).\n- **Billing:** generate, edit, fix, re-layout, and fork operations cost credits; reads and exports are free. Test-mode keys bill your real credit balance.\n- **Trademarks:** Diagrams.so and the Diagrams.so logo are trademarks of RedHold LLC. This license does not grant permission to use them, except to accurately describe the package's origin. See the [Trademark Policy](https://diagrams.so/policy/trademark).\n- **Security:** report vulnerabilities to security@diagrams.so per [SECURITY.md](./SECURITY.md).\n","readmeFilename":"README.md"}