{"_id":"@aigentive/wire-mcp","_rev":"8-20433e490d1b96f7ed627ca291052c43","name":"@aigentive/wire-mcp","dist-tags":{"latest":"1.0.7"},"versions":{"1.0.0":{"name":"@aigentive/wire-mcp","version":"1.0.0","license":"MIT","_id":"@aigentive/wire-mcp@1.0.0","maintainers":[{"name":"lazabogdan","email":"laza.bogdan@macro-net.ro"},{"name":"themefy","email":"adrian@themefy.io"}],"bin":{"wire-mcp":"dist/server.js"},"dist":{"shasum":"eea04dc95c37a079536f339fd985d621f348d19b","tarball":"https://registry.npmjs.org/@aigentive/wire-mcp/-/wire-mcp-1.0.0.tgz","fileCount":34,"integrity":"sha512-0aFgSdHW+IavO6jQlm2E6ccghrEL2VUBkyUUEDk3+IIDNVO0GnWd4NGhWerMY56IO2zVzh1iCQ26IMDhZwTKNA==","signatures":[{"sig":"MEUCIQDh+S7AODOuqUInMBXEOu2A46uB7haJ1t22PgWjAcsaOgIgAcMIJNbm6qpxamOmtVtpRofOkT7rlEGwUx99QYuj+As=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":169940},"main":"dist/server.js","type":"module","types":"dist/server.d.ts","gitHead":"774d334c3f30944b061c06285b6e911fa046cc20","scripts":{"dev":"tsx src/server.ts","build":"tsc -p tsconfig.json && chmod +x dist/server.js || true","start":"node dist/server.js","dev:http":"tsx src/server.ts --http","typecheck":"tsc --noEmit -p tsconfig.json","start:http":"node dist/server.js --http"},"_npmUser":{"name":"themefy","email":"adrian@themefy.io"},"_npmVersion":"11.11.1","description":"Wire MCP server — agent-driven diagram editing over stdio + streamable-HTTP.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^3.24.2","@resvg/resvg-js":"^2.6.2","@aigentive/wire-core":"^1.0.0","@modelcontextprotocol/sdk":"^1.25.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2"},"_npmOperationalInternal":{"tmp":"tmp/wire-mcp_1.0.0_1777486068121_0.05485121998380382","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@aigentive/wire-mcp","version":"1.0.1","license":"MIT","_id":"@aigentive/wire-mcp@1.0.1","maintainers":[{"name":"lazabogdan","email":"laza.bogdan@macro-net.ro"},{"name":"themefy","email":"adrian@themefy.io"}],"bin":{"wire-mcp":"dist/server.js"},"dist":{"shasum":"942676e0c5a984f846426ad6dd9aeda3bb58a688","tarball":"https://registry.npmjs.org/@aigentive/wire-mcp/-/wire-mcp-1.0.1.tgz","fileCount":34,"integrity":"sha512-F7DwfxxknK1Yla+vHQXwZ0pWrJmX6WqpKk8PU+x2MnQGHlIetQdas/Qcgmhk64P+MH6MqerbM4D5eJVUmVZbKg==","signatures":[{"sig":"MEQCIEHtEDy6CWdgfuD5IB12zH9PECmGOkk4mirjCaYnFOBnAiA1L2jowhgSwQJ+NgpXL8pDoI20/RKfquw+h0N0X+TSVA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":170102},"main":"dist/server.js","type":"module","types":"dist/server.d.ts","gitHead":"774d334c3f30944b061c06285b6e911fa046cc20","scripts":{"dev":"tsx src/server.ts","build":"tsc -p tsconfig.json && chmod +x dist/server.js || true","start":"node dist/server.js","dev:http":"tsx src/server.ts --http","typecheck":"tsc --noEmit -p tsconfig.json","start:http":"node dist/server.js --http"},"_npmUser":{"name":"themefy","email":"adrian@themefy.io"},"_npmVersion":"11.11.1","description":"Wire MCP server — agent-driven diagram editing over stdio + streamable-HTTP.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^3.24.2","@resvg/resvg-js":"^2.6.2","@aigentive/wire-core":"^1.0.0","@modelcontextprotocol/sdk":"^1.25.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2"},"_npmOperationalInternal":{"tmp":"tmp/wire-mcp_1.0.1_1777486657929_0.9340351873382962","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@aigentive/wire-mcp","version":"1.0.2","license":"MIT","_id":"@aigentive/wire-mcp@1.0.2","maintainers":[{"name":"lazabogdan","email":"laza.bogdan@macro-net.ro"},{"name":"themefy","email":"adrian@themefy.io"}],"bin":{"wire-mcp":"dist/server.js"},"dist":{"shasum":"222f06902ce4c7f8f985bc9314939d88e383d2b2","tarball":"https://registry.npmjs.org/@aigentive/wire-mcp/-/wire-mcp-1.0.2.tgz","fileCount":34,"integrity":"sha512-qN0dtP5u1X5xVWeoooWu1NYAd7G/QgbIPllXXUuX/psTlZ56cq/O4AFbDE1J7USNZgAdtusRVhplnXMUHFmhaw==","signatures":[{"sig":"MEQCIBipjNgon/0YhLx9lTyvrhBqKVpG3/+TAwvKdbuizW3nAiBFMkW0X46G5sxS1Dl1CkwY2/XRPTV6pxP9ZnWTKjUp7Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":174763},"main":"dist/server.js","type":"module","types":"dist/server.d.ts","gitHead":"774d334c3f30944b061c06285b6e911fa046cc20","scripts":{"dev":"tsx src/server.ts","build":"tsc -p tsconfig.json && chmod +x dist/server.js || true","start":"node dist/server.js","dev:http":"tsx src/server.ts --http","typecheck":"tsc --noEmit -p tsconfig.json","start:http":"node dist/server.js --http"},"_npmUser":{"name":"themefy","email":"adrian@themefy.io"},"_npmVersion":"11.11.1","description":"Wire MCP server — agent-driven diagram editing over stdio + streamable-HTTP.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^3.24.2","@resvg/resvg-js":"^2.6.2","@aigentive/wire-core":"^1.0.0","@modelcontextprotocol/sdk":"^1.25.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2"},"_npmOperationalInternal":{"tmp":"tmp/wire-mcp_1.0.2_1777488635891_0.2783334884697004","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@aigentive/wire-mcp","version":"1.0.3","license":"MIT","_id":"@aigentive/wire-mcp@1.0.3","maintainers":[{"name":"lazabogdan","email":"laza.bogdan@macro-net.ro"},{"name":"themefy","email":"adrian@themefy.io"}],"bin":{"wire-mcp":"dist/server.js"},"dist":{"shasum":"534ff614bfeade267242b6f65d401c95519636b3","tarball":"https://registry.npmjs.org/@aigentive/wire-mcp/-/wire-mcp-1.0.3.tgz","fileCount":34,"integrity":"sha512-jltDzGg9+x00wA8dtLjdYFTnTlgNR9irIzTuPgd6dvukZaiTpeNlkqMYoNQnF9x5QqfRtduGfeJdyzNa+nKG0g==","signatures":[{"sig":"MEYCIQDNO3N7Typ8q+/uj2/cHFmJYIwx/1ml5JoVZHxqz5BEegIhAKNa1vm9/M4PVU8VH9ojdE82mDly3GusYCmyn2gihFHj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":178776},"main":"dist/server.js","type":"module","types":"dist/server.d.ts","gitHead":"774d334c3f30944b061c06285b6e911fa046cc20","scripts":{"dev":"tsx src/server.ts","build":"tsc -p tsconfig.json && chmod +x dist/server.js || true","start":"node dist/server.js","dev:http":"tsx src/server.ts --http","typecheck":"tsc --noEmit -p tsconfig.json","start:http":"node dist/server.js --http"},"_npmUser":{"name":"themefy","email":"adrian@themefy.io"},"_npmVersion":"11.11.1","description":"Wire MCP server — agent-driven diagram editing over stdio + streamable-HTTP.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^3.24.2","@resvg/resvg-js":"^2.6.2","@aigentive/wire-core":"^1.0.0","@modelcontextprotocol/sdk":"^1.25.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2"},"_npmOperationalInternal":{"tmp":"tmp/wire-mcp_1.0.3_1777491599884_0.7322602182325144","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@aigentive/wire-mcp","version":"1.0.4","license":"MIT","_id":"@aigentive/wire-mcp@1.0.4","maintainers":[{"name":"lazabogdan","email":"laza.bogdan@macro-net.ro"},{"name":"themefy","email":"adrian@themefy.io"}],"bin":{"wire-mcp":"dist/server.js"},"dist":{"shasum":"bcf9f76d9354e28b5a46538d73cec06c4bc2ada1","tarball":"https://registry.npmjs.org/@aigentive/wire-mcp/-/wire-mcp-1.0.4.tgz","fileCount":38,"integrity":"sha512-YZgDXK078KpZPRvLRIENwObnK3+QoJsSKk7nciRaq3dIxCw2nx6hd02twef16VVA7NIdQnKBfBSC6EN+w4T80g==","signatures":[{"sig":"MEYCIQDRHSQ3uj1Hp0O0eAaBujcNFBM4E3I7czes/62OZqeGkAIhAJWo6JcLfXW9nAHCLg09sYfMbc/wa300lv5ODnCTcS2H","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":243760},"main":"dist/server.js","type":"module","types":"dist/server.d.ts","gitHead":"38414bfc394748dfa55e29e3fa7f3aaea1fb005d","scripts":{"dev":"tsx src/server.ts","build":"tsc -p tsconfig.json && chmod +x dist/server.js || true","start":"node dist/server.js","dev:http":"tsx src/server.ts --http","typecheck":"tsc --noEmit -p tsconfig.json","start:http":"node dist/server.js --http"},"_npmUser":{"name":"themefy","email":"adrian@themefy.io"},"_npmVersion":"11.11.1","description":"Wire MCP server — agent-driven diagram editing over stdio + streamable-HTTP.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^3.24.2","@resvg/resvg-js":"^2.6.2","@aigentive/wire-core":"^1.0.0","@modelcontextprotocol/sdk":"^1.25.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2"},"_npmOperationalInternal":{"tmp":"tmp/wire-mcp_1.0.4_1777500752044_0.6425835079544338","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@aigentive/wire-mcp","version":"1.0.5","license":"MIT","_id":"@aigentive/wire-mcp@1.0.5","maintainers":[{"name":"lazabogdan","email":"laza.bogdan@macro-net.ro"},{"name":"themefy","email":"adrian@themefy.io"}],"bin":{"wire-mcp":"dist/server.js"},"dist":{"shasum":"b349876ed039f2bf7333a7c44a62376aea4b4287","tarball":"https://registry.npmjs.org/@aigentive/wire-mcp/-/wire-mcp-1.0.5.tgz","fileCount":38,"integrity":"sha512-qN+SB136X25Vd77j4eCphxq/Uad1A9oBoZrYUJzYA5FqCUeB9XJ5PBzKPvHjfnvNs6SuphDLze8hFPXSXcXg8A==","signatures":[{"sig":"MEQCIAxXwiZxzWkfNOqiCIk5XoYRTz2EGcXk+4l10/6OutboAiAd8UfG1xSt7yIAfVWSDG3+DJfpp8XgBYh39KrjQPJHLw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":248282},"main":"dist/server.js","type":"module","types":"dist/server.d.ts","gitHead":"f1119f38a261d69547d70c41299ee7f9cefc9c63","scripts":{"dev":"tsx src/server.ts","build":"tsc -p tsconfig.json && chmod +x dist/server.js || true","start":"node dist/server.js","dev:http":"tsx src/server.ts --http","typecheck":"tsc --noEmit -p tsconfig.json","start:http":"node dist/server.js --http"},"_npmUser":{"name":"themefy","email":"adrian@themefy.io"},"_npmVersion":"11.11.1","description":"Wire MCP server — agent-driven diagram editing over stdio + streamable-HTTP.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^3.24.2","@resvg/resvg-js":"^2.6.2","@aigentive/wire-core":"^1.0.1","@modelcontextprotocol/sdk":"^1.25.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2"},"_npmOperationalInternal":{"tmp":"tmp/wire-mcp_1.0.5_1777624356739_0.45627377645705813","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@aigentive/wire-mcp","version":"1.0.6","license":"MIT","_id":"@aigentive/wire-mcp@1.0.6","maintainers":[{"name":"lazabogdan","email":"laza.bogdan@macro-net.ro"},{"name":"themefy","email":"adrian@themefy.io"}],"bin":{"wire-mcp":"dist/server.js"},"dist":{"shasum":"ead263384a5edc4070e299b95e19a2c054bf409b","tarball":"https://registry.npmjs.org/@aigentive/wire-mcp/-/wire-mcp-1.0.6.tgz","fileCount":38,"integrity":"sha512-OvSMeMQn7PZD/PUPsHJROEHpQAqwZ0Sf/VoblMr7mNQ4HpTr3/q8qsuxcXw/35GTO7pdzK+Dn2wbzWvzZBkkvg==","signatures":[{"sig":"MEYCIQCu0ZhzpnCvnLk+WgLTgopxbFOVFL6JiCuMYhxXHgFFBQIhALiN+vRsRaEkpWl/vnMbxKFrCIAkfRifWVX1j4Lx1Lbu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":249001},"main":"dist/server.js","type":"module","types":"dist/server.d.ts","gitHead":"1653d570f84889f54b22b2293eddf5d4d9a647c4","scripts":{"dev":"tsx src/server.ts","build":"tsc -p tsconfig.json && chmod +x dist/server.js || true","start":"node dist/server.js","dev:http":"tsx src/server.ts --http","typecheck":"tsc --noEmit -p tsconfig.json","start:http":"node dist/server.js --http"},"_npmUser":{"name":"themefy","email":"adrian@themefy.io"},"_npmVersion":"11.11.1","description":"Wire MCP server — agent-driven diagram editing over stdio + streamable-HTTP.","directories":{},"_nodeVersion":"22.14.0","dependencies":{"zod":"^3.24.2","@resvg/resvg-js":"^2.6.2","@aigentive/wire-core":"^1.0.2","@modelcontextprotocol/sdk":"^1.25.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2"},"_npmOperationalInternal":{"tmp":"tmp/wire-mcp_1.0.6_1777626215732_0.25012579914872424","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@aigentive/wire-mcp","version":"1.0.7","description":"Wire MCP server — agent-driven diagram editing over stdio + streamable-HTTP.","license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/aigentive/wirediagram.git","directory":"packages/wire-mcp"},"type":"module","main":"dist/server.js","types":"dist/server.d.ts","bin":{"wire-mcp":"dist/server.js"},"scripts":{"build":"tsc -p tsconfig.json && chmod +x dist/server.js || true","dev":"tsx src/server.ts","dev:http":"tsx src/server.ts --http","start":"node dist/server.js","start:http":"node dist/server.js --http","typecheck":"tsc --noEmit -p tsconfig.json"},"dependencies":{"@aigentive/wire-core":"^1.0.4","@modelcontextprotocol/sdk":"^1.25.3","@resvg/resvg-js":"^2.6.2","zod":"^3.24.2"},"devDependencies":{"tsx":"^4.22.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_id":"@aigentive/wire-mcp@1.0.7","gitHead":"12594c6937561cfc522c5692fa236a1882d51c5e","bugs":{"url":"https://github.com/aigentive/wirediagram/issues"},"homepage":"https://github.com/aigentive/wirediagram#readme","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-h+iag9e/duhjbyju5NAp/tZzKWh/X4doc6yg/u1tlWVIV8HqxSwnj0pBzqyct3sjha643ZZytk/V/pL0uvwGDw==","shasum":"6363d5e0cff87f708f729ccff4f49274c23c667f","tarball":"https://registry.npmjs.org/@aigentive/wire-mcp/-/wire-mcp-1.0.7.tgz","fileCount":38,"unpackedSize":272555,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aigentive%2fwire-mcp@1.0.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDZzmhfLU0Ssu1dYVCGU7ePHfZ45KJciAsyodLD5Ou5mwIgfeEs+YXGB03wQb5pQcP2CdZ2kYJDgGKrSKaBf1cCkxc="}]},"_npmUser":{"name":"themefy","email":"adrian@themefy.io"},"directories":{},"maintainers":[{"name":"lazabogdan","email":"laza.bogdan@macro-net.ro"},{"name":"themefy","email":"adrian@themefy.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/wire-mcp_1.0.7_1783027542003_0.5097865559459747"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-29T18:07:48.042Z","modified":"2026-07-02T21:25:42.489Z","1.0.0":"2026-04-29T18:07:48.282Z","1.0.1":"2026-04-29T18:17:38.099Z","1.0.2":"2026-04-29T18:50:36.052Z","1.0.3":"2026-04-29T19:40:00.012Z","1.0.4":"2026-04-29T22:12:32.224Z","1.0.5":"2026-05-01T08:32:36.920Z","1.0.6":"2026-05-01T09:03:35.905Z","1.0.7":"2026-07-02T21:25:42.145Z"},"license":"Apache-2.0","description":"Wire MCP server — agent-driven diagram editing over stdio + streamable-HTTP.","maintainers":[{"name":"lazabogdan","email":"laza.bogdan@macro-net.ro"},{"name":"themefy","email":"adrian@themefy.io"}],"readme":"# @aigentive/wire-mcp\n\nModel Context Protocol server for Wire. Lets any MCP-compatible agent (Claude Desktop, Claude Code, Cursor, local agents, custom CUA) author and edit Wire diagrams as structured graphs — and render them to SVG/PNG.\n\nSupports stdio (local IDE/desktop) and streamable-HTTP (cloud / network) transports out of the box.\n\n## Install\n\n```bash\nnpm install @aigentive/wire-mcp\n```\n\n## Run\n\n```bash\n# stdio — for Claude Desktop, Cursor, Claude Code, and local MCP clients\nnpx -y @aigentive/wire-mcp@latest\n\n# streamable HTTP — for cloud agents / network clients\nnpx -y @aigentive/wire-mcp@latest --http\n```\n\nWhen installed globally:\n\n```bash\nwire-mcp           # stdio\nwire-mcp --http    # http on port 3860\n```\n\n### Environment\n\n| Var | Default | Purpose |\n|---|---|---|\n| `WIRE_STORAGE_DIR` | `~/.wire/diagrams` | Directory for `*.json` diagram files |\n| `WIRE_HTTP_PORT` | `3860` | HTTP transport port |\n| `WIRE_HTTP_HOST` | `127.0.0.1` | HTTP transport host |\n| `WIRE_MCP_TOKEN` | _(unset)_ | Optional bearer token required for HTTP `/mcp`, `/ready`, and `/health`; required for non-loopback binds unless unsafe opt-in is set |\n| `WIRE_MCP_ALLOWED_ORIGINS` | _(loopback origins)_ | Comma-separated browser Origin allowlist for HTTP transport |\n| `WIRE_HTTP_UNSAFE_ALLOW_REMOTE` | `false` | Explicit opt-in for unauthenticated non-loopback HTTP binds |\n| `WIRE_AUDIT_LOG` | _(stderr only)_ | JSONL audit log file path |\n| `WIRE_DEFAULT_LAYOUT` | `LR` | Default layout direction |\n| `WIRE_PREVIEW_BASE` | `WIRE_CLOUD_URL` when set, otherwise `http://localhost:3870` | Optional override for preview URLs |\n| `WIRE_PNG_ENABLED` | `false` | Enable PNG rasterization path when supported |\n| `WIRE_AGENT_ID` | `wire-mcp` | Audit log actor id |\n| `WIRE_CLOUD_URL` | _(unset)_ | Optional Wire Cloud base URL for authenticated sync |\n| `WIRE_CLOUD_API_KEY` | _(unset)_ | Optional Wire Cloud API key generated from the hosted Wires workspace |\n\n## Cloud Sync\n\nGenerate an API key from the hosted app under **Wires -> Connect local MCP**.\nThen run the MCP server with both cloud env vars.\n\nWith cloud sync enabled, `render_preview` mints token-scoped Wire Cloud share\nlinks backed by the authenticated account. It returns public view, optional\nedit, SVG, PNG, JSON, Mermaid, and workspace URLs. Customers do not need a local\nplayground. The `render_svg` and `render_png` tools return inline assets\ndirectly from the MCP server.\n\nClaude Code:\n\n```bash\nclaude mcp add wire \\\n  --env WIRE_CLOUD_URL='https://wire.example.com' \\\n  --env WIRE_CLOUD_API_KEY='PASTE_WIRE_CLOUD_API_KEY' \\\n  -- npx -y @aigentive/wire-mcp@latest\n```\n\nGeneric MCP JSON:\n\n```json\n{\n  \"mcpServers\": {\n    \"wire\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@aigentive/wire-mcp@latest\"],\n      \"env\": {\n        \"WIRE_CLOUD_URL\": \"https://wire.example.com\",\n        \"WIRE_CLOUD_API_KEY\": \"PASTE_WIRE_CLOUD_API_KEY\"\n      }\n    }\n  }\n}\n```\n\nLocal HTTP mode:\n\n```bash\nWIRE_CLOUD_URL='https://wire.example.com' \\\nWIRE_CLOUD_API_KEY='PASTE_WIRE_CLOUD_API_KEY' \\\nnpx -y @aigentive/wire-mcp@latest --http\n```\n\nHealth check:\n\n```bash\ncurl -sS http://127.0.0.1:3860/health\n```\n\nExpected cloud-backed health includes:\n\n```json\n{\n  \"cloud\": {\n    \"enabled\": true,\n    \"url\": \"https://wire.example.com\"\n  }\n}\n```\n\nRestart the MCP client after changing server config. Existing Claude Code\nsessions do not automatically gain newly added MCP tools.\n\n## Tools\n\n| Tool | Purpose |\n|---|---|\n| `v1_get_agent_guide` | Return the concise MCP agent operating guide for any client that wants live instructions |\n| `v1_get_docs_shape` | Return machine-readable docs chunks by topic or natural-language task |\n| `create_diagram` | Create a new diagram, optionally seeded from a template (`agent-workflow`, `approval-flow`, `rag-pipeline`) |\n| `load_diagram` | Load a stored diagram by id |\n| `save_diagram` | Overwrite a diagram with full JSON; validates before write |\n| `patch_diagram` | Patch top-level diagram fields (`null` clears a field) |\n| `list_diagrams` | List stored diagrams (recency-sorted) |\n| `add_node` | Append a node (any kind), optionally wired via `from` / `branch` |\n| `update_node` | Patch fields on a node (`null` to clear) |\n| `remove_node` | Remove a node and prune incoming refs |\n| `move_node` | Persist node position |\n| `resize_node` | Persist node size |\n| `connect` | Connect two nodes; supports explicit edge ids, branches, labels, handles, style, label style, routing, and data |\n| `disconnect` | Remove a connection (branch-aware sweep when `branch` omitted) |\n| `update_edge` | Patch an explicit edge by id (`fromHandle`, `toHandle`, `style`, `labelStyle`, `routing`, etc.) |\n| `remove_edge` | Remove an explicit edge by id |\n| `add_note` | Add an annotation; `attachedTo` for visual association |\n| `set_layout` | Change layout direction; `elk` is reserved and currently falls back to dagre with a validation warning |\n| `add_group` | Add a group node and optionally parent existing children |\n| `ungroup` | Clear children/parent links for a group |\n| `patch_metadata` | Patch `diagram.metadata` keys |\n| `apply_actions` | Apply a batch of `WireAction` mutations atomically |\n| `validate` | Run schema + structural validation; returns issue codes + repair hints |\n| `get_diagram_json` | Return raw canonical JSON |\n| `render_svg` | Server-side SVG render |\n| `render_png` | PNG via `@resvg/resvg-js` (falls back to SVG if not installed) |\n| `render_preview` | Return browser and embed URLs; cloud share URLs when cloud sync is configured, otherwise `WIRE_PREVIEW_BASE` |\n| `summarize_diagram` | Plain-text summary (counts by kind, triggers, ends, branches) |\n| `export_mermaid` | Convert to Mermaid `flowchart` syntax |\n\n### Edge Handles And Explicit Edges\n\nUse `from` on the target node for ordinary agent-friendly connections. Use an\nexplicit edge when you need a stable edge id, label, branch, handles, style,\nlabel style, routing, markers, or future edge edits.\n\n```json\n{\n  \"diagramId\": \"agent-router\",\n  \"id\": \"route-sales\",\n  \"from\": \"route.sales\",\n  \"to\": \"notify-sales\",\n  \"label\": \"sales\",\n  \"fromHandle\": \"right\",\n  \"toHandle\": \"left\",\n  \"routing\": \"smoothstep\",\n  \"style\": { \"markerEnd\": \"arrow\", \"strokeWidth\": 2 },\n  \"labelStyle\": { \"background\": \"#ffffff\", \"fontSize\": 12 }\n}\n```\n\nAllowed handle values are `left`, `right`, `top`, and `bottom`. Allowed routing\nvalues are `bezier`, `smoothstep`, `step`, and `straight`.\n\nPatch an explicit edge with `update_edge`:\n\n```json\n{\n  \"diagramId\": \"agent-router\",\n  \"id\": \"route-sales\",\n  \"patch\": {\n    \"fromHandle\": \"right\",\n    \"toHandle\": \"left\",\n    \"style\": { \"markerEnd\": \"arrow\", \"stroke\": \"#2563eb\" }\n  }\n}\n```\n\nUse `disconnect` for node `from` references. Use `remove_edge` for explicit edge\nids.\n\n## Resources\n\n- `wire://diagrams/{id}.json` — canonical JSON\n- `wire://diagrams/{id}.svg` — rendered SVG\n- `wire://diagrams/{id}.png` — PNG rasterization or SVG fallback\n- `wire://diagrams/{id}.mermaid` — Mermaid syntax\n- `wire://diagrams/{id}/preview` — browser preview URL\n- `wire://templates/` — list templates\n- `wire://templates/{name}` — fetch a template\n- `wire://schemas/wire-diagram` — JSON schema info\n- `wire://docs/` — machine-readable docs manifest\n- `wire://docs/agent-guide.md` — prompt-ready agent guide\n- `wire://docs/{topic}.shape.json` — topic docs for `agent`, `mcp`, `react`, `cloud`, `schema`, `validation`, `examples`, or `recipes`\n- `wire://docs/examples/{name}.wire.json` — validated example diagrams\n- `wire://docs/recipes/{id}.json` — task recipes for agents\n\n## LLM Docs\n\nUse the docs shape before guessing from prose:\n\n```json\n{\n  \"tool\": \"v1_get_docs_shape\",\n  \"arguments\": {\n    \"task\": \"Build a React workspace and connect local MCP to Wire Cloud\"\n  }\n}\n```\n\nHosted docs expose the same content under `/llm/*`, with discovery at\n`/.well-known/wire-docs.json`.\n\n## Prompts\n\n- `diagram_from_codebase` — generate an architecture diagram from a repo\n- `diagram_from_logs` — reconstruct a workflow from log lines\n- `diagram_from_workflow_description` — convert prose to a diagram\n- `review_diagram_for_clarity` — critique an existing diagram\n- `simplify_diagram` — refactor for clarity\n\n## Claude Desktop config\n\n```json\n{\n  \"mcpServers\": {\n    \"wire\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@aigentive/wire-mcp@latest\"],\n      \"env\": {\n        \"WIRE_STORAGE_DIR\": \"/Users/me/Documents/wire-diagrams\"\n      }\n    }\n  }\n}\n```\n\n## License\n\nApache-2.0\n","readmeFilename":"README.md","homepage":"https://github.com/aigentive/wirediagram#readme","repository":{"type":"git","url":"git+https://github.com/aigentive/wirediagram.git","directory":"packages/wire-mcp"},"bugs":{"url":"https://github.com/aigentive/wirediagram/issues"}}