@hiabhee/archdraw-mcp-server 1.0.2 → 1.0.4

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare const DIAGRAM_WIDGET_URI = "ui://archdraw/diagram-v1.html";
2
+ export declare const DIAGRAM_WIDGET_HTML: string;
3
+ //# sourceMappingURL=diagram-widget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagram-widget.d.ts","sourceRoot":"","sources":["../../src/ui/diagram-widget.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,kBAAkB,kCAAkC,CAAC;AAClE,eAAO,MAAM,mBAAmB,QAA0E,CAAC"}
@@ -0,0 +1,282 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1">
6
+ <title>ArchDraw diagram</title>
7
+ <style>
8
+ :root { color-scheme: light dark; font-family: var(--font-sans, ui-sans-serif, system-ui, sans-serif); color: var(--color-text-primary, #20242c); background: var(--color-background-primary, #fff); }
9
+ * { box-sizing: border-box; }
10
+ body { margin: 0; padding: 14px; }
11
+ .card { overflow: hidden; border: 1px solid var(--color-border-primary, #d9dde5); border-radius: 14px; background: var(--color-background-primary, #fff); }
12
+ header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; border-bottom: 1px solid var(--color-border-primary, #d9dde5); }
13
+ .brand { display: flex; align-items: center; gap: 9px; min-width: 0; }
14
+ .brand-link { display: flex; align-items: center; gap: 9px; min-width: 0; color: inherit; text-decoration: none; }
15
+ .brand-link:hover h1 { color: #1167b1; }
16
+ .mark { display: grid; width: 27px; height: 27px; place-items: center; border-radius: 8px; background: #edf6ff; color: #1167b1; font-weight: 800; font-size: 15px; }
17
+ h1 { overflow: hidden; margin: 0; font-size: 14px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
18
+ .counts { margin-top: 2px; color: var(--color-text-secondary, #687080); font-size: 11px; }
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
+ .open:hover { text-decoration: underline; }
21
+ a:focus-visible, button:focus-visible, textarea:focus-visible, input:focus-visible { outline: 2px solid #1e90ff; outline-offset: 2px; }
22
+ .canvas { min-height: 190px; max-height: 440px; overflow: auto; background: var(--color-background-secondary, #f8fafc); }
23
+ svg { display: block; width: 100%; min-width: 360px; height: auto; max-height: 440px; }
24
+ .empty { display: grid; min-height: 190px; place-items: center; padding: 24px; color: var(--color-text-secondary, #687080); font-size: 13px; text-align: center; }
25
+ .warnings { padding: 8px 14px; border-top: 1px solid var(--color-border-primary, #d9dde5); color: #96610a; font-size: 11px; }
26
+ .actions { padding: 12px 14px 14px; border-top: 1px solid var(--color-border-primary, #d9dde5); }
27
+ .actions label { display: block; margin-bottom: 6px; font-size: 12px; font-weight: 600; }
28
+ textarea { display: block; width: 100%; min-height: 66px; resize: vertical; padding: 9px 10px; border: 1px solid var(--color-border-primary, #cbd1dc); border-radius: 9px; background: var(--color-background-primary, #fff); color: var(--color-text-primary, #20242c); font: inherit; font-size: 12px; }
29
+ .action-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 9px; }
30
+ .publish { display: flex; align-items: flex-start; gap: 7px; max-width: 67%; color: var(--color-text-secondary, #687080); font-size: 10px; line-height: 1.35; }
31
+ .publish input { margin: 1px 0 0; accent-color: #1769d2; }
32
+ button { flex: 0 0 auto; padding: 8px 11px; border: 0; border-radius: 8px; background: #1769d2; color: #fff; font: inherit; font-size: 11px; font-weight: 650; cursor: pointer; }
33
+ button:disabled { opacity: .55; cursor: wait; }
34
+ .status { min-height: 14px; margin: 7px 0 0; color: var(--color-text-secondary, #687080); font-size: 10px; }
35
+ .edge { fill: none; stroke: #1e90ff; stroke-width: 1.5; }
36
+ .edge-label { fill: var(--color-text-secondary, #687080); font-size: 10px; }
37
+ .group-label { fill: var(--color-text-secondary, #687080); font-size: 12px; font-weight: 650; }
38
+ .node-title { fill: #192333; font-size: 12px; font-weight: 650; }
39
+ .node-subtitle { fill: #596579; font-size: 9px; }
40
+ @media (prefers-color-scheme: dark) {
41
+ .mark { background: #172f52; color: #9cc5ff; }
42
+ .node-title { fill: #f4f6fa; }
43
+ .node-subtitle { fill: #c2cad6; }
44
+ .edge { stroke: #8492a6; }
45
+ .open { color: #8dbdff; }
46
+ button { background: #246fc8; }
47
+ }
48
+ </style>
49
+ </head>
50
+ <body>
51
+ <section class="card" aria-label="ArchDraw diagram preview">
52
+ <header>
53
+ <div class="brand">
54
+ <a class="brand-link" href="https://archdraw.hiabhee.online" target="_blank" rel="noopener noreferrer" aria-label="Open ArchDraw">
55
+ <span class="mark" aria-hidden="true">A</span>
56
+ <div><h1 id="title">ArchDraw diagram</h1><div class="counts" id="counts">Preparing preview…</div></div>
57
+ </a>
58
+ </div>
59
+ <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
+ </header>
61
+ <main class="canvas" id="canvas"><div class="empty" id="empty">Loading the diagram preview…</div></main>
62
+ <div class="warnings" id="warnings" hidden></div>
63
+ <form class="actions" id="generate-form">
64
+ <label for="prompt">Create another diagram in this chat</label>
65
+ <textarea id="prompt" maxlength="2000" placeholder="Describe a system, for example: a video streaming platform with uploads, transcoding, and playback"></textarea>
66
+ <div class="action-row">
67
+ <label class="publish"><input id="publish" type="checkbox" checked><span>Create a preview link (anyone with the link can view it; expires in 7 days).</span></label>
68
+ <button id="generate" type="submit">Generate</button>
69
+ </div>
70
+ <p class="status" id="status" role="status" aria-live="polite"></p>
71
+ </form>
72
+ </section>
73
+ <script>
74
+ (() => {
75
+ const pending = new Map();
76
+ let requestId = 0;
77
+ let latestInput = {};
78
+ const $ = (id) => document.getElementById(id);
79
+ const canvas = $('canvas');
80
+ const escapeText = (value) => String(value ?? '');
81
+ const svgElement = (tag, attrs = {}, text) => {
82
+ const element = document.createElementNS('http://www.w3.org/2000/svg', tag);
83
+ for (const [key, value] of Object.entries(attrs)) element.setAttribute(key, String(value));
84
+ if (text !== undefined) element.textContent = text;
85
+ return element;
86
+ };
87
+ const safeColor = (value, fallback) => /^#[0-9a-f]{3,8}$/i.test(value || '') ? value : fallback;
88
+
89
+ function request(method, params) {
90
+ const id = ++requestId;
91
+ return new Promise((resolve, reject) => {
92
+ const timeout = setTimeout(() => { pending.delete(id); reject(new Error('The chat did not respond.')); }, 10000);
93
+ pending.set(id, { resolve, reject, timeout });
94
+ window.parent.postMessage({ jsonrpc: '2.0', id, method, params }, '*');
95
+ });
96
+ }
97
+
98
+ function notify(method, params) {
99
+ window.parent.postMessage({ jsonrpc: '2.0', method, params }, '*');
100
+ }
101
+
102
+ function absPositions(nodes) {
103
+ const byId = new Map(nodes.map((node) => [node.id, node]));
104
+ const positions = new Map();
105
+ function resolve(node, visiting = new Set()) {
106
+ if (positions.has(node.id)) return positions.get(node.id);
107
+ const own = node.position || { x: 0, y: 0 };
108
+ const parentId = node.parentNode || node.data?.parentId;
109
+ if (!parentId || !byId.has(parentId) || visiting.has(node.id)) {
110
+ positions.set(node.id, own);
111
+ return own;
112
+ }
113
+ const nextVisiting = new Set(visiting);
114
+ nextVisiting.add(node.id);
115
+ const parent = resolve(byId.get(parentId), nextVisiting);
116
+ const absolute = { x: parent.x + own.x, y: parent.y + own.y };
117
+ positions.set(node.id, absolute);
118
+ return absolute;
119
+ }
120
+ for (const node of nodes) resolve(node);
121
+ return positions;
122
+ }
123
+
124
+ function render(graph) {
125
+ if (!graph || !Array.isArray(graph.nodes) || !Array.isArray(graph.edges)) return;
126
+ $('title').textContent = escapeText(graph.label || latestInput.label || 'ArchDraw diagram');
127
+ const nodes = graph.nodes;
128
+ const edges = graph.edges;
129
+ const positions = absPositions(nodes);
130
+ const boxes = nodes.map((node) => {
131
+ const position = positions.get(node.id) || { x: 0, y: 0 };
132
+ const width = Number(node.width || node.style?.width || 180);
133
+ const height = Number(node.height || node.style?.height || (node.data?.isGroup ? 220 : 72));
134
+ return { node, x: position.x, y: position.y, width, height };
135
+ });
136
+ if (!boxes.length) {
137
+ canvas.replaceChildren(Object.assign(document.createElement('div'), { className: 'empty', textContent: 'ArchDraw returned no nodes for this diagram.' }));
138
+ return;
139
+ }
140
+ const minX = Math.min(0, ...boxes.map((box) => box.x)) - 28;
141
+ const minY = Math.min(0, ...boxes.map((box) => box.y)) - 28;
142
+ const maxX = Math.max(...boxes.map((box) => box.x + box.width)) + 28;
143
+ const maxY = Math.max(...boxes.map((box) => box.y + box.height)) + 28;
144
+ const svg = svgElement('svg', { viewBox: `${minX} ${minY} ${Math.max(320, maxX - minX)} ${Math.max(180, maxY - minY)}`, role: 'img', 'aria-label': 'Generated architecture diagram' });
145
+ const defs = svgElement('defs');
146
+ const marker = svgElement('marker', { id: 'arrow', viewBox: '0 0 10 10', refX: 9, refY: 5, markerWidth: 6, markerHeight: 6, orient: 'auto-start-reverse' });
147
+ marker.append(svgElement('path', { d: 'M 0 0 L 10 5 L 0 10 z', fill: '#1e90ff' }));
148
+ defs.append(marker);
149
+ svg.append(defs);
150
+ const boxById = new Map(boxes.map((box) => [box.node.id, box]));
151
+
152
+ for (const box of boxes.filter(({ node }) => node.data?.isGroup)) {
153
+ const group = svgElement('g');
154
+ 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'));
156
+ svg.append(group);
157
+ }
158
+
159
+ for (const edge of edges) {
160
+ const source = boxById.get(edge.source);
161
+ const target = boxById.get(edge.target);
162
+ if (!source || !target) continue;
163
+ const direction = String(graph.metadata?.direction || '').toUpperCase();
164
+ const sourceSide = String(edge.sourceHandle || '').split('-').pop();
165
+ const targetSide = String(edge.targetHandle || '').split('-').pop();
166
+ let sx, sy, tx, ty, d;
167
+ if (sourceSide === 'top' || sourceSide === 'bottom' || targetSide === 'top' || targetSide === 'bottom' || direction === 'DOWN' || direction === 'UP') {
168
+ const down = direction !== 'UP';
169
+ sy = source.y + (sourceSide === 'top' ? 0 : sourceSide === 'bottom' ? source.height : down ? source.height : 0);
170
+ sx = source.x + source.width / 2;
171
+ ty = target.y + (targetSide === 'top' ? 0 : targetSide === 'bottom' ? target.height : down ? 0 : target.height);
172
+ tx = target.x + target.width / 2;
173
+ const mid = (sy + ty) / 2;
174
+ d = `M ${sx} ${sy} C ${sx} ${mid}, ${tx} ${mid}, ${tx} ${ty}`;
175
+ } else {
176
+ sx = source.x + (sourceSide === 'left' ? 0 : sourceSide === 'right' ? source.width : source.width);
177
+ sy = source.y + source.height / 2;
178
+ tx = target.x + (targetSide === 'left' ? 0 : targetSide === 'right' ? target.width : 0);
179
+ ty = target.y + target.height / 2;
180
+ const mid = (sx + tx) / 2;
181
+ d = `M ${sx} ${sy} C ${mid} ${sy}, ${mid} ${ty}, ${tx} ${ty}`;
182
+ }
183
+ svg.append(svgElement('path', { d, class: 'edge', 'marker-end': 'url(#arrow)', stroke: /^#[0-9a-f]{3,8}$/i.test(edge.style?.stroke || '') ? edge.style.stroke : '#1e90ff', 'stroke-dasharray': edge.style?.strokeDasharray || undefined }));
184
+ const label = edge.data?.label || edge.label;
185
+ if (label) svg.append(svgElement('text', { x: (sx + tx) / 2, y: (sy + ty) / 2 - 5, class: 'edge-label', 'text-anchor': 'middle' }, escapeText(label).slice(0, 32)));
186
+ }
187
+
188
+ for (const box of boxes.filter(({ node }) => !node.data?.isGroup)) {
189
+ const node = box.node;
190
+ const data = node.data || {};
191
+ const shape = String(data.shape || '');
192
+ const tier = String(data.tier || data.layer || '').toLowerCase();
193
+ const tierStroke = ({ client: '#475569', edge: '#475569', compute: '#0f766e', async: '#c2410c', data: '#334155', external: '#57534e', observe: '#475569' })[tier] || '#0f766e';
194
+ const stroke = safeColor(data.tierColor || data.accentColor, tierStroke);
195
+ const fill = 'var(--color-background-primary, #fff)';
196
+ const group = svgElement('g');
197
+ if (shape === 'diamond') {
198
+ group.append(svgElement('polygon', { points: `${box.x + box.width / 2},${box.y} ${box.x + box.width},${box.y + box.height / 2} ${box.x + box.width / 2},${box.y + box.height} ${box.x},${box.y + box.height / 2}`, fill, stroke, 'stroke-width': 1.4 }));
199
+ } else if (shape === 'ellipse' || shape === 'circle' || shape === 'actor') {
200
+ group.append(svgElement('ellipse', { cx: box.x + box.width / 2, cy: box.y + box.height / 2, rx: box.width / 2, ry: box.height / 2, fill, stroke, 'stroke-width': 1.4 }));
201
+ } else {
202
+ group.append(svgElement('rect', { x: box.x, y: box.y, width: box.width, height: box.height, rx: shape === 'cylinder' ? 16 : 9, fill, stroke, 'stroke-width': 1.4 }));
203
+ }
204
+ const maxChars = Math.max(10, Math.floor((box.width - 24) / 7));
205
+ const title = escapeText(data.label || node.id);
206
+ const subtitle = escapeText(data.subtitle || '');
207
+ group.append(svgElement('text', { x: box.x + box.width / 2, y: box.y + box.height / 2 - (subtitle ? 4 : -4), class: 'node-title', 'text-anchor': 'middle' }, title.length > maxChars ? `${title.slice(0, maxChars - 1)}…` : title));
208
+ if (subtitle) group.append(svgElement('text', { x: box.x + box.width / 2, y: box.y + box.height / 2 + 13, class: 'node-subtitle', 'text-anchor': 'middle' }, subtitle.length > maxChars + 10 ? `${subtitle.slice(0, maxChars + 9)}…` : subtitle));
209
+ svg.append(group);
210
+ }
211
+ canvas.replaceChildren(svg);
212
+ const visible = nodes.filter((node) => !node.data?.isGroup).length;
213
+ const groups = nodes.length - visible;
214
+ $('counts').textContent = `${visible} component${visible === 1 ? '' : 's'} · ${edges.length} connection${edges.length === 1 ? '' : 's'}${groups ? ` · ${groups} group${groups === 1 ? '' : 's'}` : ''}`;
215
+ const openUrl = graph.diagramUrl || graph.shareUrl;
216
+ const openLink = $('open-link');
217
+ if (openUrl && /^https:\/\//.test(openUrl)) {
218
+ openLink.href = openUrl;
219
+ openLink.hidden = false;
220
+ $('open-label').textContent = graph.shareUrl ? 'Open in ArchDraw' : 'Open diagram';
221
+ } else {
222
+ openLink.hidden = true;
223
+ }
224
+ const warnings = (graph.errors || []).filter((item) => typeof item === 'string');
225
+ $('warnings').hidden = warnings.length === 0;
226
+ $('warnings').textContent = warnings.slice(0, 3).join(' · ');
227
+ }
228
+
229
+ window.addEventListener('message', (event) => {
230
+ if (event.source !== window.parent || !event.data || typeof event.data !== 'object') return;
231
+ const message = event.data;
232
+ if (message.id && pending.has(message.id)) {
233
+ const waiter = pending.get(message.id);
234
+ clearTimeout(waiter.timeout);
235
+ pending.delete(message.id);
236
+ if (message.error) waiter.reject(new Error(message.error.message || 'The chat rejected the request.'));
237
+ else waiter.resolve(message.result || {});
238
+ return;
239
+ }
240
+ if (message.method === 'ui/notifications/tool-input') latestInput = message.params?.arguments || {};
241
+ if (message.method === 'ui/notifications/tool-result') {
242
+ const result = message.params?.structuredContent || message.params?.structured_content;
243
+ if (result) render(result);
244
+ }
245
+ if (message.method === 'ui/notifications/tool-cancelled') $('counts').textContent = 'Generation cancelled';
246
+ });
247
+
248
+ $('generate-form').addEventListener('submit', async (event) => {
249
+ event.preventDefault();
250
+ const description = $('prompt').value.trim();
251
+ if (!description) { $('status').textContent = 'Describe the diagram you want first.'; return; }
252
+ const button = $('generate');
253
+ button.disabled = true;
254
+ $('status').textContent = 'Sending your request to the chat…';
255
+ const publish = $('publish').checked;
256
+ const instruction = [
257
+ 'Create an architecture diagram in ArchDraw for the description below. Use the ArchDraw generate_diagram tool with Mermaid input and include the generated inline diagram in the response.',
258
+ publish ? 'Include both the ArchDraw preview (share) URL and editor URL from the result in your reply.' : 'Set publish:false — the user chose to keep it private, so no link is created.',
259
+ `Description: ${description}`,
260
+ ].join('\n\n');
261
+ try {
262
+ await request('ui/message', { role: 'user', content: { type: 'text', text: instruction } });
263
+ $('status').textContent = 'Request added to the chat. ArchDraw will show the generated preview there.';
264
+ $('prompt').value = '';
265
+ } catch (error) {
266
+ $('status').textContent = error instanceof Error ? error.message : 'Could not send the request. Use the chat composer instead.';
267
+ } finally {
268
+ button.disabled = false;
269
+ }
270
+ });
271
+
272
+ request('ui/initialize', {
273
+ appInfo: { name: 'ArchDraw diagram preview', version: '1.0.0' },
274
+ appCapabilities: { availableDisplayModes: ['inline', 'fullscreen'] },
275
+ protocolVersion: '2026-01-26',
276
+ }).then(() => notify('ui/notifications/initialized', {})).catch(() => {
277
+ $('status').textContent = 'Use the chat composer to ask ArchDraw for another diagram.';
278
+ });
279
+ })();
280
+ </script>
281
+ </body>
282
+ </html>
@@ -0,0 +1,4 @@
1
+ import { readFileSync } from 'node:fs';
2
+ export const DIAGRAM_WIDGET_URI = 'ui://archdraw/diagram-v1.html';
3
+ export const DIAGRAM_WIDGET_HTML = readFileSync(new URL('./diagram-widget.html', import.meta.url), 'utf8');
4
+ //# sourceMappingURL=diagram-widget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagram-widget.js","sourceRoot":"","sources":["../../src/ui/diagram-widget.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,MAAM,CAAC,MAAM,kBAAkB,GAAG,+BAA+B,CAAC;AAClE,MAAM,CAAC,MAAM,mBAAmB,GAAG,YAAY,CAAC,IAAI,GAAG,CAAC,uBAAuB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hiabhee/archdraw-mcp-server",
3
- "version": "1.0.2",
3
+ "version": "1.0.4",
4
4
  "description": "MCP server for ArchDraw architecture diagramming tool",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
@@ -14,7 +14,7 @@
14
14
  "access": "public"
15
15
  },
16
16
  "scripts": {
17
- "build": "tsc",
17
+ "build": "tsc && node scripts/copy-widget.mjs",
18
18
  "dev": "tsx src/index.ts",
19
19
  "start": "node dist/index.js",
20
20
  "test": "vitest run",
@@ -22,7 +22,6 @@
22
22
  },
23
23
  "dependencies": {
24
24
  "@modelcontextprotocol/sdk": "^1.0.8",
25
- "elkjs": "^0.11.1",
26
25
  "zod": "^3.23.8"
27
26
  },
28
27
  "devDependencies": {
@@ -34,6 +33,9 @@
34
33
  "engines": {
35
34
  "node": ">=18.0.0"
36
35
  },
36
+ "overrides": {
37
+ "esbuild": "^0.28.2"
38
+ },
37
39
  "keywords": [
38
40
  "mcp",
39
41
  "model-context-protocol",