@unovis/mcp 1.7.0-mcp.2 → 1.7.0

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.
Files changed (40) hide show
  1. package/dist/codegen/index.js +23 -8
  2. package/dist/codegen/index.js.map +1 -1
  3. package/dist/recipes/bar.d.ts +1 -1
  4. package/dist/recipes/bar.js +4 -1
  5. package/dist/recipes/bar.js.map +1 -1
  6. package/dist/recipes/shared.js +1 -1
  7. package/dist/recipes/shared.js.map +1 -1
  8. package/dist/render/materialize.js +25 -8
  9. package/dist/render/materialize.js.map +1 -1
  10. package/dist/render/spec-schema.d.ts +3 -3
  11. package/dist/render/spec-schema.js +2 -2
  12. package/dist/render/spec-schema.js.map +1 -1
  13. package/dist/render/spec.d.ts +9 -4
  14. package/dist/render/spec.js +8 -3
  15. package/dist/render/spec.js.map +1 -1
  16. package/dist/server.js +12 -3
  17. package/dist/server.js.map +1 -1
  18. package/dist/tools/register.d.ts +11 -1
  19. package/dist/tools/register.js +70 -12
  20. package/dist/tools/register.js.map +1 -1
  21. package/dist/widget/bundle.js +423 -426
  22. package/dist/widget/bundle.meta.json +2 -2
  23. package/dist/widget/bundle.standard.js +215 -218
  24. package/dist/widget/entry.js +79 -2
  25. package/dist/widget/entry.js.map +1 -1
  26. package/dist/widget/events.js +3 -1
  27. package/dist/widget/events.js.map +1 -1
  28. package/dist/widget/unpack.js +1 -1
  29. package/dist/widget/unpack.js.map +1 -1
  30. package/docs/README.md +1 -1
  31. package/docs/architecture.md +12 -89
  32. package/docs/chart-spec.md +15 -12
  33. package/docs/interactive.md +24 -12
  34. package/docs/output-types.md +8 -9
  35. package/docs/tools.md +1 -1
  36. package/docs/troubleshooting.md +13 -44
  37. package/docs/webview.md +4 -6
  38. package/package.json +5 -4
  39. package/schema/{chart-spec.v1.baseline.json → chart-spec.v0.1.baseline.json} +5 -5
  40. package/schema/{chart-spec.v1.json → chart-spec.v0.1.json} +5 -5
@@ -7,8 +7,13 @@ import { recipes } from '../recipes/index.js';
7
7
  import { renderChart, resolveMapMarkers, ChartInputError } from '../render/renderer.js';
8
8
  import { buildChartDocument } from '../html/document.js';
9
9
  import { generateCode, formatGeneratedFiles } from '../codegen/index.js';
10
- /** MCP UI resource the interactive output binds to (registered in server.ts) */
10
+ /** MCP Apps resource the interactive output binds to (registered in server.ts) */
11
11
  export const WIDGET_URI = 'ui://unovis/chart';
12
+ /** MCP Apps extension (SEP-1865, io.modelcontextprotocol/ui) wire constants.
13
+ * Pinned by tests; keep in sync with the extension spec rather than importing
14
+ * @modelcontextprotocol/ext-apps, whose react peer deps we don't need. */
15
+ export const APPS_MIME_TYPE = 'text/html;profile=mcp-app';
16
+ export const APPS_EXTENSION_ID = 'io.modelcontextprotocol/ui';
12
17
  const textResult = (text, isError = false) => ({ content: [{ type: 'text', text }], ...(isError ? { isError: true } : {}) });
13
18
  /** Map data lives behind a `{ $unovisMap }` marker that only the Node renderer
14
19
  * resolves — the browser widget has no map bundles, so bake it into the spec */
@@ -31,17 +36,29 @@ export function refuseWrite(outputPath, writeDir) {
31
36
  }
32
37
  return undefined;
33
38
  }
34
- async function runRecipe(recipe, input, writeDir) {
39
+ /** In an MCP Apps host, every declared tool call renders the widget iframe —
40
+ * so every result must carry the spec, or the frame sits empty next to the
41
+ * answer. Gated on the client capability to keep non-Apps responses lean
42
+ * (the spec embeds the full dataset). */
43
+ async function appsResult(result, spec, appsHost) {
44
+ if (!appsHost)
45
+ return result;
46
+ return {
47
+ ...result,
48
+ structuredContent: { spec: (await specForBrowser(spec)) },
49
+ };
50
+ }
51
+ async function runRecipe(recipe, input, writeDir, appsHost = false) {
35
52
  try {
36
53
  const spec = recipe.toSpec(input);
37
54
  if (input.outputType === 'config') {
38
- return textResult(JSON.stringify(spec, null, 2));
55
+ return appsResult(textResult(JSON.stringify(spec, null, 2)), spec, appsHost);
39
56
  }
40
57
  // Code: emit source for the chosen wrapper. Uses the unresolved spec so
41
58
  // map data stays an import rather than an inlined payload.
42
59
  if (input.outputType === 'code') {
43
60
  const files = generateCode(spec, input.framework ?? 'ts');
44
- return textResult(formatGeneratedFiles(files));
61
+ return appsResult(textResult(formatGeneratedFiles(files)), spec, appsHost);
45
62
  }
46
63
  // Interactive: hand the spec to a UI-capable client, which renders it with
47
64
  // the widget resource. Static content stays in the transcript as a summary.
@@ -50,6 +67,8 @@ async function runRecipe(recipe, input, writeDir) {
50
67
  return {
51
68
  content: [{ type: 'text', text: `Interactive chart: ${chartSummary(spec)}` }],
52
69
  structuredContent: { spec: browserSpec },
70
+ // Result-level template link kept for pre-MCP-Apps hosts; official
71
+ // hosts key off the tool-level _meta.ui declaration instead
53
72
  _meta: { 'openai/outputTemplate': WIDGET_URI },
54
73
  };
55
74
  }
@@ -77,8 +96,8 @@ async function runRecipe(recipe, input, writeDir) {
77
96
  const target = outputPath ?? join(mkdtempSync(join(fallbackDir, 'unovis-chart-')), 'chart.html');
78
97
  mkdirSync(dirname(target), { recursive: true });
79
98
  writeFileSync(target, html);
80
- return textResult(`Interactive chart saved to ${target} — open it in a browser for tooltips, ` +
81
- `crosshair and hover highlighting. ${chartSummary(spec)}`);
99
+ return appsResult(textResult(`Interactive chart saved to ${target} — open it in a browser for tooltips, ` +
100
+ `crosshair and hover highlighting. ${chartSummary(spec)}`), spec, appsHost);
82
101
  }
83
102
  const result = await renderChart(spec);
84
103
  const warningsNote = result.warnings.length ? ` (warnings: ${result.warnings.join('; ')})` : '';
@@ -91,21 +110,21 @@ async function runRecipe(recipe, input, writeDir) {
91
110
  if (outputPath) {
92
111
  mkdirSync(dirname(outputPath), { recursive: true });
93
112
  writeFileSync(outputPath, png);
94
- return textResult(`Chart saved to ${outputPath} (${result.width}×${result.height} at ${input.scale ?? 2}x)${warningsNote}`);
113
+ return appsResult(textResult(`Chart saved to ${outputPath} (${result.width}×${result.height} at ${input.scale ?? 2}x)${warningsNote}`), spec, appsHost);
95
114
  }
96
- return {
115
+ return appsResult({
97
116
  content: [
98
117
  { type: 'image', data: png.toString('base64'), mimeType: 'image/png' },
99
118
  ...(warningsNote ? [{ type: 'text', text: warningsNote.trim() }] : []),
100
119
  ],
101
- };
120
+ }, spec, appsHost);
102
121
  }
103
122
  if (outputPath) {
104
123
  mkdirSync(dirname(outputPath), { recursive: true });
105
124
  writeFileSync(outputPath, `<?xml version="1.0" encoding="UTF-8"?>\n${result.svg}`);
106
- return textResult(`Chart saved to ${outputPath} (${result.width}×${result.height})${warningsNote}`);
125
+ return appsResult(textResult(`Chart saved to ${outputPath} (${result.width}×${result.height})${warningsNote}`), spec, appsHost);
107
126
  }
108
- return textResult(result.svg + (result.warnings.length ? `\n<!-- warnings: ${result.warnings.join('; ')} -->` : ''));
127
+ return appsResult(textResult(result.svg + (result.warnings.length ? `\n<!-- warnings: ${result.warnings.join('; ')} -->` : '')), spec, appsHost);
109
128
  }
110
129
  catch (e) {
111
130
  if (e instanceof ChartInputError) {
@@ -119,6 +138,42 @@ export function activeRecipes(filter = {}) {
119
138
  const enabled = filter.enabledTools?.length ? new Set(filter.enabledTools) : undefined;
120
139
  return recipes.filter(r => !disabled.has(r.name) && (!enabled || enabled.has(r.name)));
121
140
  }
141
+ /** Connections whose client advertised the MCP Apps extension.
142
+ *
143
+ * The SDK's ClientCapabilities schema predates SEP-1724, so it strips the
144
+ * `extensions` key during initialize — getClientCapabilities() can never see
145
+ * it (verified end-to-end). Until the SDK learns the field, the raw
146
+ * initialize message is sniffed at the transport seam; the schema path below
147
+ * takes over automatically once it stops returning undefined. */
148
+ const appsClients = new WeakSet();
149
+ /** Intercept a transport's onmessage assignment to sniff
150
+ * `capabilities.extensions` from the raw initialize request. Must run BEFORE
151
+ * connect — with an in-memory transport the initialize can arrive in the same
152
+ * microtask the connection is established in. */
153
+ export function sniffAppsCapability(server, transport) {
154
+ let assigned;
155
+ Object.defineProperty(transport, 'onmessage', {
156
+ configurable: true,
157
+ enumerable: true,
158
+ get: () => assigned,
159
+ set: (handler) => {
160
+ assigned = handler && ((...args) => {
161
+ const message = args[0];
162
+ if (message?.method === 'initialize' && message.params?.capabilities?.extensions?.[APPS_EXTENSION_ID]) {
163
+ appsClients.add(server);
164
+ }
165
+ handler.apply(transport, args);
166
+ });
167
+ },
168
+ });
169
+ }
170
+ /** Did the connected client advertise the MCP Apps extension capability? */
171
+ function appsCapableClient(server) {
172
+ if (appsClients.has(server))
173
+ return true;
174
+ const capabilities = server.server.getClientCapabilities();
175
+ return Boolean(capabilities?.extensions?.[APPS_EXTENSION_ID]);
176
+ }
122
177
  export function registerTools(server, filter = {}) {
123
178
  for (const recipe of activeRecipes(filter)) {
124
179
  server.registerTool(recipe.name, {
@@ -129,9 +184,12 @@ export function registerTools(server, filter = {}) {
129
184
  readOnlyHint: false, // outputPath can write a file
130
185
  openWorldHint: false, // fully local, no network
131
186
  },
187
+ // MCP Apps: the template is declared on the tool, ahead of time, so
188
+ // hosts can prefetch, cache and security-review it before any call
189
+ _meta: { ui: { resourceUri: WIDGET_URI } },
132
190
  },
133
191
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
134
- async (args) => runRecipe(recipe, args, filter.writeDir));
192
+ async (args) => runRecipe(recipe, args, filter.writeDir, appsCapableClient(server)));
135
193
  }
136
194
  server.registerTool('get_unovis_info', {
137
195
  title: 'Unovis info',
@@ -1 +1 @@
1
- {"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/tools/register.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/tools/register.ts"],"names":[],"mappings":"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"}