@hiabhee/archdraw-mcp-server 1.0.5 → 1.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +119 -0
- package/dist/cli/project-link.d.ts +18 -0
- package/dist/cli/project-link.d.ts.map +1 -0
- package/dist/cli/project-link.js +129 -0
- package/dist/cli/project-link.js.map +1 -0
- package/dist/index.js +16 -4
- package/dist/index.js.map +1 -1
- package/dist/lib/project-binding.d.ts +29 -0
- package/dist/lib/project-binding.d.ts.map +1 -0
- package/dist/lib/project-binding.js +72 -0
- package/dist/lib/project-binding.js.map +1 -0
- package/dist/server.d.ts +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +25 -4
- package/dist/server.js.map +1 -1
- package/dist/tools/read-me.js +1 -1
- package/dist/ui/diagram-widget.html +140 -5
- package/package.json +1 -1
package/README.md
ADDED
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
# @hiabhee/archdraw-mcp-server
|
|
2
|
+
|
|
3
|
+
The MCP server for [ArchDraw](https://archdraw.hiabhee.online). It lets an AI agent make, change, validate, and export software architecture diagrams.
|
|
4
|
+
|
|
5
|
+
The server uses the same Mermaid → Dagre layout pipeline as the ArchDraw editor. Each new diagram gets a preview link that you can open in a browser.
|
|
6
|
+
|
|
7
|
+
This document uses ASD-STE100 Simplified Technical English.
|
|
8
|
+
|
|
9
|
+
## Select a connection type
|
|
10
|
+
|
|
11
|
+
| Connection type | Value | Use it when |
|
|
12
|
+
| --- | --- | --- |
|
|
13
|
+
| **Remote (HTTP)** | `https://archdraw.hiabhee.online/api/mcp` | The client can connect to a remote MCP server. This is the recommended type. You do not install this package. |
|
|
14
|
+
| **Local (stdio)** | `npx -y @hiabhee/archdraw-mcp-server@1.0.6` | The client can only start a local process. |
|
|
15
|
+
|
|
16
|
+
For the steps for each client (Claude Code, Claude apps, Codex, Cursor, VS Code, Gemini CLI, OpenCode, and others), refer to the [connection guide](https://archdraw.hiabhee.online/docs/connect-agents).
|
|
17
|
+
|
|
18
|
+
## Use the local server
|
|
19
|
+
|
|
20
|
+
### Requirements
|
|
21
|
+
|
|
22
|
+
- Node.js 18 or later
|
|
23
|
+
- Network access to `archdraw.hiabhee.online`
|
|
24
|
+
|
|
25
|
+
### Configuration
|
|
26
|
+
|
|
27
|
+
Most clients use this format:
|
|
28
|
+
|
|
29
|
+
```json
|
|
30
|
+
{
|
|
31
|
+
"mcpServers": {
|
|
32
|
+
"archdraw": {
|
|
33
|
+
"command": "npx",
|
|
34
|
+
"args": ["-y", "@hiabhee/archdraw-mcp-server@1.0.6"],
|
|
35
|
+
"env": {
|
|
36
|
+
"API_BASE_URL": "https://archdraw.hiabhee.online"
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
> **CAUTION:** You must set `API_BASE_URL`. If you do not set it, the server starts and shows its tools, but `generate_diagram`, `fix_layout`, and preview links do not operate.
|
|
44
|
+
|
|
45
|
+
### Environment variables
|
|
46
|
+
|
|
47
|
+
| Variable | Necessary | Function |
|
|
48
|
+
| --- | --- | --- |
|
|
49
|
+
| `API_BASE_URL` | Yes | The ArchDraw web API that does the layout, publishes previews, and keeps sessions. Use `https://archdraw.hiabhee.online`, or the URL of your own deployment. |
|
|
50
|
+
|
|
51
|
+
## Link a repository to a live project
|
|
52
|
+
|
|
53
|
+
A live project is an ArchDraw canvas that shows which coding-agent session works on which component. To connect a repository to a live project:
|
|
54
|
+
|
|
55
|
+
1. In the ArchDraw editor, open the canvas and select **Make live project**.
|
|
56
|
+
2. In the repository, run:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
npx -y @hiabhee/archdraw-mcp-server@1.0.6 link --api https://archdraw.hiabhee.online
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
3. In the editor, select **Live project → Connect an agent** and enter the code that the command shows.
|
|
63
|
+
|
|
64
|
+
The command keeps the link in `~/.archdraw/projects.json` (mode `0600`), outside the repository. The file contains a project token. Do not share it. Other commands:
|
|
65
|
+
|
|
66
|
+
| Command | Result |
|
|
67
|
+
| --- | --- |
|
|
68
|
+
| `link --api <URL>` | Links the current repository (or its main repository, for a git worktree). |
|
|
69
|
+
| `status` | Shows the project that the current repository is linked to. |
|
|
70
|
+
| `unlink` | Removes the local link. To revoke the token, select **Stop** in the editor. |
|
|
71
|
+
|
|
72
|
+
The ArchDraw plugin for Claude Code uses this link to report the files that each session edits. It sends file paths only.
|
|
73
|
+
|
|
74
|
+
## Tools
|
|
75
|
+
|
|
76
|
+
| Tool | Function |
|
|
77
|
+
| --- | --- |
|
|
78
|
+
| `read_me` | Gives the reference guide for the agent. The agent calls it first. |
|
|
79
|
+
| `generate_diagram` | Makes a diagram from Mermaid text or from nodes and edges. |
|
|
80
|
+
| `update_diagram` | Adds, removes, or changes nodes and edges in the current diagram. |
|
|
81
|
+
| `get_diagram_state` | Gives the nodes and edges of the current diagram. |
|
|
82
|
+
| `validate_diagram` | Finds structural problems and gives recommendations. |
|
|
83
|
+
| `fix_layout` | Calculates the layout again with the ArchDraw editor pipeline. |
|
|
84
|
+
| `apply_template` | Loads an architecture template. |
|
|
85
|
+
| `list_templates` | Gives the list of templates. |
|
|
86
|
+
| `list_node_types` | Gives the list of component types in the ArchDraw library. |
|
|
87
|
+
| `save_checkpoint` | Saves the current diagram with a name. |
|
|
88
|
+
| `load_checkpoint` | Restores a saved diagram. |
|
|
89
|
+
| `export_diagram` | Exports the diagram as JSON, PNG, or SVG. |
|
|
90
|
+
|
|
91
|
+
## Data and privacy
|
|
92
|
+
|
|
93
|
+
- The server sends the diagram content that the agent gives it to `API_BASE_URL`. This includes component names, labels, connections, and Mermaid text. The server does not read your source files.
|
|
94
|
+
- Each new diagram gets a preview link by default. Anyone with the link can see the diagram. The link expires after 7 days. To prevent a link, tell the agent to keep the diagram private (`publish: false`).
|
|
95
|
+
- The local server keeps the working diagram and its checkpoints in memory. It discards them when the process stops.
|
|
96
|
+
|
|
97
|
+
> **WARNING:** Do not put passwords, API keys, or other secrets in diagram labels.
|
|
98
|
+
|
|
99
|
+
Refer to the [privacy policy](https://archdraw.hiabhee.online/privacy).
|
|
100
|
+
|
|
101
|
+
## Use the server in your own code
|
|
102
|
+
|
|
103
|
+
The package exports a server factory for Streamable HTTP hosts:
|
|
104
|
+
|
|
105
|
+
```ts
|
|
106
|
+
import { createArchDrawMCPServer, handleMcpHttpRequest } from '@hiabhee/archdraw-mcp-server/server';
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
The hosted endpoint at `/api/mcp` uses this export.
|
|
110
|
+
|
|
111
|
+
## Links
|
|
112
|
+
|
|
113
|
+
- [Source code](https://github.com/hiabhee/ArchDraw/tree/main/mcp-server)
|
|
114
|
+
- [Connection guide](https://archdraw.hiabhee.online/docs/connect-agents)
|
|
115
|
+
- [Issues](https://github.com/hiabhee/ArchDraw/issues)
|
|
116
|
+
|
|
117
|
+
## License
|
|
118
|
+
|
|
119
|
+
MIT
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `archdraw-mcp-server link|unlink|status` — pair this git checkout with an
|
|
3
|
+
* ArchDraw live project. Pairing uses the browser approval flow
|
|
4
|
+
* (`/api/agentic/pairing`): the CLI shows a code, the user enters it in the
|
|
5
|
+
* editor's Live project panel, and the CLI receives a project-scoped token.
|
|
6
|
+
* Output goes to stderr except the final machine-readable line.
|
|
7
|
+
*/
|
|
8
|
+
export declare const PROJECT_COMMANDS: Set<string>;
|
|
9
|
+
interface CliIO {
|
|
10
|
+
log: (message: string) => void;
|
|
11
|
+
fetch: typeof fetch;
|
|
12
|
+
sleep: (ms: number) => Promise<void>;
|
|
13
|
+
cwd: string;
|
|
14
|
+
env: NodeJS.ProcessEnv;
|
|
15
|
+
}
|
|
16
|
+
export declare function runProjectCommand(command: string, argv: string[], io?: CliIO): Promise<number>;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=project-link.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-link.d.ts","sourceRoot":"","sources":["../../src/cli/project-link.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AAEH,eAAO,MAAM,gBAAgB,aAAwC,CAAC;AAItE,UAAU,KAAK;IACb,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,KAAK,EAAE,OAAO,KAAK,CAAC;IACpB,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;CACxB;AA0HD,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,GAAE,KAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,CAKjH"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { getBinding, removeBinding, resolveRepoRoot, saveBinding, bindingFilePath } from '../lib/project-binding.js';
|
|
2
|
+
/**
|
|
3
|
+
* `archdraw-mcp-server link|unlink|status` — pair this git checkout with an
|
|
4
|
+
* ArchDraw live project. Pairing uses the browser approval flow
|
|
5
|
+
* (`/api/agentic/pairing`): the CLI shows a code, the user enters it in the
|
|
6
|
+
* editor's Live project panel, and the CLI receives a project-scoped token.
|
|
7
|
+
* Output goes to stderr except the final machine-readable line.
|
|
8
|
+
*/
|
|
9
|
+
export const PROJECT_COMMANDS = new Set(['link', 'unlink', 'status']);
|
|
10
|
+
const POLL_INTERVAL_MS = 3000;
|
|
11
|
+
const defaultIO = () => ({
|
|
12
|
+
log: (message) => process.stderr.write(`${message}\n`),
|
|
13
|
+
fetch,
|
|
14
|
+
sleep: (ms) => new Promise((r) => setTimeout(r, ms)),
|
|
15
|
+
cwd: process.cwd(),
|
|
16
|
+
env: process.env,
|
|
17
|
+
});
|
|
18
|
+
function parseArgs(argv) {
|
|
19
|
+
const flags = {};
|
|
20
|
+
for (let i = 0; i < argv.length; i++) {
|
|
21
|
+
const arg = argv[i];
|
|
22
|
+
if (arg.startsWith('--')) {
|
|
23
|
+
const [key, inline] = arg.slice(2).split('=', 2);
|
|
24
|
+
flags[key] = inline ?? argv[++i] ?? '';
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return flags;
|
|
28
|
+
}
|
|
29
|
+
function formatUserCode(code) {
|
|
30
|
+
return code.match(/.{1,4}/g)?.join('-') ?? code;
|
|
31
|
+
}
|
|
32
|
+
function normalizeApiBase(value) {
|
|
33
|
+
if (!value)
|
|
34
|
+
return null;
|
|
35
|
+
try {
|
|
36
|
+
const url = new URL(value);
|
|
37
|
+
if (url.protocol !== 'https:' && !['localhost', '127.0.0.1'].includes(url.hostname))
|
|
38
|
+
return null;
|
|
39
|
+
return url.origin;
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
async function link(flags, io) {
|
|
46
|
+
const apiBase = normalizeApiBase(flags.api || io.env.API_BASE_URL);
|
|
47
|
+
if (!apiBase) {
|
|
48
|
+
io.log('Pass the ArchDraw URL: link --api https://archdraw.hiabhee.online (https, or http://localhost for development).');
|
|
49
|
+
return 2;
|
|
50
|
+
}
|
|
51
|
+
const repoRoot = resolveRepoRoot(io.cwd);
|
|
52
|
+
const start = await io.fetch(`${apiBase}/api/agentic/pairing`, { method: 'POST' });
|
|
53
|
+
if (!start.ok) {
|
|
54
|
+
io.log(`Could not start pairing (${start.status}).`);
|
|
55
|
+
return 1;
|
|
56
|
+
}
|
|
57
|
+
const pairing = (await start.json());
|
|
58
|
+
io.log('');
|
|
59
|
+
io.log(`Linking ${repoRoot} to an ArchDraw live project.`);
|
|
60
|
+
io.log(`Open your project canvas in ArchDraw → Live project → Link a checkout (or the pairing code field when you make the project), and enter:`);
|
|
61
|
+
io.log('');
|
|
62
|
+
io.log(` ${formatUserCode(pairing.userCode)}`);
|
|
63
|
+
io.log('');
|
|
64
|
+
io.log(`Waiting for approval (expires ${new Date(pairing.expiresAt).toLocaleTimeString()})…`);
|
|
65
|
+
const deadline = new Date(pairing.expiresAt).getTime();
|
|
66
|
+
while (Date.now() < deadline) {
|
|
67
|
+
await io.sleep(POLL_INTERVAL_MS);
|
|
68
|
+
const res = await io.fetch(`${apiBase}/api/agentic/pairing/poll`, {
|
|
69
|
+
method: 'POST',
|
|
70
|
+
headers: { 'Content-Type': 'application/json' },
|
|
71
|
+
body: JSON.stringify({ pairingId: pairing.pairingId, pollToken: pairing.pollToken }),
|
|
72
|
+
});
|
|
73
|
+
if (res.status === 202)
|
|
74
|
+
continue;
|
|
75
|
+
if (res.status === 410)
|
|
76
|
+
break;
|
|
77
|
+
const body = (await res.json().catch(() => ({})));
|
|
78
|
+
if (res.ok && body.status === 'complete' && body.projectId && body.workspaceId) {
|
|
79
|
+
if (!body.canvasId) {
|
|
80
|
+
io.log('Approved, but that project is not linked to a canvas. Use "Make live project" on a canvas and try again.');
|
|
81
|
+
return 1;
|
|
82
|
+
}
|
|
83
|
+
saveBinding(repoRoot, {
|
|
84
|
+
apiBase,
|
|
85
|
+
canvasId: body.canvasId,
|
|
86
|
+
agenticProjectId: body.projectId,
|
|
87
|
+
workspaceId: body.workspaceId,
|
|
88
|
+
token: pairing.pollToken,
|
|
89
|
+
linkedAt: new Date().toISOString(),
|
|
90
|
+
});
|
|
91
|
+
io.log(`Linked. Credentials saved to ${bindingFilePath()} (outside the repository).`);
|
|
92
|
+
io.log(`Project canvas: ${apiBase}/editor?canvas=${encodeURIComponent(body.canvasId)}`);
|
|
93
|
+
return 0;
|
|
94
|
+
}
|
|
95
|
+
if (!res.ok && res.status !== 409) {
|
|
96
|
+
io.log(`Pairing failed (${res.status}).`);
|
|
97
|
+
return 1;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
io.log('Pairing code expired. Run link again.');
|
|
101
|
+
return 1;
|
|
102
|
+
}
|
|
103
|
+
function unlink(io) {
|
|
104
|
+
const repoRoot = resolveRepoRoot(io.cwd);
|
|
105
|
+
const removed = removeBinding(repoRoot);
|
|
106
|
+
io.log(removed
|
|
107
|
+
? `Unlinked ${repoRoot}. To revoke the credential too, use "Stop" in the editor's Live project panel.`
|
|
108
|
+
: `${repoRoot} is not linked.`);
|
|
109
|
+
return 0;
|
|
110
|
+
}
|
|
111
|
+
function status(io) {
|
|
112
|
+
const repoRoot = resolveRepoRoot(io.cwd);
|
|
113
|
+
const binding = getBinding(repoRoot);
|
|
114
|
+
if (!binding) {
|
|
115
|
+
io.log(`${repoRoot} is not linked to an ArchDraw project.`);
|
|
116
|
+
return 1;
|
|
117
|
+
}
|
|
118
|
+
io.log(`${repoRoot} → ${binding.apiBase}/editor?canvas=${encodeURIComponent(binding.canvasId)} (linked ${binding.linkedAt})`);
|
|
119
|
+
return 0;
|
|
120
|
+
}
|
|
121
|
+
export async function runProjectCommand(command, argv, io = defaultIO()) {
|
|
122
|
+
const flags = parseArgs(argv);
|
|
123
|
+
if (command === 'link')
|
|
124
|
+
return link(flags, io);
|
|
125
|
+
if (command === 'unlink')
|
|
126
|
+
return unlink(io);
|
|
127
|
+
return status(io);
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=project-link.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-link.js","sourceRoot":"","sources":["../../src/cli/project-link.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAErH;;;;;;GAMG;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AAEtE,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAU9B,MAAM,SAAS,GAAG,GAAU,EAAE,CAAC,CAAC;IAC9B,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,IAAI,CAAC;IACtD,KAAK;IACL,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACpD,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;IAClB,GAAG,EAAE,OAAO,CAAC,GAAG;CACjB,CAAC,CAAC;AAEH,SAAS,SAAS,CAAC,IAAc;IAC/B,MAAM,KAAK,GAA2B,EAAE,CAAC;IACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACjD,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACzC,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IAClC,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;AAClD,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAyB;IACjD,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,OAAO,IAAI,CAAC;QACjG,OAAO,GAAG,CAAC,MAAM,CAAC;IACpB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,IAAI,CAAC,KAA6B,EAAE,EAAS;IAC1D,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACnE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,EAAE,CAAC,GAAG,CAAC,iHAAiH,CAAC,CAAC;QAC1H,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,QAAQ,GAAG,eAAe,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAEzC,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,OAAO,sBAAsB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACnF,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;QACd,EAAE,CAAC,GAAG,CAAC,4BAA4B,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;QACrD,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,OAAO,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,EAAE,CAAkF,CAAC;IAEtH,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACX,EAAE,CAAC,GAAG,CAAC,WAAW,QAAQ,+BAA+B,CAAC,CAAC;IAC3D,EAAE,CAAC,GAAG,CAAC,yIAAyI,CAAC,CAAC;IAClJ,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACX,EAAE,CAAC,GAAG,CAAC,OAAO,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAClD,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACX,EAAE,CAAC,GAAG,CAAC,iCAAiC,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;IAE9F,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;IACvD,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,MAAM,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACjC,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,OAAO,2BAA2B,EAAE;YAChE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;SACrF,CAAC,CAAC;QACH,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;YAAE,SAAS;QACjC,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;YAAE,MAAM;QAC9B,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAK/C,CAAC;QACF,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAC/E,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACnB,EAAE,CAAC,GAAG,CAAC,0GAA0G,CAAC,CAAC;gBACnH,OAAO,CAAC,CAAC;YACX,CAAC;YACD,WAAW,CAAC,QAAQ,EAAE;gBACpB,OAAO;gBACP,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,gBAAgB,EAAE,IAAI,CAAC,SAAS;gBAChC,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,KAAK,EAAE,OAAO,CAAC,SAAS;gBACxB,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACnC,CAAC,CAAC;YACH,EAAE,CAAC,GAAG,CAAC,gCAAgC,eAAe,EAAE,4BAA4B,CAAC,CAAC;YACtF,EAAE,CAAC,GAAG,CAAC,mBAAmB,OAAO,kBAAkB,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACxF,OAAO,CAAC,CAAC;QACX,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAClC,EAAE,CAAC,GAAG,CAAC,mBAAmB,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;YAC1C,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IACD,EAAE,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;IAChD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,MAAM,CAAC,EAAS;IACvB,MAAM,QAAQ,GAAG,eAAe,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IACxC,EAAE,CAAC,GAAG,CAAC,OAAO;QACZ,CAAC,CAAC,YAAY,QAAQ,gFAAgF;QACtG,CAAC,CAAC,GAAG,QAAQ,iBAAiB,CAAC,CAAC;IAClC,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,MAAM,CAAC,EAAS;IACvB,MAAM,QAAQ,GAAG,eAAe,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IACrC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,EAAE,CAAC,GAAG,CAAC,GAAG,QAAQ,wCAAwC,CAAC,CAAC;QAC5D,OAAO,CAAC,CAAC;IACX,CAAC;IACD,EAAE,CAAC,GAAG,CAAC,GAAG,QAAQ,MAAM,OAAO,CAAC,OAAO,kBAAkB,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IAC9H,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,OAAe,EAAE,IAAc,EAAE,KAAY,SAAS,EAAE;IAC9F,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,OAAO,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAC/C,IAAI,OAAO,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC;IAC5C,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC;AACpB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,20 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
3
3
|
import { createArchDrawMCPServer } from './server.js';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
.
|
|
4
|
+
import { PROJECT_COMMANDS, runProjectCommand } from './cli/project-link.js';
|
|
5
|
+
const command = process.argv[2];
|
|
6
|
+
if (command && PROJECT_COMMANDS.has(command)) {
|
|
7
|
+
runProjectCommand(command, process.argv.slice(3))
|
|
8
|
+
.then((code) => process.exit(code))
|
|
9
|
+
.catch((error) => {
|
|
10
|
+
console.error(error instanceof Error ? error.message : error);
|
|
11
|
+
process.exit(1);
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
const server = createArchDrawMCPServer();
|
|
16
|
+
server.connect(new StdioServerTransport())
|
|
17
|
+
.then(() => console.error('ArchDraw MCP server running on stdio'))
|
|
18
|
+
.catch(console.error);
|
|
19
|
+
}
|
|
8
20
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE5E,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAChC,IAAI,OAAO,IAAI,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;IAC7C,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAC9C,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAClC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACf,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACP,CAAC;KAAM,CAAC;IACN,MAAM,MAAM,GAAG,uBAAuB,EAAE,CAAC;IACzC,MAAM,CAAC,OAAO,CAAC,IAAI,oBAAoB,EAAE,CAAC;SACvC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;SACjE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Local link between a git checkout and an ArchDraw live project canvas.
|
|
3
|
+
* Stored outside the repository (never committed) in
|
|
4
|
+
* `~/.archdraw/projects.json`, mode 0600. The plugin hook script reads the
|
|
5
|
+
* same file — keep the format stable (`version: 1`).
|
|
6
|
+
*/
|
|
7
|
+
export interface ProjectBinding {
|
|
8
|
+
apiBase: string;
|
|
9
|
+
canvasId: string;
|
|
10
|
+
agenticProjectId: string;
|
|
11
|
+
workspaceId: string;
|
|
12
|
+
/** Project-scoped `adp_` agent credential. Never print or log it. */
|
|
13
|
+
token: string;
|
|
14
|
+
linkedAt: string;
|
|
15
|
+
}
|
|
16
|
+
interface BindingFile {
|
|
17
|
+
version: 1;
|
|
18
|
+
projects: Record<string, ProjectBinding>;
|
|
19
|
+
}
|
|
20
|
+
export declare function archdrawHome(): string;
|
|
21
|
+
export declare function bindingFilePath(): string;
|
|
22
|
+
/** Repository root for `cwd` (git top-level), falling back to cwd itself. */
|
|
23
|
+
export declare function resolveRepoRoot(cwd?: string): string;
|
|
24
|
+
export declare function readBindings(): BindingFile;
|
|
25
|
+
export declare function getBinding(repoRoot: string): ProjectBinding | undefined;
|
|
26
|
+
export declare function saveBinding(repoRoot: string, binding: ProjectBinding): void;
|
|
27
|
+
export declare function removeBinding(repoRoot: string): boolean;
|
|
28
|
+
export {};
|
|
29
|
+
//# sourceMappingURL=project-binding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-binding.d.ts","sourceRoot":"","sources":["../../src/lib/project-binding.ts"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,qEAAqE;IACrE,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,WAAW;IACnB,OAAO,EAAE,CAAC,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CAC1C;AAED,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,6EAA6E;AAC7E,wBAAgB,eAAe,CAAC,GAAG,GAAE,MAAsB,GAAG,MAAM,CAMnE;AAOD,wBAAgB,YAAY,IAAI,WAAW,CAQ1C;AAuBD,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAEvE;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,QAIpE;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAMvD"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { execFileSync } from 'node:child_process';
|
|
2
|
+
import { chmodSync, existsSync, mkdirSync, readFileSync, renameSync, writeFileSync } from 'node:fs';
|
|
3
|
+
import { homedir } from 'node:os';
|
|
4
|
+
import { join, resolve } from 'node:path';
|
|
5
|
+
export function archdrawHome() {
|
|
6
|
+
return process.env.ARCHDRAW_HOME || join(homedir(), '.archdraw');
|
|
7
|
+
}
|
|
8
|
+
export function bindingFilePath() {
|
|
9
|
+
return join(archdrawHome(), 'projects.json');
|
|
10
|
+
}
|
|
11
|
+
/** Repository root for `cwd` (git top-level), falling back to cwd itself. */
|
|
12
|
+
export function resolveRepoRoot(cwd = process.cwd()) {
|
|
13
|
+
try {
|
|
14
|
+
return execFileSync('git', ['rev-parse', '--show-toplevel'], { cwd, encoding: 'utf8', stdio: ['ignore', 'pipe', 'ignore'] }).trim();
|
|
15
|
+
}
|
|
16
|
+
catch {
|
|
17
|
+
return resolve(cwd);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
function parseBindings(path) {
|
|
21
|
+
const parsed = JSON.parse(readFileSync(path, 'utf8'));
|
|
22
|
+
return { version: 1, projects: parsed.projects && typeof parsed.projects === 'object' ? parsed.projects : {} };
|
|
23
|
+
}
|
|
24
|
+
export function readBindings() {
|
|
25
|
+
const path = bindingFilePath();
|
|
26
|
+
if (!existsSync(path))
|
|
27
|
+
return { version: 1, projects: {} };
|
|
28
|
+
try {
|
|
29
|
+
return parseBindings(path);
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
return { version: 1, projects: {} };
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
/** For writes: an unreadable file must not be replaced (it holds other repos' links). */
|
|
36
|
+
function readBindingsForUpdate() {
|
|
37
|
+
const path = bindingFilePath();
|
|
38
|
+
if (!existsSync(path))
|
|
39
|
+
return { version: 1, projects: {} };
|
|
40
|
+
try {
|
|
41
|
+
return parseBindings(path);
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
throw new Error(`${path} is not valid JSON. Fix or delete it, then run the command again.`);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
function writeBindings(file) {
|
|
48
|
+
const dir = archdrawHome();
|
|
49
|
+
mkdirSync(dir, { recursive: true, mode: 0o700 });
|
|
50
|
+
const path = bindingFilePath();
|
|
51
|
+
const tmp = `${path}.${process.pid}.tmp`;
|
|
52
|
+
writeFileSync(tmp, `${JSON.stringify(file, null, 2)}\n`, { mode: 0o600 });
|
|
53
|
+
renameSync(tmp, path);
|
|
54
|
+
chmodSync(path, 0o600);
|
|
55
|
+
}
|
|
56
|
+
export function getBinding(repoRoot) {
|
|
57
|
+
return readBindings().projects[repoRoot];
|
|
58
|
+
}
|
|
59
|
+
export function saveBinding(repoRoot, binding) {
|
|
60
|
+
const file = readBindingsForUpdate();
|
|
61
|
+
file.projects[repoRoot] = binding;
|
|
62
|
+
writeBindings(file);
|
|
63
|
+
}
|
|
64
|
+
export function removeBinding(repoRoot) {
|
|
65
|
+
const file = readBindingsForUpdate();
|
|
66
|
+
if (!file.projects[repoRoot])
|
|
67
|
+
return false;
|
|
68
|
+
delete file.projects[repoRoot];
|
|
69
|
+
writeBindings(file);
|
|
70
|
+
return true;
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=project-binding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-binding.js","sourceRoot":"","sources":["../../src/lib/project-binding.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
|
2
2
|
import { type DiagramState } from './lib/diagram-state.js';
|
|
3
3
|
import { type Checkpoint } from './lib/checkpoints.js';
|
|
4
4
|
import { runWithMcpContext, type McpRequestContext } from './lib/http.js';
|
|
5
|
-
export declare const SERVER_VERSION = "1.0.
|
|
5
|
+
export declare const SERVER_VERSION = "1.0.7";
|
|
6
6
|
/** Everything a working session holds between tool calls. */
|
|
7
7
|
export interface WorkingSessionSnapshot {
|
|
8
8
|
diagram: DiagramState | null;
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAanE,OAAO,EAAwE,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACjI,OAAO,EAA0D,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC/G,OAAO,EAAE,iBAAiB,EAAE,KAAK,iBAAiB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAanE,OAAO,EAAwE,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACjI,OAAO,EAA0D,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAC/G,OAAO,EAAE,iBAAiB,EAAE,KAAK,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAqiB1E,eAAO,MAAM,cAAc,UAAU,CAAC;AAEtC,6DAA6D;AAC7D,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;IAC7B,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAAC;IACvE,IAAI,CAAC,gBAAgB,EAAE,MAAM,EAAE,QAAQ,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjF;AAED,MAAM,WAAW,qBAAqB;IACpC,uGAAuG;IACvG,YAAY,CAAC,EAAE,mBAAmB,CAAC;CACpC;AA+SD,wBAAgB,uBAAuB,CAAC,OAAO,GAAE,qBAA0B,GAAG,MAAM,CA6DnF;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,qBAAqB,GAAG;IAAE,OAAO,CAAC,EAAE,iBAAiB,CAAA;CAAO,GACpE,OAAO,CAAC,QAAQ,CAAC,CAYnB;AAED,OAAO,EAAE,iBAAiB,EAAE,KAAK,iBAAiB,EAAE,CAAC"}
|
package/dist/server.js
CHANGED
|
@@ -22,9 +22,10 @@ const TOOLS = [
|
|
|
22
22
|
{
|
|
23
23
|
name: 'generate_diagram',
|
|
24
24
|
title: 'Generate an ArchDraw diagram',
|
|
25
|
+
annotations: { title: 'Generate an ArchDraw diagram', readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true },
|
|
25
26
|
description: `Generate a rich architecture diagram with groups, labeled edges, and visual hierarchy. Compatible chat clients display the result as an inline interactive preview; text-only clients receive a concise summary and the ArchDraw site link.
|
|
26
27
|
|
|
27
|
-
|
|
28
|
+
Include the returned preview link (shareUrl) and edit link (diagramUrl) in your reply: in clients without the inline preview, the links are how the user sees the diagram. Links are created by default in the same response (no extra call needed); they are unguessable, view-by-link, and expire after 7 days.
|
|
28
29
|
|
|
29
30
|
**INPUT MODES — choose ONE**:
|
|
30
31
|
|
|
@@ -198,7 +199,6 @@ Optional directives like \`%% archdraw-shape: {"id":"<id>","shape":"shield"}\` a
|
|
|
198
199
|
},
|
|
199
200
|
required: ['success', 'nodes', 'edges', 'workingSessionId', 'metadata'],
|
|
200
201
|
},
|
|
201
|
-
annotations: { title: 'Generate an ArchDraw diagram', openWorldHint: true },
|
|
202
202
|
_meta: {
|
|
203
203
|
ui: { resourceUri: DIAGRAM_WIDGET_URI },
|
|
204
204
|
'openai/toolInvocation/invoking': 'Generating diagram…',
|
|
@@ -207,6 +207,8 @@ Optional directives like \`%% archdraw-shape: {"id":"<id>","shape":"shield"}\` a
|
|
|
207
207
|
},
|
|
208
208
|
{
|
|
209
209
|
name: 'fix_layout',
|
|
210
|
+
title: 'Lay out an ArchDraw diagram',
|
|
211
|
+
annotations: { title: 'Lay out an ArchDraw diagram', readOnlyHint: true, openWorldHint: false },
|
|
210
212
|
description: `Apply the same Mermaid → Dagre auto-layout pipeline used by the ArchDraw editor.
|
|
211
213
|
|
|
212
214
|
**USE WHEN**: User provides nodes/edges that need automatic positioning
|
|
@@ -268,6 +270,8 @@ This tool does NOT generate or modify nodes/edges - it only computes optimal pos
|
|
|
268
270
|
},
|
|
269
271
|
{
|
|
270
272
|
name: 'list_node_types',
|
|
273
|
+
title: 'List ArchDraw component types',
|
|
274
|
+
annotations: { title: 'List ArchDraw component types', readOnlyHint: true, openWorldHint: false },
|
|
271
275
|
description: `List all available pre-made component types from the ArchDraw component library.
|
|
272
276
|
|
|
273
277
|
**USE WHEN**: You want to see what components are available before generating a diagram
|
|
@@ -310,10 +314,11 @@ This tool does NOT generate or modify nodes/edges - it only computes optimal pos
|
|
|
310
314
|
{
|
|
311
315
|
name: 'apply_template',
|
|
312
316
|
title: 'Apply an ArchDraw template',
|
|
317
|
+
annotations: { title: 'Apply an ArchDraw template', readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true },
|
|
313
318
|
description: `Apply a pre-built architecture template with pre-defined nodes and edges. Compatible chat clients display the result as an inline preview.
|
|
314
319
|
|
|
315
320
|
**USE WHEN**: User wants a common architecture pattern (e-commerce, chat app, rideshare, etc.)
|
|
316
|
-
**OUTPUT**: Full diagram with positioned nodes and edges, plus a preview link (shareUrl) and edit link (diagramUrl) created by default.
|
|
321
|
+
**OUTPUT**: Full diagram with positioned nodes and edges, plus a preview link (shareUrl) and edit link (diagramUrl) created by default. Include those links in your reply. Pass publish:false only if the user asks to keep it private.
|
|
317
322
|
|
|
318
323
|
**AVAILABLE TEMPLATES**:
|
|
319
324
|
- archflow: ArchDraw's own architecture (modern SaaS)
|
|
@@ -370,6 +375,8 @@ This tool does NOT generate or modify nodes/edges - it only computes optimal pos
|
|
|
370
375
|
},
|
|
371
376
|
{
|
|
372
377
|
name: 'list_templates',
|
|
378
|
+
title: 'List ArchDraw templates',
|
|
379
|
+
annotations: { title: 'List ArchDraw templates', readOnlyHint: true, openWorldHint: false },
|
|
373
380
|
description: 'List all available architecture templates with their descriptions',
|
|
374
381
|
inputSchema: {
|
|
375
382
|
type: 'object',
|
|
@@ -378,6 +385,8 @@ This tool does NOT generate or modify nodes/edges - it only computes optimal pos
|
|
|
378
385
|
},
|
|
379
386
|
{
|
|
380
387
|
name: 'read_me',
|
|
388
|
+
title: 'Read the ArchDraw guide',
|
|
389
|
+
annotations: { title: 'Read the ArchDraw guide', readOnlyHint: true, openWorldHint: false },
|
|
381
390
|
description: `Returns a compact LLM-optimized reference guide for ArchDraw — tiers, node types,
|
|
382
391
|
edge communication types, layout rules, and best practices. Call this FIRST before generating
|
|
383
392
|
any diagram to produce accurate, professional output.`,
|
|
@@ -388,6 +397,8 @@ any diagram to produce accurate, professional output.`,
|
|
|
388
397
|
},
|
|
389
398
|
{
|
|
390
399
|
name: 'get_diagram_state',
|
|
400
|
+
title: 'Read the current ArchDraw diagram',
|
|
401
|
+
annotations: { title: 'Read the current ArchDraw diagram', readOnlyHint: true, openWorldHint: false },
|
|
391
402
|
description: `Returns the current diagram's nodes and edges as structured JSON.
|
|
392
403
|
Call this before update_diagram to read what's on the canvas.
|
|
393
404
|
Optionally pass a sessionId to load that diagram first (e.g. a link the user opened).`,
|
|
@@ -401,6 +412,8 @@ Optionally pass a sessionId to load that diagram first (e.g. a link the user ope
|
|
|
401
412
|
},
|
|
402
413
|
{
|
|
403
414
|
name: 'update_diagram',
|
|
415
|
+
title: 'Update an ArchDraw diagram',
|
|
416
|
+
annotations: { title: 'Update an ArchDraw diagram', readOnlyHint: false, destructiveHint: true, idempotentHint: false, openWorldHint: true },
|
|
404
417
|
description: `Surgically modifies an existing diagram. Add nodes, remove nodes,
|
|
405
418
|
add edges, remove edges, or update node properties — without regenerating the whole diagram.`,
|
|
406
419
|
inputSchema: {
|
|
@@ -465,6 +478,8 @@ add edges, remove edges, or update node properties — without regenerating the
|
|
|
465
478
|
},
|
|
466
479
|
{
|
|
467
480
|
name: 'validate_diagram',
|
|
481
|
+
title: 'Validate an ArchDraw diagram',
|
|
482
|
+
annotations: { title: 'Validate an ArchDraw diagram', readOnlyHint: true, openWorldHint: false },
|
|
468
483
|
description: `Analyses the current diagram and returns a list of structural issues
|
|
469
484
|
and improvement suggestions. Use after generating to catch problems before rendering.`,
|
|
470
485
|
inputSchema: {
|
|
@@ -476,6 +491,8 @@ and improvement suggestions. Use after generating to catch problems before rende
|
|
|
476
491
|
},
|
|
477
492
|
{
|
|
478
493
|
name: 'save_checkpoint',
|
|
494
|
+
title: 'Save an ArchDraw checkpoint',
|
|
495
|
+
annotations: { title: 'Save an ArchDraw checkpoint', readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: false },
|
|
479
496
|
description: `Saves the current diagram state with a named label so it can be restored later.
|
|
480
497
|
Useful for multi-turn workflows: save before a major change, restore if needed.`,
|
|
481
498
|
inputSchema: {
|
|
@@ -490,6 +507,8 @@ Useful for multi-turn workflows: save before a major change, restore if needed.`
|
|
|
490
507
|
},
|
|
491
508
|
{
|
|
492
509
|
name: 'load_checkpoint',
|
|
510
|
+
title: 'Restore an ArchDraw checkpoint',
|
|
511
|
+
annotations: { title: 'Restore an ArchDraw checkpoint', readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: false },
|
|
493
512
|
description: `Restores a previously saved diagram state by name.`,
|
|
494
513
|
inputSchema: {
|
|
495
514
|
type: 'object',
|
|
@@ -503,6 +522,8 @@ Useful for multi-turn workflows: save before a major change, restore if needed.`
|
|
|
503
522
|
},
|
|
504
523
|
{
|
|
505
524
|
name: 'export_diagram',
|
|
525
|
+
title: 'Export an ArchDraw diagram',
|
|
526
|
+
annotations: { title: 'Export an ArchDraw diagram', readOnlyHint: true, openWorldHint: false },
|
|
506
527
|
description: `Export the current diagram in various formats.
|
|
507
528
|
|
|
508
529
|
**USE WHEN**: User wants to save or download the diagram
|
|
@@ -525,7 +546,7 @@ Useful for multi-turn workflows: save before a major change, restore if needed.`
|
|
|
525
546
|
},
|
|
526
547
|
},
|
|
527
548
|
];
|
|
528
|
-
export const SERVER_VERSION = '1.0.
|
|
549
|
+
export const SERVER_VERSION = '1.0.7';
|
|
529
550
|
const STATEFUL_TOOLS = new Set([
|
|
530
551
|
'generate_diagram',
|
|
531
552
|
'apply_template',
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/read-me.js
CHANGED
|
@@ -7,7 +7,7 @@ Model the system the user describes. Architecture patterns are guidance, not man
|
|
|
7
7
|
|
|
8
8
|
Call \`get_diagram_state\`, \`validate_diagram\`, and \`update_diagram\` to refine the current diagram. Keep and resend \`workingSessionId\` when working on multiple diagrams through one MCP connection.
|
|
9
9
|
|
|
10
|
-
Preview links: \`generate_diagram\`, \`apply_template\` and \`update_diagram\` return a preview link (\`shareUrl\`) and edit link (\`diagramUrl\`) in the same response by default.
|
|
10
|
+
Preview links: \`generate_diagram\`, \`apply_template\` and \`update_diagram\` return a preview link (\`shareUrl\`) and edit link (\`diagramUrl\`) in the same response by default. Include them in your reply: in clients without the inline preview, the link is how the user sees the diagram. Links are unguessable, view-by-link and expire after 7 days. Pass \`publish:false\` only if the user asks to keep a diagram private; it then stays in the MCP session.
|
|
11
11
|
|
|
12
12
|
Use \`apply_template\` for a starting point, \`fix_layout\` to run the editor layout pipeline, and checkpoints to experiment safely.`;
|
|
13
13
|
}
|
|
@@ -19,8 +19,17 @@
|
|
|
19
19
|
.open { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 5px; color: #1167b1; font-size: 12px; font-weight: 600; text-decoration: none; }
|
|
20
20
|
.open:hover { text-decoration: underline; }
|
|
21
21
|
a:focus-visible, button:focus-visible, textarea:focus-visible, input:focus-visible { outline: 2px solid #1e90ff; outline-offset: 2px; }
|
|
22
|
-
.
|
|
23
|
-
|
|
22
|
+
.stage { position: relative; }
|
|
23
|
+
.canvas { height: 380px; overflow: hidden; background: var(--color-background-secondary, #f8fafc); touch-action: none; }
|
|
24
|
+
.canvas svg { display: block; width: 100%; height: 100%; cursor: grab; user-select: none; }
|
|
25
|
+
.canvas svg.panning { cursor: grabbing; }
|
|
26
|
+
.zoom { position: absolute; right: 10px; bottom: 10px; display: flex; gap: 4px; }
|
|
27
|
+
.zoom button { width: 30px; height: 30px; padding: 0; border: 1px solid var(--color-border-primary, #d9dde5); background: var(--color-background-primary, #fff); color: var(--color-text-primary, #20242c); font-size: 15px; font-weight: 600; line-height: 1; cursor: pointer; }
|
|
28
|
+
.zoom button.wide { width: auto; padding: 0 9px; font-size: 11px; }
|
|
29
|
+
body.fullscreen { padding: 0; }
|
|
30
|
+
body.fullscreen .card { border-radius: 0; }
|
|
31
|
+
body.fullscreen .canvas { height: calc(100vh - 54px); }
|
|
32
|
+
body.fullscreen .actions, body.fullscreen .warnings { display: none; }
|
|
24
33
|
.empty { display: grid; min-height: 190px; place-items: center; padding: 24px; color: var(--color-text-secondary, #687080); font-size: 13px; text-align: center; }
|
|
25
34
|
.warnings { padding: 8px 14px; border-top: 1px solid var(--color-border-primary, #d9dde5); color: #96610a; font-size: 11px; }
|
|
26
35
|
.actions { padding: 12px 14px 14px; border-top: 1px solid var(--color-border-primary, #d9dde5); }
|
|
@@ -58,7 +67,15 @@
|
|
|
58
67
|
</div>
|
|
59
68
|
<a class="open" id="open-link" hidden target="_blank" rel="noopener noreferrer"><span id="open-label">Open in ArchDraw</span><svg width="13" height="13" viewBox="0 0 16 16" aria-hidden="true"><path d="M5 3h8v8M13 3 6 10M12 9v4H3V4h4" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg></a>
|
|
60
69
|
</header>
|
|
70
|
+
<div class="stage">
|
|
61
71
|
<main class="canvas" id="canvas"><div class="empty" id="empty">Loading the diagram preview…</div></main>
|
|
72
|
+
<div class="zoom" id="zoom" hidden>
|
|
73
|
+
<button type="button" id="zoom-out" aria-label="Zoom out">−</button>
|
|
74
|
+
<button type="button" id="zoom-in" aria-label="Zoom in">+</button>
|
|
75
|
+
<button type="button" class="wide" id="zoom-fit">Fit</button>
|
|
76
|
+
<button type="button" class="wide" id="fullscreen" hidden>Expand</button>
|
|
77
|
+
</div>
|
|
78
|
+
</div>
|
|
62
79
|
<div class="warnings" id="warnings" hidden></div>
|
|
63
80
|
<form class="actions" id="generate-form">
|
|
64
81
|
<label for="prompt">Create another diagram in this chat</label>
|
|
@@ -86,6 +103,99 @@
|
|
|
86
103
|
};
|
|
87
104
|
const safeColor = (value, fallback) => /^#[0-9a-f]{3,8}$/i.test(value || '') ? value : fallback;
|
|
88
105
|
|
|
106
|
+
// Viewport: zoom and pan by rewriting the SVG viewBox. `content` is the
|
|
107
|
+
// diagram's bounds, `base` the fitted view, `view` the current one.
|
|
108
|
+
const MIN_ZOOM = 0.5;
|
|
109
|
+
const MAX_ZOOM = 8;
|
|
110
|
+
let activeSvg = null;
|
|
111
|
+
let content = null;
|
|
112
|
+
let base = null;
|
|
113
|
+
let view = null;
|
|
114
|
+
let displayMode = 'inline';
|
|
115
|
+
|
|
116
|
+
function applyView() {
|
|
117
|
+
if (activeSvg && view) activeSvg.setAttribute('viewBox', `${view.x} ${view.y} ${view.w} ${view.h}`);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
function fitView() {
|
|
121
|
+
if (!activeSvg || !content) return;
|
|
122
|
+
const width = activeSvg.clientWidth || 640;
|
|
123
|
+
const height = activeSvg.clientHeight || 380;
|
|
124
|
+
const scale = Math.max(content.w / width, content.h / height);
|
|
125
|
+
const w = width * scale;
|
|
126
|
+
const h = height * scale;
|
|
127
|
+
base = { x: content.x - (w - content.w) / 2, y: content.y - (h - content.h) / 2, w, h };
|
|
128
|
+
view = { ...base };
|
|
129
|
+
applyView();
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
// Zoom by `factor` (> 1 zooms in) around a point given as fractions of the canvas.
|
|
133
|
+
function zoomAt(factor, fx = 0.5, fy = 0.5) {
|
|
134
|
+
if (!view || !base) return;
|
|
135
|
+
const zoom = base.w / (view.w / factor);
|
|
136
|
+
if (zoom < MIN_ZOOM || zoom > MAX_ZOOM) return;
|
|
137
|
+
const w = view.w / factor;
|
|
138
|
+
const h = view.h / factor;
|
|
139
|
+
view = { x: view.x + (view.w - w) * fx, y: view.y + (view.h - h) * fy, w, h };
|
|
140
|
+
applyView();
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
function attachViewport(svg) {
|
|
144
|
+
const pointers = new Map();
|
|
145
|
+
let pinchDistance = 0;
|
|
146
|
+
const fraction = (x, y) => {
|
|
147
|
+
const rect = svg.getBoundingClientRect();
|
|
148
|
+
return [(x - rect.left) / rect.width, (y - rect.top) / rect.height];
|
|
149
|
+
};
|
|
150
|
+
svg.addEventListener('wheel', (event) => {
|
|
151
|
+
// Inline, a plain scroll keeps scrolling the chat; pinch (ctrl) or ⌘ zooms.
|
|
152
|
+
if (displayMode !== 'fullscreen' && !event.ctrlKey && !event.metaKey) return;
|
|
153
|
+
event.preventDefault();
|
|
154
|
+
if (event.ctrlKey || event.metaKey) {
|
|
155
|
+
zoomAt(Math.exp(-event.deltaY * 0.01), ...fraction(event.clientX, event.clientY));
|
|
156
|
+
} else if (view) {
|
|
157
|
+
const rect = svg.getBoundingClientRect();
|
|
158
|
+
view = { ...view, x: view.x + event.deltaX * view.w / rect.width, y: view.y + event.deltaY * view.h / rect.height };
|
|
159
|
+
applyView();
|
|
160
|
+
}
|
|
161
|
+
}, { passive: false });
|
|
162
|
+
svg.addEventListener('pointerdown', (event) => {
|
|
163
|
+
svg.setPointerCapture(event.pointerId);
|
|
164
|
+
pointers.set(event.pointerId, { x: event.clientX, y: event.clientY });
|
|
165
|
+
svg.classList.add('panning');
|
|
166
|
+
});
|
|
167
|
+
svg.addEventListener('pointermove', (event) => {
|
|
168
|
+
const previous = pointers.get(event.pointerId);
|
|
169
|
+
if (!previous || !view) return;
|
|
170
|
+
pointers.set(event.pointerId, { x: event.clientX, y: event.clientY });
|
|
171
|
+
if (pointers.size === 2) {
|
|
172
|
+
const [a, b] = [...pointers.values()];
|
|
173
|
+
const distance = Math.hypot(a.x - b.x, a.y - b.y);
|
|
174
|
+
if (pinchDistance) zoomAt(distance / pinchDistance, ...fraction((a.x + b.x) / 2, (a.y + b.y) / 2));
|
|
175
|
+
pinchDistance = distance;
|
|
176
|
+
return;
|
|
177
|
+
}
|
|
178
|
+
const rect = svg.getBoundingClientRect();
|
|
179
|
+
view = { ...view, x: view.x - (event.clientX - previous.x) * view.w / rect.width, y: view.y - (event.clientY - previous.y) * view.h / rect.height };
|
|
180
|
+
applyView();
|
|
181
|
+
});
|
|
182
|
+
const release = (event) => {
|
|
183
|
+
pointers.delete(event.pointerId);
|
|
184
|
+
pinchDistance = 0;
|
|
185
|
+
if (!pointers.size) svg.classList.remove('panning');
|
|
186
|
+
};
|
|
187
|
+
svg.addEventListener('pointerup', release);
|
|
188
|
+
svg.addEventListener('pointercancel', release);
|
|
189
|
+
svg.addEventListener('dblclick', (event) => zoomAt(1.6, ...fraction(event.clientX, event.clientY)));
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
function setDisplayMode(mode) {
|
|
193
|
+
displayMode = mode === 'fullscreen' ? 'fullscreen' : 'inline';
|
|
194
|
+
document.body.classList.toggle('fullscreen', displayMode === 'fullscreen');
|
|
195
|
+
$('fullscreen').textContent = displayMode === 'fullscreen' ? 'Exit' : 'Expand';
|
|
196
|
+
requestAnimationFrame(fitView);
|
|
197
|
+
}
|
|
198
|
+
|
|
89
199
|
function request(method, params) {
|
|
90
200
|
const id = ++requestId;
|
|
91
201
|
return new Promise((resolve, reject) => {
|
|
@@ -141,7 +251,8 @@
|
|
|
141
251
|
const minY = Math.min(0, ...boxes.map((box) => box.y)) - 28;
|
|
142
252
|
const maxX = Math.max(...boxes.map((box) => box.x + box.width)) + 28;
|
|
143
253
|
const maxY = Math.max(...boxes.map((box) => box.y + box.height)) + 28;
|
|
144
|
-
|
|
254
|
+
content = { x: minX, y: minY, w: Math.max(320, maxX - minX), h: Math.max(180, maxY - minY) };
|
|
255
|
+
const svg = svgElement('svg', { viewBox: `${content.x} ${content.y} ${content.w} ${content.h}`, role: 'img', 'aria-label': 'Generated architecture diagram' });
|
|
145
256
|
const defs = svgElement('defs');
|
|
146
257
|
const marker = svgElement('marker', { id: 'arrow', viewBox: '0 0 10 10', refX: 9, refY: 5, markerWidth: 6, markerHeight: 6, orient: 'auto-start-reverse' });
|
|
147
258
|
marker.append(svgElement('path', { d: 'M 0 0 L 10 5 L 0 10 z', fill: '#1e90ff' }));
|
|
@@ -152,7 +263,7 @@
|
|
|
152
263
|
for (const box of boxes.filter(({ node }) => node.data?.isGroup)) {
|
|
153
264
|
const group = svgElement('g');
|
|
154
265
|
group.append(svgElement('rect', { x: box.x, y: box.y, width: box.width, height: box.height, rx: 12, fill: safeColor(box.node.data?.groupColor, '#edf2f8'), 'fill-opacity': 0.58, stroke: '#c8d1de', 'stroke-dasharray': '5 4' }));
|
|
155
|
-
group.append(svgElement('text', { x: box.x + 12, y: box.y + 20, class: 'group-label' }, escapeText(box.node.data?.groupLabel || box.node.data?.label || 'Group'));
|
|
266
|
+
group.append(svgElement('text', { x: box.x + 12, y: box.y + 20, class: 'group-label' }, escapeText(box.node.data?.groupLabel || box.node.data?.label || 'Group')));
|
|
156
267
|
svg.append(group);
|
|
157
268
|
}
|
|
158
269
|
|
|
@@ -209,6 +320,10 @@
|
|
|
209
320
|
svg.append(group);
|
|
210
321
|
}
|
|
211
322
|
canvas.replaceChildren(svg);
|
|
323
|
+
activeSvg = svg;
|
|
324
|
+
attachViewport(svg);
|
|
325
|
+
fitView();
|
|
326
|
+
$('zoom').hidden = false;
|
|
212
327
|
const visible = nodes.filter((node) => !node.data?.isGroup).length;
|
|
213
328
|
const groups = nodes.length - visible;
|
|
214
329
|
$('counts').textContent = `${visible} component${visible === 1 ? '' : 's'} · ${edges.length} connection${edges.length === 1 ? '' : 's'}${groups ? ` · ${groups} group${groups === 1 ? '' : 's'}` : ''}`;
|
|
@@ -243,7 +358,21 @@
|
|
|
243
358
|
if (result) render(result);
|
|
244
359
|
}
|
|
245
360
|
if (message.method === 'ui/notifications/tool-cancelled') $('counts').textContent = 'Generation cancelled';
|
|
361
|
+
if (message.method === 'ui/notifications/host-context-changed' && message.params?.displayMode) setDisplayMode(message.params.displayMode);
|
|
362
|
+
});
|
|
363
|
+
|
|
364
|
+
$('zoom-in').addEventListener('click', () => zoomAt(1.4));
|
|
365
|
+
$('zoom-out').addEventListener('click', () => zoomAt(1 / 1.4));
|
|
366
|
+
$('zoom-fit').addEventListener('click', fitView);
|
|
367
|
+
$('fullscreen').addEventListener('click', async () => {
|
|
368
|
+
try {
|
|
369
|
+
const result = await request('ui/request-display-mode', { mode: displayMode === 'fullscreen' ? 'inline' : 'fullscreen' });
|
|
370
|
+
setDisplayMode(result.mode);
|
|
371
|
+
} catch {
|
|
372
|
+
$('fullscreen').hidden = true;
|
|
373
|
+
}
|
|
246
374
|
});
|
|
375
|
+
new ResizeObserver(() => fitView()).observe(canvas);
|
|
247
376
|
|
|
248
377
|
$('generate-form').addEventListener('submit', async (event) => {
|
|
249
378
|
event.preventDefault();
|
|
@@ -273,7 +402,13 @@
|
|
|
273
402
|
appInfo: { name: 'ArchDraw diagram preview', version: '1.0.0' },
|
|
274
403
|
appCapabilities: { availableDisplayModes: ['inline', 'fullscreen'] },
|
|
275
404
|
protocolVersion: '2026-01-26',
|
|
276
|
-
}).then(() =>
|
|
405
|
+
}).then((result) => {
|
|
406
|
+
const context = result.hostContext || {};
|
|
407
|
+
// Offer Expand only when the host says it can go fullscreen.
|
|
408
|
+
$('fullscreen').hidden = !(context.availableDisplayModes || []).includes('fullscreen');
|
|
409
|
+
if (context.displayMode) setDisplayMode(context.displayMode);
|
|
410
|
+
notify('ui/notifications/initialized', {});
|
|
411
|
+
}).catch(() => {
|
|
277
412
|
$('status').textContent = 'Use the chat composer to ask ArchDraw for another diagram.';
|
|
278
413
|
});
|
|
279
414
|
})();
|