fa-mcp-sdk 0.4.98 → 0.4.100

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.
@@ -129,6 +129,8 @@ Detailed fa-mcp-sdk docs are in `FA-MCP-SDK-DOC/`:
129
129
  | `06-utilities.md` | Error handling, logging, Consul |
130
130
  | `07-testing-and-operations.md` | Test clients (STDIO, HTTP, SSE, Streamable HTTP) |
131
131
  | `08-agent-tester-and-headless-api.md` | Agent Tester, Headless API, structured logging, automated testing |
132
+ | `09-database.md` | PostgreSQL sugar layer (`queryMAIN`, `execMAIN`, upserts, `mergeByBatch`), `pgvector`, secondary DBs |
133
+ | `10-mcp-apps.md` | Building / extending MCP Apps (UI-augmented tools) — protocol contract, SDK surface, patterns, pitfalls |
132
134
 
133
135
  ## Development and Testing Through Agent Tester
134
136
 
@@ -22,6 +22,7 @@ npm install fa-mcp-sdk
22
22
  | [07-testing-and-operations](07-testing-and-operations.md) | Test clients (STDIO, HTTP, SSE, Streamable HTTP) | Testing, deployment |
23
23
  | [08-agent-tester-and-headless-api](08-agent-tester-and-headless-api.md) | Agent Tester, Headless API, structured logging, automated testing, UI `data-testid` reference | Agent-driven tool development, CLI automation, UI E2E tests |
24
24
  | [09-database](09-database.md) | PostgreSQL sugar layer (`queryMAIN`, `execMAIN`, `getInsertSqlMAIN`, `getMergeSqlMAIN`, `mergeByBatch`), `pgvector`, secondary DBs | Database access, upserts, batching |
25
+ | [10-mcp-apps](10-mcp-apps.md) | Self-contained digest of the MCP Apps protocol + SDK pinned to `@modelcontextprotocol/ext-apps v1.7.2` (spec 2026-01-26): `ui://` resources, `_meta.ui`, JSON-RPC messages, `App` class, host context, patterns, pitfalls | Building / extending MCP Apps (UI-augmented tools) |
25
26
 
26
27
  ## Key Exports
27
28
 
@@ -27,7 +27,7 @@ await initMcpServer(serverData);
27
27
  ```typescript
28
28
  interface McpServerData {
29
29
  tools: Tool[] | (() => Promise<Tool[]>); // Tool definitions
30
- toolHandler: <T = TToolHandlerResponse>(params: IToolHandlerParams) => Promise<T>;
30
+ toolHandler: <T = unknown>(params: IToolHandlerParams) => Promise<TToolHandlerResponse<T>>;
31
31
  agentBrief: string; // Brief description
32
32
  agentPrompt: string; // System prompt
33
33
  customPrompts?: IPromptData[]; // Additional prompts
@@ -0,0 +1,885 @@
1
+ # MCP Apps (10) — Self-Contained Protocol + SDK Digest
2
+
3
+ | Field | Value |
4
+ |-----------------|-------|
5
+ | Pinned SDK | `@modelcontextprotocol/ext-apps` v1.7.2 |
6
+ | Spec revision | 2026-01-26 (SEP-1865, status: Stable) |
7
+ | Upstream commit | `9a37ad7` |
8
+ | Regenerated | 2026-05-16 |
9
+ | Draft state | A non-empty `specification/draft/apps.mdx` exists upstream — it adds a "Metadata Location" |
10
+ | | clarification (resource-level `_meta.ui` may also appear in `resources/list`, content-item value |
11
+ | | takes precedence) and softens two sandbox-proxy MUSTs to SHOULDs. The digest documents the Stable |
12
+ | | revision; treat the draft as informative only. |
13
+
14
+ This file is the single self-contained reference for MCP Apps (UI-augmented MCP tools) used by
15
+ `fa-mcp-sdk`-based servers. It supersedes routine lookups into the upstream repository. Use the
16
+ Reference Index at the end of the document when source-of-truth is needed.
17
+
18
+ ## 2. What & Why
19
+
20
+ An **MCP App** is a Tool + UI Resource pair linked through tool `_meta.ui.resourceUri`. The tool's
21
+ `content` text array MUST still exist so that hosts without MCP Apps support continue to work — the
22
+ UI is a progressive enhancement, never a replacement. The host fetches the referenced `ui://` HTML
23
+ resource, renders it inside a sandboxed iframe (the **View**), and proxies bidirectional JSON-RPC
24
+ between View and MCP server. The View can call server tools, read resources, request display-mode
25
+ changes, send chat messages, or push model-context updates.
26
+
27
+ This solves three problems with text-only MCP responses: (a) lack of standardized UI delivery across
28
+ hosts (MCP-UI vs. OpenAI Apps SDK fragmentation), (b) inconsistent security models for embedded
29
+ content, and (c) inability to ship rich interactive surfaces (dashboards, players, forms, maps)
30
+ through the protocol.
31
+
32
+ ## 3. Architecture
33
+
34
+ Three entities cooperate over two transports:
35
+
36
+ ```
37
+ +-----------+ MCP (HTTP/SSE/stdio) +--------+ postMessage / JSON-RPC +-----------------+
38
+ | MCP |<------------------------>| Host |<-------------------------->| View (iframe) |
39
+ | Server | | | | = App instance |
40
+ +-----------+ +--------+ +-----------------+
41
+ ```
42
+
43
+ - **Server** — a standard MCP server that registers tools whose `_meta.ui.resourceUri` points to a
44
+ `ui://` HTML resource. Built with `registerAppTool` / `registerAppResource` from
45
+ `@modelcontextprotocol/ext-apps/server`.
46
+ - **Host** — the chat client (Claude Desktop, Claude.ai, VS Code Insiders, Goose, etc.). Connects
47
+ to the server, renders the View, and proxies all View→server messages.
48
+ - **View** — the HTML/JS payload returned by the UI resource. Acts as an MCP client over
49
+ `PostMessageTransport`. Built around the `App` class from `@modelcontextprotocol/ext-apps`.
50
+
51
+ **Sandbox model.** Desktop/native hosts render the View directly in a sandboxed iframe. Web hosts
52
+ MUST insert an intermediate Sandbox Proxy iframe on a different origin from the host
53
+ (`allow-scripts allow-same-origin`); the proxy receives the raw HTML over
54
+ `ui/notifications/sandbox-resource-ready`, applies CSP/permissions, and transparently forwards every
55
+ non-`ui/notifications/sandbox-*` message between the inner View and the Host. The Host MUST NOT send
56
+ any message to the View before receiving `ui/notifications/initialized`.
57
+
58
+ **Capability negotiation.** The host advertises MCP Apps support via the
59
+ `io.modelcontextprotocol/ui` extension key in `initialize.capabilities.extensions`, declaring at
60
+ minimum the supported `mimeTypes` (`text/html;profile=mcp-app`). Servers SHOULD call
61
+ `getUiCapability(clientCapabilities)` before registering UI-enabled tools and MUST provide a
62
+ text-only fallback for hosts that don't support the extension.
63
+
64
+ ## 4. Lifecycle
65
+
66
+ All four sequence diagrams below are reproduced verbatim from
67
+ `specification/2026-01-26/apps.mdx` § Lifecycle. They are the canonical message-order contract — do
68
+ not paraphrase, derive, or fold.
69
+
70
+ ### 4.1 Connection & Discovery
71
+
72
+ ```mermaid
73
+ sequenceDiagram
74
+ participant H as Host
75
+ participant S as MCP Server
76
+
77
+ autonumber
78
+ S -->> H: resources/list (includes ui:// resources)
79
+ S -->> H: tools/list (includes tools with _meta.ui metadata)
80
+ ```
81
+
82
+ ### 4.2 UI Initialization (Desktop/Native Hosts)
83
+
84
+ ```mermaid
85
+ sequenceDiagram
86
+ participant H as Host
87
+ participant UI as View (iframe)
88
+ participant P as Sandbox Proxy
89
+ participant S as MCP Server
90
+
91
+ autonumber
92
+ par UI Tool call
93
+ H ->> S: tools/call to Tool with _meta.ui metadata
94
+ and UI initialization
95
+ alt Desktop/Native hosts
96
+ H ->> H: Render View in an iframe (HTML from the ui:// resource)
97
+ else Web hosts
98
+ H ->> H: Render Sandbox Proxy in an iframe (different origin)
99
+ P ->> H: ui/notifications/sandbox-proxy-ready
100
+ H -->> P: ui/notifications/sandbox-resource-ready (HTML content)
101
+ P -> P: Render inner iframe with HTML
102
+
103
+ end
104
+ UI ->> H: ui/initialize
105
+ H -->> UI: McpUiInitializeResult (e.g., host-context, capabilities, etc.)
106
+ UI ->> H: ui/notifications/initialized
107
+ opt Stream Tool input to UI
108
+ H -->> UI: ui/notifications/tool-input-partial (0..n)
109
+ end
110
+ H -->> UI: ui/notifications/tool-input (complete)
111
+ end
112
+ alt Tool complete
113
+ H -->> UI: ui/notifications/tool-result
114
+ else Tool cancelled
115
+ H -->> UI: ui/notifications/tool-cancelled
116
+ end
117
+ ```
118
+
119
+ Note: when the View is rendered inside a sandbox, the sandbox transparently passes messages between
120
+ the View and the Host, except for messages named `ui/notifications/sandbox-*`.
121
+
122
+ ### 4.3 Interactive Phase
123
+
124
+ ```mermaid
125
+ sequenceDiagram
126
+ actor U as User / Agent
127
+ participant H as Host
128
+ participant UI as View (iframe)
129
+ participant S as MCP Server
130
+ loop Interactive phase
131
+ U ->> UI: interaction (e.g., click)
132
+ alt Tool call
133
+ UI ->> H: tools/call
134
+ H ->> S: tools/call
135
+ opt Stream Tool input to UI
136
+ H -->> UI: ui/notifications/tool-input-partial (0..n)
137
+ end
138
+ H -->> UI: ui/notifications/tool-input (complete)
139
+ H-->>UI: ui/notifications/tool-result
140
+ else Message
141
+ UI ->> H: ui/message
142
+ H -->> UI: ui/message response
143
+ H -->> H: Process message and follow up
144
+ else Context update
145
+ UI ->> H: ui/update-model-context
146
+ H ->> H: Store model context (overwrite existing)
147
+ H -->> UI: ui/update-model-context response
148
+ else Log
149
+ UI ->> H: notifications/message
150
+ H ->> H: Record log for debugging/telemetry
151
+ else Resource read
152
+ UI ->> H: resources/read
153
+ H ->> S: resources/read
154
+ S --> H: resources/read response
155
+ H --> UI: resources/read response
156
+ end
157
+ opt View notifications
158
+ UI ->> H: notifications (e.g., ui/notifications/size-changed)
159
+ end
160
+ opt Host notifications
161
+ H ->> UI: notifications (e.g., ui/notifications/host-context-changed)
162
+ end
163
+ end
164
+ ```
165
+
166
+ ### 4.4 Cleanup
167
+
168
+ ```mermaid
169
+ sequenceDiagram
170
+ participant H as Host
171
+ participant UI as View (iframe)
172
+ H ->> UI: ui/resource-teardown
173
+ UI --> UI: Graceful termination
174
+ UI -->> H: ui/resource-teardown response
175
+ H -x H: Tear down iframe and listeners
176
+ ```
177
+
178
+ Cleanup may be triggered at any point after initialization (user navigates away, host re-allocates
179
+ the slot, app calls `requestTeardown`). The host SHOULD wait for the View's response before
180
+ unmounting to prevent data loss.
181
+
182
+ ## 5. Protocol Contract
183
+
184
+ Normative passages reuse the spec's MUST / SHOULD / MAY wording.
185
+
186
+ ### 5.1 `ui://` URI scheme + `RESOURCE_MIME_TYPE`
187
+
188
+ - Every UI resource URI MUST start with `ui://`.
189
+ - The `mimeType` of a UI resource MUST be `text/html;profile=mcp-app`
190
+ (exported as `RESOURCE_MIME_TYPE` from `@modelcontextprotocol/ext-apps/server`). Other MIME types
191
+ are reserved for future extensions.
192
+ - Resource content MUST be returned via either `text` (string) or `blob` (base64) and MUST be a
193
+ valid HTML5 document.
194
+ - Hosts MAY prefetch and cache UI resource content. Since UI resources are primarily discovered
195
+ through tool metadata, servers MAY omit UI-only resources from `resources/list` and
196
+ `notifications/resources/list_changed`.
197
+
198
+ ### 5.2 `_meta.ui` location matrix
199
+
200
+ | Where | Key | What it carries |
201
+ |-------|-----|------------------|
202
+ | Tool definition | `tool._meta.ui` | `McpUiToolMeta`: `resourceUri`, `visibility: ("model"\|"app")[]` |
203
+ | Tool definition (legacy) | `tool._meta["ui/resourceUri"]` | Deprecated flat form; SDK auto-mirrors with the |
204
+ | | | nested form for backward compatibility |
205
+ | Resource entry | `resource._meta.ui` | `McpUiResourceMeta` listing-level default (`csp`, `permissions`, |
206
+ | | | `domain`, `prefersBorder`) |
207
+ | Resource content item | `contents[i]._meta.ui` | `McpUiResourceMeta` — takes precedence over the listing-level |
208
+ | | | value when both are present |
209
+
210
+ Servers SHOULD place `_meta.ui` on the content item in `resources/read` for dynamic per-response
211
+ metadata; the listing-level `_meta.ui` is for static, reviewable defaults.
212
+
213
+ `visibility` defaults to `["model", "app"]`. `"model"`-only tools never appear in app-issued
214
+ `tools/call`s; `"app"`-only tools are excluded from the agent's `tools/list` and are callable only
215
+ through `app.callServerTool(...)` from the View. Cross-server tool calls are always blocked for
216
+ app-only tools.
217
+
218
+ ### 5.3 Capability negotiation
219
+
220
+ Host advertises support in the standard `initialize` capabilities envelope:
221
+
222
+ ```json
223
+ {
224
+ "capabilities": {
225
+ "extensions": {
226
+ "io.modelcontextprotocol/ui": { "mimeTypes": ["text/html;profile=mcp-app"] }
227
+ }
228
+ }
229
+ }
230
+ ```
231
+
232
+ Servers MUST use `getUiCapability(clientCapabilities)` (or equivalent) before registering UI-enabled
233
+ tools, and SHOULD register text-only fallback tool variants when the capability is absent. Tools
234
+ MUST return a meaningful `content[]` even when UI rendering is available.
235
+
236
+ ### 5.4 Content Security Policy
237
+
238
+ The host MUST construct CSP headers from `_meta.ui.csp`. If `_meta.ui.csp` is absent, the host MUST
239
+ apply the restrictive default:
240
+
241
+ ```
242
+ default-src 'none';
243
+ script-src 'self' 'unsafe-inline';
244
+ style-src 'self' 'unsafe-inline';
245
+ img-src 'self' data:;
246
+ media-src 'self' data:;
247
+ connect-src 'none';
248
+ ```
249
+
250
+ Hosts MAY further restrict but MUST NOT permit undeclared domains. `McpUiResourceCsp` fields map
251
+ directly to CSP directives:
252
+
253
+ | Field | Directive(s) | Default when omitted |
254
+ |-------|--------------|----------------------|
255
+ | `connectDomains[]` | `connect-src` | `'none'` (no fetch/XHR/WebSocket) |
256
+ | `resourceDomains[]` | `img-src`, `script-src`, `style-src`, `font-src`, `media-src` | `'self' data:` for media/img |
257
+ | `frameDomains[]` | `frame-src` | `'none'` |
258
+ | `baseUriDomains[]` | `base-uri` | `'self'` |
259
+
260
+ `_meta.ui.permissions` (`camera`, `microphone`, `geolocation`, `clipboardWrite`) maps to the
261
+ iframe's `allow` Permission-Policy attribute; hosts MAY honor or deny these. Apps SHOULD use JS
262
+ feature detection rather than assume a permission was granted.
263
+
264
+ `_meta.ui.domain` provides a stable sandbox origin for CORS allowlisting or OAuth callbacks. The
265
+ exact format is **host-dependent** — hosts publish their own subdomain conventions (Claude uses
266
+ `{hash}.claudemcpcontent.com`, OpenAI uses `www-{domain}-com.oaiusercontent.com`).
267
+
268
+ ### 5.5 Host ↔ View JSON-RPC messages
269
+
270
+ Lifecycle:
271
+
272
+ | Method | Direction | Kind | Purpose |
273
+ |--------|-----------|------|---------|
274
+ | `ui/initialize` | View → Host | Request | Handshake; carries `appInfo`, `appCapabilities`, `protocolVersion` |
275
+ | `ui/notifications/initialized` | View → Host | Notification | View signals readiness for tool input/result |
276
+ | `ping` | Either | Request | Connection health check |
277
+
278
+ Tool input/output (Host → View):
279
+
280
+ | Method | Kind | Notes |
281
+ |--------|------|-------|
282
+ | `ui/notifications/tool-input-partial` | Notification | MAY be sent 0..n times during agent streaming. Arguments |
283
+ | | | are healed JSON (unclosed brackets auto-closed). Views MAY |
284
+ | | | ignore; MUST NOT use for critical operations. |
285
+ | `ui/notifications/tool-input` | Notification | MUST be sent exactly once after `ui/initialize` completes and |
286
+ | | | before `ui/notifications/tool-result`. Carries complete |
287
+ | | | tool arguments. |
288
+ | `ui/notifications/tool-result` | Notification | MUST be sent when tool execution completes (if the View is |
289
+ | | | displayed). `params` is the standard `CallToolResult`. |
290
+ | `ui/notifications/tool-cancelled` | Notification | MUST be sent on cancellation (user, sampling error, |
291
+ | | | classifier intervention). `params: { reason: string }`. |
292
+
293
+ Host ↔ View runtime:
294
+
295
+ | Method | Direction | Kind | Notes |
296
+ |--------|-----------|------|-------|
297
+ | `tools/call` | View → Host (proxied to Server) | Request | Standard MCP. Issued via `App.callServerTool`. |
298
+ | `resources/read` | View → Host (proxied to Server) | Request | Standard MCP. |
299
+ | `resources/list` | View → Host (proxied to Server) | Request | Standard MCP. |
300
+ | `sampling/createMessage` | View → Host | Request | Standard MCP sampling, gated by `hostCapabilities.sampling`. |
301
+ | `notifications/message` | View → Host | Notification | Standard MCP log (debug/telemetry, not chat). |
302
+ | `ui/message` | View → Host | Request | Send `{ role, content }` to the conversation. Host SHOULD add |
303
+ | | | | to context, MAY ask for user consent. |
304
+ | `ui/update-model-context` | View → Host | Request | Replaces previous View-issued model context. Host MAY |
305
+ | | | | dedupe; only the last update before the next user turn |
306
+ | | | | reaches the model. |
307
+ | `ui/open-link` | View → Host | Request | Open URL in user's default browser. Host MAY deny. |
308
+ | `ui/request-display-mode` | View → Host | Request | Request switch to `"inline"\|"fullscreen"\|"pip"`. Result |
309
+ | | | | returns the actual mode (may differ from request). |
310
+ | `ui/notifications/size-changed` | View → Host | Notification | View reports current viewport size in px. SDK sends this |
311
+ | | | | automatically via `ResizeObserver` when `autoResize: true`. |
312
+ | `ui/notifications/host-context-changed` | Host → View | Notification | `Partial<HostContext>`; View MUST merge with current |
313
+ | | | | context. |
314
+ | `ui/resource-teardown` | Host → View | Request | Host MUST send before unmounting. Host SHOULD await the |
315
+ | | | | response to prevent data loss. |
316
+
317
+ Sandbox-proxy reserved (web hosts only):
318
+
319
+ | Method | Direction | Kind | Notes |
320
+ |--------|-----------|------|-------|
321
+ | `ui/notifications/sandbox-proxy-ready` | Proxy → Host | Notification | Proxy is alive and ready for HTML. |
322
+ | `ui/notifications/sandbox-resource-ready` | Host → Proxy | Notification | Carries the HTML payload plus inline `csp` / |
323
+ | | | | `permissions` for the inner iframe. |
324
+
325
+ SDK-only extensions (present in `@modelcontextprotocol/ext-apps` v1.7.2 but not yet promoted into
326
+ the Stable spec): `ui/download-file` (View → Host request for host-mediated file download) and
327
+ `ui/notifications/request-teardown` (View → Host notification asking the host to initiate teardown,
328
+ after which the host follows up with the standard `ui/resource-teardown` request). Hosts that
329
+ predate these messages MAY reject or ignore them; treat both as best-effort.
330
+
331
+ ### 5.6 Capability shapes
332
+
333
+ ```ts
334
+ interface McpUiAppCapabilities {
335
+ experimental?: {};
336
+ tools?: { listChanged?: boolean };
337
+ availableDisplayModes?: Array<"inline" | "fullscreen" | "pip">;
338
+ }
339
+
340
+ interface McpUiHostCapabilities {
341
+ experimental?: {};
342
+ openLinks?: {};
343
+ downloadFile?: {};
344
+ serverTools?: { listChanged?: boolean };
345
+ serverResources?: { listChanged?: boolean };
346
+ logging?: {};
347
+ sandbox?: {
348
+ permissions?: { camera?: {}; microphone?: {}; geolocation?: {}; clipboardWrite?: {} };
349
+ csp?: McpUiResourceCsp;
350
+ };
351
+ updateModelContext?: McpUiSupportedContentBlockModalities;
352
+ message?: McpUiSupportedContentBlockModalities;
353
+ sampling?: { tools?: {} };
354
+ }
355
+ ```
356
+
357
+ Views MUST declare every display mode they can render in `appCapabilities.availableDisplayModes`.
358
+ Hosts MUST NOT switch a View to a mode that is not declared, MUST return the resulting (possibly
359
+ unchanged) mode in `ui/request-display-mode` responses, and MAY decline mode requests that the View
360
+ did not declare.
361
+
362
+ ## 6. TypeScript SDK API
363
+
364
+ All snippets below assume:
365
+
366
+ ```ts
367
+ import { App, PostMessageTransport } from "@modelcontextprotocol/ext-apps";
368
+ import {
369
+ registerAppTool, registerAppResource, getUiCapability,
370
+ RESOURCE_MIME_TYPE, RESOURCE_URI_META_KEY,
371
+ } from "@modelcontextprotocol/ext-apps/server";
372
+ ```
373
+
374
+ ### 6.1 Server helpers
375
+
376
+ `registerAppTool(server, name, config, callback)` — wraps `server.registerTool` and normalizes
377
+ `_meta.ui.resourceUri` ↔ `_meta["ui/resourceUri"]` for backward compatibility. `config._meta.ui`
378
+ MAY contain `resourceUri` and `visibility: ("model"|"app")[]`.
379
+
380
+ ```ts
381
+ registerAppTool(
382
+ server,
383
+ "get-weather",
384
+ {
385
+ title: "Get Weather",
386
+ description: "Current weather with interactive dashboard",
387
+ inputSchema: { location: z.string() },
388
+ _meta: { ui: { resourceUri: "ui://weather/view.html" } },
389
+ },
390
+ async ({ location }) => {
391
+ const w = await fetchWeather(location);
392
+ return { content: [{ type: "text", text: JSON.stringify(w) }], structuredContent: w };
393
+ },
394
+ );
395
+ ```
396
+
397
+ `registerAppResource(server, name, uri, config, readCallback)` — defaults `mimeType` to
398
+ `RESOURCE_MIME_TYPE`. Put `_meta.ui.csp` / `_meta.ui.domain` / `_meta.ui.prefersBorder` on the
399
+ `contents[]` returned by `readCallback`, not in `config`.
400
+
401
+ ```ts
402
+ registerAppResource(
403
+ server,
404
+ "Weather View",
405
+ "ui://weather/view.html",
406
+ { description: "Interactive weather display" },
407
+ async () => ({
408
+ contents: [{
409
+ uri: "ui://weather/view.html",
410
+ mimeType: RESOURCE_MIME_TYPE,
411
+ text: await fs.readFile("dist/view.html", "utf-8"),
412
+ _meta: { ui: { csp: { connectDomains: ["https://api.openweathermap.org"] }, prefersBorder: true } },
413
+ }],
414
+ }),
415
+ );
416
+ ```
417
+
418
+ `getUiCapability(clientCapabilities)` returns the `McpUiClientCapabilities | undefined` payload from
419
+ the host's `extensions["io.modelcontextprotocol/ui"]`. Use it in `server.server.oninitialized` to
420
+ gate which tool variant to register.
421
+
422
+ `RESOURCE_MIME_TYPE === "text/html;profile=mcp-app"`. `RESOURCE_URI_META_KEY === "ui/resourceUri"`
423
+ (legacy flat key, prefer the nested `_meta.ui.resourceUri` form).
424
+
425
+ ### 6.2 `App` class (View side)
426
+
427
+ Constructor: `new App(appInfo, capabilities = {}, options = { autoResize: true })`.
428
+
429
+ `AppOptions`:
430
+
431
+ | Option | Default | Effect |
432
+ |--------|---------|--------|
433
+ | `autoResize` | `true` | Observes `<html>` / `<body>` and sends `ui/notifications/size-changed` automatically |
434
+ | `strict` | `false` | When `true`, calling host-bound methods before `connect()` resolves throws instead of |
435
+ | | | logging a `console.warn`. Will become the default in a future release. |
436
+ | `allowUnsafeEval` | `false` | When `false`, sets `z.config({ jitless: true })` so zod parsing works under the |
437
+ | | | spec's default CSP (which disallows `unsafe-eval`). |
438
+
439
+ Connection: `await app.connect(transport?, options?)`. Defaults to
440
+ `new PostMessageTransport(window.parent, window.parent)`. Performs `ui/initialize` →
441
+ `ui/notifications/initialized` handshake, caches host capabilities/info/context, and (if
442
+ `autoResize`) attaches the `ResizeObserver`. On failure the transport is closed and the error
443
+ re-thrown.
444
+
445
+ Outbound requests/notifications (host-bound; all assert that `connect()` has completed):
446
+
447
+ | Method | Sends | Returns |
448
+ |--------|-------|---------|
449
+ | `callServerTool(params, opts?)` | `tools/call` | `CallToolResult` (check `result.isError`) |
450
+ | `readServerResource(params, opts?)` | `resources/read` | `ReadResourceResult` |
451
+ | `listServerResources(params?, opts?)` | `resources/list` | `ListResourcesResult` |
452
+ | `createSamplingMessage(params, opts?)` | `sampling/createMessage` | `CreateMessageResult` (or `…WithTools`) |
453
+ | `sendMessage(params, opts?)` | `ui/message` | `McpUiMessageResult` |
454
+ | `updateModelContext(params, opts?)` | `ui/update-model-context` | `{}` |
455
+ | `openLink(params, opts?)` | `ui/open-link` | `{ isError?: true }` |
456
+ | `downloadFile(params, opts?)` | `ui/download-file` (SDK-only) | `{ isError?: true }` |
457
+ | `requestDisplayMode(params, opts?)` | `ui/request-display-mode` | `{ mode }` |
458
+ | `requestTeardown(params?)` | `ui/notifications/request-teardown` notification | — |
459
+ | `sendSizeChanged(params)` | `ui/notifications/size-changed` notification | — |
460
+ | `sendLog(params)` | `notifications/message` notification | — |
461
+ | `sendToolListChanged(params?)` | `notifications/tools/list_changed` notification | — |
462
+
463
+ Inspection: `getHostCapabilities()`, `getHostVersion()` (returns `Implementation`),
464
+ `getHostContext()` (auto-merged from `ui/notifications/host-context-changed`).
465
+
466
+ Host-driven event handlers. Register **before** `app.connect()` to avoid missing one-shot events
467
+ like `ui/notifications/tool-result`. The DOM-style `on*` setters work but are JSDoc-deprecated in
468
+ favor of `app.addEventListener(event, handler)` / `removeEventListener` for composition + cleanup.
469
+ `onteardown` and the tool-server handlers (`oncalltool`, `onlisttools`) remain regular request
470
+ handlers.
471
+
472
+ | Setter | Event name | Payload |
473
+ |--------|------------|---------|
474
+ | `app.ontoolinput` | `"toolinput"` | `McpUiToolInputNotification["params"]` |
475
+ | `app.ontoolinputpartial` | `"toolinputpartial"` | `McpUiToolInputPartialNotification["params"]` |
476
+ | `app.ontoolresult` | `"toolresult"` | `CallToolResult` (the spec's `ui/notifications/tool-result` params) |
477
+ | `app.ontoolcancelled` | `"toolcancelled"` | `{ reason: string }` |
478
+ | `app.onhostcontextchanged` | `"hostcontextchanged"` | `Partial<McpUiHostContext>` |
479
+ | `app.onteardown` | (request) `ui/resource-teardown` | Async `() => McpUiResourceTeardownResult` |
480
+ | `app.oncalltool` | (request) `tools/call` | App-as-tool-server handler |
481
+ | `app.onlisttools` | (request) `tools/list` | App-as-tool-server handler |
482
+
483
+ App-as-tool-server: `app.registerTool(name, config, callback)` declares View-exposed tools that the
484
+ host (or its LLM) may call into the iframe. Tools auto-register `capabilities.tools` when no value
485
+ is provided. Use `app.sendToolListChanged()` after dynamic enable/disable.
486
+
487
+ ### 6.3 `PostMessageTransport`
488
+
489
+ ```ts
490
+ // In a View:
491
+ const transport = new PostMessageTransport(window.parent, window.parent);
492
+ await app.connect(transport);
493
+
494
+ // In a Host:
495
+ const transport = new PostMessageTransport(iframe.contentWindow!, iframe.contentWindow!);
496
+ ```
497
+
498
+ `eventSource` is validated against `event.source` and is required for security — messages from
499
+ unknown windows are dropped silently. Outbound `postMessage` uses `"*"` as the target origin;
500
+ receivers MUST validate the source themselves. Non-JSON-RPC messages and JSON-RPC `2.0` messages
501
+ that fail `JSONRPCMessageSchema` validation are dropped / surfaced via `onerror`.
502
+
503
+ ### 6.4 Style helpers (framework-agnostic)
504
+
505
+ ```ts
506
+ import {
507
+ applyDocumentTheme, applyHostStyleVariables, applyHostFonts, getDocumentTheme,
508
+ } from "@modelcontextprotocol/ext-apps";
509
+
510
+ if (ctx.theme) applyDocumentTheme(ctx.theme); // sets data-theme + color-scheme
511
+ if (ctx.styles?.variables) applyHostStyleVariables(ctx.styles.variables); // sets CSS custom properties
512
+ if (ctx.styles?.css?.fonts) applyHostFonts(ctx.styles.css.fonts); // injects <style id="__mcp-host-fonts">
513
+ const current = getDocumentTheme(); // "light" | "dark"
514
+ ```
515
+
516
+ `applyHostFonts` is idempotent (no-op if `<style id="__mcp-host-fonts">` already exists). All three
517
+ SHOULD be called once on `connect()` *and* re-applied inside `onhostcontextchanged`.
518
+
519
+ ### 6.5 React hooks
520
+
521
+ ```ts
522
+ import {
523
+ useApp, useHostStyles, useHostStyleVariables, useHostFonts,
524
+ useDocumentTheme, useAutoResize,
525
+ } from "@modelcontextprotocol/ext-apps/react";
526
+ ```
527
+
528
+ | Hook | Signature | Notes |
529
+ |------|-----------|-------|
530
+ | `useApp(options)` | `{ appInfo, capabilities, onAppCreated?, autoResize?, strict? }` → `{ app, isConnected, error }` | Creates the |
531
+ | | | `App`, wires the |
532
+ | | | `PostMessageTransport` to `window.parent`, calls |
533
+ | | | `onAppCreated(app)` **before** `connect()`. Does |
534
+ | | | NOT re-run on options changes; does NOT close on |
535
+ | | | unmount (Strict-Mode safe). |
536
+ | `useHostStyles(app, initialContext?)` | composite | Combines `useHostStyleVariables` + `useHostFonts`. |
537
+ | `useHostStyleVariables(app, initialCtx?)` | applies vars + `applyDocumentTheme` on mount and on |
538
+ | | `hostcontextchanged` |
539
+ | `useHostFonts(app, initialContext?)` | injects host fonts on mount and on change |
540
+ | `useDocumentTheme()` | `() => McpUiTheme` | `MutationObserver` on `<html data-theme>` / `class`; re-renders on theme change |
541
+ | `useAutoResize(app, _ref?)` | only useful when the `App` was created with `autoResize: false`; otherwise redundant |
542
+
543
+ ## 7. Host Context (`McpUiHostContext`)
544
+
545
+ Every field is optional and stable per `viewUUID`. Views SHOULD treat missing fields as "unknown"
546
+ and degrade gracefully. The full schema (verbatim from `src/spec.types.ts`):
547
+
548
+ | Field | Type | Notes |
549
+ |-------|------|-------|
550
+ | `toolInfo` | `{ id?: RequestId, tool: Tool }` | Metadata about the `tools/call` that opened the View |
551
+ | `theme` | `"light" \| "dark"` | Apply via `applyDocumentTheme(theme)` |
552
+ | `styles.variables` | `Record<McpUiStyleVariableKey, string \| undefined>` | See § 7.1 |
553
+ | `styles.css.fonts` | `string` | `@font-face` and/or `@import` rules; apply via `applyHostFonts` |
554
+ | `displayMode` | `"inline" \| "fullscreen" \| "pip"` | Current mode; update via `requestDisplayMode` |
555
+ | `availableDisplayModes` | `("inline"\|"fullscreen"\|"pip")[]` | Modes the host can grant |
556
+ | `containerDimensions` | `({ height } \| { maxHeight? }) & ({ width } \| { maxWidth? })` | Fixed vs flexible per axis |
557
+ | `locale` | `string` | BCP 47, e.g. `"en-US"` |
558
+ | `timeZone` | `string` | IANA, e.g. `"America/New_York"` |
559
+ | `userAgent` | `string` | Host application identifier |
560
+ | `platform` | `"web" \| "desktop" \| "mobile"` | For responsive decisions |
561
+ | `deviceCapabilities` | `{ touch?: boolean; hover?: boolean }` | Input affordances |
562
+ | `safeAreaInsets` | `{ top, right, bottom, left }` | Mobile notches / system overlays in px |
563
+
564
+ `McpUiHostContext` also has an open `[key: string]: unknown` index signature for forward
565
+ compatibility — unrecognized fields MUST be preserved verbatim when the View merges partial updates.
566
+
567
+ ### 7.1 Standardized CSS custom properties (`McpUiStyleVariableKey`)
568
+
569
+ Exact list from `src/spec.types.ts` — Views SHOULD define `:root { --…: fallback; }` defaults for
570
+ every variable they consume to keep layouts intact when the host omits values.
571
+
572
+ - Background: `--color-background-{primary, secondary, tertiary, inverse, ghost, info, danger,
573
+ success, warning, disabled}`
574
+ - Text: `--color-text-{primary, secondary, tertiary, inverse, info, danger, success, warning,
575
+ disabled, ghost}`
576
+ - Border: `--color-border-{primary, secondary, tertiary, inverse, ghost, info, danger, success,
577
+ warning, disabled}`
578
+ - Ring: `--color-ring-{primary, secondary, inverse, info, danger, success, warning}`
579
+ - Typography (family): `--font-sans`, `--font-mono`
580
+ - Typography (weight): `--font-weight-{normal, medium, semibold, bold}`
581
+ - Typography (text sizes): `--font-text-{xs, sm, md, lg}-size`
582
+ - Typography (heading sizes): `--font-heading-{xs, sm, md, lg, xl, 2xl, 3xl}-size`
583
+ - Typography (text line heights): `--font-text-{xs, sm, md, lg}-line-height`
584
+ - Typography (heading line heights): `--font-heading-{xs, sm, md, lg, xl, 2xl, 3xl}-line-height`
585
+ - Border radius: `--border-radius-{xs, sm, md, lg, xl, full}`
586
+ - Border width: `--border-width-regular`
587
+ - Shadow: `--shadow-{hairline, sm, md, lg}`
588
+
589
+ Hosts SHOULD use `light-dark(…)` for theme-aware color values so that switching `data-theme` flips
590
+ colors without a re-render. Spacing variables are intentionally excluded from the standard — pass
591
+ spacing values inside the View itself.
592
+
593
+ ## 8. Patterns / Recipes
594
+
595
+ Patterns below are aligned with upstream `docs/patterns.md`. Code is illustrative; production apps
596
+ should add error handling and feature detection.
597
+
598
+ ### 8.1 App-only tools (`visibility: ["app"]`)
599
+
600
+ Hide LLM-irrelevant interactions (refresh buttons, mutations) from the agent's tool list while
601
+ keeping them callable from the View via `app.callServerTool`.
602
+
603
+ ```ts
604
+ registerAppTool(
605
+ server, "update-quantity",
606
+ { description: "Update cart line", inputSchema: { itemId: z.string(), quantity: z.number() },
607
+ _meta: { ui: { resourceUri: "ui://shop/cart.html", visibility: ["app"] } } },
608
+ async ({ itemId, quantity }) => ({
609
+ content: [{ type: "text", text: JSON.stringify(await updateCartItem(itemId, quantity)) }],
610
+ }),
611
+ );
612
+ ```
613
+
614
+ ### 8.2 Streaming partial input
615
+
616
+ ```ts
617
+ app.ontoolinputpartial = (params) => preview.textContent = (params.arguments?.code as string) ?? "";
618
+ app.ontoolinput = (params) => render(params.arguments?.code as string);
619
+ ```
620
+
621
+ Partial JSON is "healed" (unclosed brackets auto-closed). Use only for preview UI; final state MUST
622
+ come from `ontoolinput`.
623
+
624
+ ### 8.3 Polling with teardown cleanup
625
+
626
+ ```ts
627
+ let id: number | null = null;
628
+ const poll = async () => updateUI((await app.callServerTool({ name: "poll-data", arguments: {} })).structuredContent);
629
+ const start = () => { if (id == null) { poll(); id = window.setInterval(poll, 2000); } };
630
+ const stop = () => { if (id != null) { clearInterval(id); id = null; } };
631
+ app.onteardown = async () => { stop(); return {}; };
632
+ ```
633
+
634
+ ### 8.4 Pause expensive work when offscreen
635
+
636
+ ```ts
637
+ const obs = new IntersectionObserver(([e]) => e.isIntersecting ? animation.play() : animation.pause());
638
+ obs.observe(container);
639
+ app.onteardown = async () => { obs.disconnect(); animation.pause(); return {}; };
640
+ ```
641
+
642
+ ### 8.5 Chunked binary delivery (host size-limit workaround)
643
+
644
+ Register an app-only `read_data_bytes(id, offset, byteCount)` tool that returns
645
+ `{ bytes: base64, offset, byteCount, totalBytes, hasMore }` in `structuredContent`; the View loops
646
+ until `hasMore === false`, decoding each chunk into a `Uint8Array`.
647
+
648
+ ### 8.6 Binary resources (e.g. video)
649
+
650
+ Server returns `{ contents: [{ uri, mimeType, blob: base64 }] }`. View reads with
651
+ `app.readServerResource({ uri })`, decodes to a data URL or `URL.createObjectURL(new Blob([bytes]))`.
652
+
653
+ ### 8.7 View-state persistence
654
+
655
+ Server tool result includes `_meta.viewUUID: randomUUID()`. View receives it in `ontoolresult` and
656
+ uses it as a `localStorage` key. For user-effort state (bookmarks, annotations), prefer an app-only
657
+ server tool keyed by the same `viewUUID`.
658
+
659
+ ### 8.8 Model context updates (`updateModelContext`)
660
+
661
+ Use YAML frontmatter so the model can index structured fields without losing prose context.
662
+
663
+ ```ts
664
+ await app.updateModelContext({
665
+ content: [{ type: "text", text:
666
+ `---\nitem-count: ${items.length}\ntotal-cost: ${total}\n---\n\nCart contents:\n${items.map(i => `- ${i}`).join("\n")}` }],
667
+ });
668
+ ```
669
+
670
+ Only the **last** update before the next user message reaches the model. Identical updates may be
671
+ deduped.
672
+
673
+ ### 8.9 Large follow-up via context + brief trigger
674
+
675
+ ```ts
676
+ await app.updateModelContext({ content: [{ type: "text", text: longTranscriptMarkdown }] });
677
+ await app.sendMessage({ role: "user", content: [{ type: "text", text: "Summarize the key points" }] });
678
+ ```
679
+
680
+ ### 8.10 Fullscreen toggle
681
+
682
+ ```ts
683
+ const ctx = app.getHostContext();
684
+ const target = ctx?.displayMode === "inline" ? "fullscreen" : "inline";
685
+ if (ctx?.availableDisplayModes?.includes(target)) {
686
+ const { mode } = await app.requestDisplayMode({ mode: target });
687
+ container.classList.toggle("fullscreen", mode === "fullscreen");
688
+ }
689
+ ```
690
+
691
+ ### 8.11 Reporting runtime degradation to the model
692
+
693
+ ```ts
694
+ try { await navigator.mediaDevices.getUserMedia({ audio: true }); }
695
+ catch { await app.updateModelContext({ content: [{ type: "text", text: "Error: transcription unavailable" }] }); }
696
+ ```
697
+
698
+ ### 8.12 CSP for external resources
699
+
700
+ Set `_meta.ui.csp.connectDomains` for fetch/WebSocket targets and `_meta.ui.resourceDomains` for
701
+ CDN-hosted scripts/styles/fonts/images. Include `localhost` origins during dev. Set
702
+ `_meta.ui.domain` only when an upstream API requires a stable origin for its CORS allowlist.
703
+
704
+ ### 8.13 Debug logging
705
+
706
+ ```ts
707
+ app.sendLog({ level: "info", logger: "WeatherApp", data: "Refreshed forecast" });
708
+ ```
709
+
710
+ `basic-host` surfaces these in the console panel; production hosts MAY route them to telemetry.
711
+
712
+ ## 9. Authorization
713
+
714
+ Apps inherit MCP's OAuth model (see the upstream MCP spec § Basic / Authorization). Two patterns
715
+ apply, and they compose:
716
+
717
+ **Per-server auth.** Every request to `/mcp` carries a Bearer token; the host runs the OAuth flow
718
+ once on connect. Use when every tool is sensitive. The MCP TypeScript SDK's `mcpAuthRouter` +
719
+ `ProxyOAuthServerProvider` handles this without custom code.
720
+
721
+ **Per-tool auth.** The HTTP endpoint inspects the raw JSON-RPC body, returns HTTP `401` with a
722
+ `WWW-Authenticate: Bearer resource_metadata="…"` header when a `tools/call` targets a protected
723
+ tool without a valid token, and lets all other tools pass through. The host discovers the
724
+ authorization server via the Protected Resource Metadata URL, completes the OAuth flow, and retries
725
+ with the acquired token. Tool handlers MUST still verify `authInfo` as defence-in-depth.
726
+
727
+ **UI-initiated step-up.** Mix public + protected tools in the same app: the View loads via a
728
+ public tool, then a button calls `app.callServerTool({ name: "protected_tool", arguments: {…} })`.
729
+ The first call returns `401`, the host runs OAuth transparently, and the retry returns the
730
+ protected data. This keeps the initial paint fast while gating sensitive operations.
731
+
732
+ OAuth discovery:
733
+
734
+ - `/.well-known/oauth-protected-resource` — served by `mcpAuthRouter`; identifies the resource
735
+ server and authorization server.
736
+ - `/.well-known/oauth-authorization-server` — advertise endpoints, scopes, and (preferred)
737
+ `client_id_metadata_document_supported: true` to use Client ID Metadata Documents instead of
738
+ Dynamic Client Registration.
739
+
740
+ Verify access tokens as JWTs against the IdP's JWKS endpoint (`createRemoteJWKSet(...)`,
741
+ `jwtVerify(token, JWKS, { issuer: IDP_DOMAIN })`) and confirm the token was issued for this MCP
742
+ server.
743
+
744
+ ## 10. Testing
745
+
746
+ `basic-host` is the canonical local test harness:
747
+
748
+ ```bash
749
+ git clone https://github.com/modelcontextprotocol/ext-apps.git && cd ext-apps
750
+ npm install && cd examples/basic-host
751
+ SERVERS='["http://localhost:3001/mcp"]' npm start
752
+ # open http://localhost:8080
753
+ ```
754
+
755
+ The UI exposes panels for **Tool Input**, **Tool Result**, **Messages** (View → model), and
756
+ **Model Context**. Browser devtools show `[HOST]`-prefixed logs for server connections, tool calls,
757
+ App initialization, and View→host requests. `app.sendLog(...)` writes into the same stream.
758
+
759
+ Verification checklist for any new app:
760
+
761
+ 1. With MCP Apps unsupported in the host, the tool's text `content[]` still renders sensibly.
762
+ 2. With MCP Apps supported, the View mounts and `ontoolresult` fires within the same tool call.
763
+ 3. `ui/notifications/host-context-changed` is honored (toggle theme, resize, change display mode).
764
+ 4. CSP works for every external origin the View touches (check devtools Network/Console for blocks).
765
+ 5. `app.onteardown` runs to completion before the iframe unmounts (cleanup observers, timers).
766
+
767
+ For remote hosts that can't reach `localhost`, expose the server with
768
+ `npx cloudflared tunnel --url http://localhost:3001` and register the generated `*.trycloudflare.com`
769
+ URL (plus the MCP path) as a remote MCP server in Claude.ai / VS Code Insiders / Goose.
770
+
771
+ ## 11. Common Pitfalls
772
+
773
+ - **Handlers registered after `app.connect()`.** One-shot events (`toolinput`, `toolinputpartial`,
774
+ `toolresult`, `toolcancelled`) MAY have already fired. Assign every `on*` setter (or call
775
+ `addEventListener`) before `app.connect()`. With `strict: true` this throws; the default warns.
776
+ - **Forgotten text `content[]` fallback.** Tools that only return UI break in hosts without the
777
+ MCP Apps extension. Always include a meaningful `content[]` — text fallback is normative.
778
+ - **Misplaced `_meta.ui.csp` / `_meta.ui.domain`.** They belong on the resource **content item**
779
+ (`contents[i]._meta.ui`) returned by the resource callback, not in the `registerAppResource`
780
+ config object. The listing-level `_meta.ui` on the resource entry is only a static fallback.
781
+ - **Hardcoded theme colors.** Use `var(--color-…)` with `light-dark(…)` (or per-`data-theme`
782
+ selectors) and define `:root { --color-…: fallback; }` defaults for every variable consumed.
783
+ - **Missing bundler for single-file delivery.** The View must ship as one self-contained HTML
784
+ payload — there is no same-origin server inside the sandbox. `vite-plugin-singlefile` (or
785
+ equivalent) inlines JS/CSS into the HTML.
786
+ - **Calling host-bound methods before the handshake completes.** `callServerTool`, `sendMessage`,
787
+ `updateModelContext`, `openLink`, etc. all assert `_initializedSent === true`. With
788
+ `strict: false` they warn and proceed (and may race); with `strict: true` they throw. Await
789
+ `app.connect()` or move work into `ontoolresult`.
790
+ - **Version numbers from memory.** The exact name of a hook, request, or notification can change
791
+ across SDK versions. Cross-check against the Reference Index when in doubt instead of relying on
792
+ recall.
793
+
794
+ ## 12. Examples — When to Consult Which
795
+
796
+ Curated map of upstream `examples/` (pinned to v1.7.2) by use case. The Recipes in § 8 cover
797
+ isolated patterns; this section points at full working servers when you need to see how a pattern
798
+ composes inside a real project (build config, file layout, framework integration, packaging).
799
+
800
+ ### 12.1 Smallest end-to-end skeleton
801
+
802
+ | When | Example | What it shows |
803
+ |------|---------|---------------|
804
+ | First-time scaffolding; need the minimum working tool + UI resource pair | [`examples/quickstart/`](https://github.com/modelcontextprotocol/ext-apps/tree/v1.7.2/examples/quickstart) | Single `get-time` tool, vanilla TS View, `vite-plugin-singlefile` bundling, Streamable HTTP + stdio transports |
805
+ | Reference host for local testing (not a production host) | [`examples/basic-host/`](https://github.com/modelcontextprotocol/ext-apps/tree/v1.7.2/examples/basic-host) | How a host wires `PostMessageTransport`, sandbox proxy, tool-input/result pipe; UI panels for Tool Input, Tool Result, Messages, Model Context |
806
+
807
+ ### 12.2 Mixed tool patterns (App + plain + app-only in one server)
808
+
809
+ Use these when the new server has more than one tool and you want to see how App-augmented tools
810
+ coexist with plain agent-facing tools and UI-only mutations.
811
+
812
+ | Example | Tool composition |
813
+ |---------|------------------|
814
+ | [`examples/map-server/`](https://github.com/modelcontextprotocol/ext-apps/tree/v1.7.2/examples/map-server) | `show-map` (App tool) + `geocode` (plain tool) |
815
+ | [`examples/pdf-server/`](https://github.com/modelcontextprotocol/ext-apps/tree/v1.7.2/examples/pdf-server) | `display_pdf` (App tool) + `list_pdfs` (plain tool) + `read_pdf_bytes` (app-only chunked) |
816
+ | [`examples/system-monitor-server/`](https://github.com/modelcontextprotocol/ext-apps/tree/v1.7.2/examples/system-monitor-server) | `get-system-info` (App tool) + `poll-system-stats` (app-only polling) |
817
+
818
+ ### 12.3 Per-framework starter templates
819
+
820
+ Single-tool minimal servers that demonstrate idiomatic View code for each major frontend framework.
821
+ Pick the one matching your target framework, then layer patterns from § 8 on top.
822
+
823
+ | Framework | Example |
824
+ |-----------|---------|
825
+ | Vanilla TypeScript | [`examples/basic-server-vanillajs/`](https://github.com/modelcontextprotocol/ext-apps/tree/v1.7.2/examples/basic-server-vanillajs) |
826
+ | React | [`examples/basic-server-react/`](https://github.com/modelcontextprotocol/ext-apps/tree/v1.7.2/examples/basic-server-react) |
827
+ | Vue | [`examples/basic-server-vue/`](https://github.com/modelcontextprotocol/ext-apps/tree/v1.7.2/examples/basic-server-vue) |
828
+ | Svelte | [`examples/basic-server-svelte/`](https://github.com/modelcontextprotocol/ext-apps/tree/v1.7.2/examples/basic-server-svelte) |
829
+ | Preact | [`examples/basic-server-preact/`](https://github.com/modelcontextprotocol/ext-apps/tree/v1.7.2/examples/basic-server-preact) |
830
+ | Solid | [`examples/basic-server-solid/`](https://github.com/modelcontextprotocol/ext-apps/tree/v1.7.2/examples/basic-server-solid) |
831
+
832
+ ### 12.4 Domain references — pick by use case
833
+
834
+ When the View needs a non-trivial pattern (visualization, streaming, audio, browser API), consult
835
+ the matching domain server for working code.
836
+
837
+ | Domain | Example | What it shows |
838
+ |--------|---------|---------------|
839
+ | Charts / dashboards | [`scenario-modeler-server/`](https://github.com/modelcontextprotocol/ext-apps/tree/v1.7.2/examples/scenario-modeler-server) | Chart.js with structured React (`hooks/`, `lib/`, `components/`); multi-scenario comparison |
840
+ | Analytics drill-down | [`cohort-heatmap-server/`](https://github.com/modelcontextprotocol/ext-apps/tree/v1.7.2/examples/cohort-heatmap-server) | Heatmap with hover tooltips and click drill-down (React) |
841
+ | Scatter / bubble + filtering | [`customer-segmentation-server/`](https://github.com/modelcontextprotocol/ext-apps/tree/v1.7.2/examples/customer-segmentation-server) | Segment clustering, metric switching, click-to-detail customer panel |
842
+ | Interactive numeric input | [`budget-allocator-server/`](https://github.com/modelcontextprotocol/ext-apps/tree/v1.7.2/examples/budget-allocator-server) | Sliders / direct edit with real-time chart updates and over-budget validation |
843
+ | 3D visualization | [`threejs-server/`](https://github.com/modelcontextprotocol/ext-apps/tree/v1.7.2/examples/threejs-server) | Three.js + streaming tool input into canvas, OrbitControls, post-processing |
844
+ | WebGL / shaders | [`shadertoy-server/`](https://github.com/modelcontextprotocol/ext-apps/tree/v1.7.2/examples/shadertoy-server) | GLSL live compilation, fullscreen mode, `vendor/` pattern for custom JS libs |
845
+ | Graph visualization | [`wiki-explorer-server/`](https://github.com/modelcontextprotocol/ext-apps/tree/v1.7.2/examples/wiki-explorer-server) | 3D force-directed graph (`force-graph`), web scraping with `cheerio` |
846
+ | Audio / music notation | [`sheet-music-server/`](https://github.com/modelcontextprotocol/ext-apps/tree/v1.7.2/examples/sheet-music-server) | ABC notation → SVG render + MIDI synthesis (`abcjs`) |
847
+ | Streaming + audio | [`say-server/`](https://github.com/modelcontextprotocol/ext-apps/tree/v1.7.2/examples/say-server) | `ontoolinputpartial` + async audio queue + multi-view lock (Python FastMCP) |
848
+ | Browser APIs | [`transcript-server/`](https://github.com/modelcontextprotocol/ext-apps/tree/v1.7.2/examples/transcript-server) | Web Speech API for live transcription |
849
+ | Binary / media resources | [`video-resource-server/`](https://github.com/modelcontextprotocol/ext-apps/tree/v1.7.2/examples/video-resource-server) | Base64 video blobs, `ResourceTemplate`, large-payload limits |
850
+ | Image generation | [`qr-server/`](https://github.com/modelcontextprotocol/ext-apps/tree/v1.7.2/examples/qr-server) | Minimal Python (`uv`) server generating customizable QR codes |
851
+ | SDK surface reference | [`debug-server/`](https://github.com/modelcontextprotocol/ext-apps/tree/v1.7.2/examples/debug-server) | All content types in one place — PNG/WAV blobs, structured output, stateful counter, resource downloads |
852
+ | Full SDK API exercise | [`integration-server/`](https://github.com/modelcontextprotocol/ext-apps/tree/v1.7.2/examples/integration-server) | E2E test reference — exercises `callServerTool`, `sendMessage`, `sendLog`, `openLink` together |
853
+
854
+ ## 13. Reference Index
855
+
856
+ All upstream links are pinned to `v1.7.2` (the same tag recorded in the digest header). When this
857
+ digest is regenerated against a newer release the URLs are rewritten in lockstep — the version is a
858
+ single source of truth. Use these links to fetch the exact code corresponding to this digest when
859
+ the digest itself does not answer a specific question.
860
+
861
+ | Aspect | Upstream source (pinned to v1.7.2) | Why look here |
862
+ |--------|------------------------------------|---------------|
863
+ | Wire protocol (normative) | [`specification/2026-01-26/apps.mdx`](https://github.com/modelcontextprotocol/ext-apps/blob/v1.7.2/specification/2026-01-26/apps.mdx) | MUST / SHOULD / MAY contract |
864
+ | Lifecycle diagrams | [`apps.mdx` § Lifecycle](https://github.com/modelcontextprotocol/ext-apps/blob/v1.7.2/specification/2026-01-26/apps.mdx#lifecycle) | Canonical message order (verbatim mermaid) |
865
+ | Draft delta tracking | [`specification/draft/apps.mdx`](https://github.com/modelcontextprotocol/ext-apps/blob/v1.7.2/specification/draft/apps.mdx) | Pre-stable additions (metadata-location clarification, sandbox MUST → SHOULD softening) |
866
+ | `App` class + handlers | [`src/app.ts`](https://github.com/modelcontextprotocol/ext-apps/blob/v1.7.2/src/app.ts) | Constructor, every `on*` setter, every host-bound method |
867
+ | Server helpers | [`src/server/index.ts`](https://github.com/modelcontextprotocol/ext-apps/blob/v1.7.2/src/server/index.ts) | `registerAppTool`, `registerAppResource`, `getUiCapability`, `RESOURCE_MIME_TYPE`, `RESOURCE_URI_META_KEY`, `EXTENSION_ID` |
868
+ | Type-level contract | [`src/spec.types.ts`](https://github.com/modelcontextprotocol/ext-apps/blob/v1.7.2/src/spec.types.ts) | `McpUiHostContext`, `McpUiHostCapabilities`, `McpUiAppCapabilities`, `McpUiResourceCsp`, `McpUiResourceMeta`, `McpUiToolMeta`, `McpUiStyleVariableKey`, all message schemas |
869
+ | Cross-cutting types | [`src/types.ts`](https://github.com/modelcontextprotocol/ext-apps/blob/v1.7.2/src/types.ts) | `AppRequest`, `AppNotification`, `AppResult`, `AppEventMap` re-exports |
870
+ | Style helpers | [`src/styles.ts`](https://github.com/modelcontextprotocol/ext-apps/blob/v1.7.2/src/styles.ts) | `applyDocumentTheme`, `applyHostStyleVariables`, `applyHostFonts`, `getDocumentTheme` |
871
+ | Transport | [`src/message-transport.ts`](https://github.com/modelcontextprotocol/ext-apps/blob/v1.7.2/src/message-transport.ts) | `PostMessageTransport` source validation + dropped-message rules |
872
+ | React `useApp` | [`src/react/useApp.tsx`](https://github.com/modelcontextprotocol/ext-apps/blob/v1.7.2/src/react/useApp.tsx) | `UseAppOptions`, `AppState`, mount/connect semantics |
873
+ | React style hooks | [`src/react/useHostStyles.ts`](https://github.com/modelcontextprotocol/ext-apps/blob/v1.7.2/src/react/useHostStyles.ts) | `useHostStyles`, `useHostStyleVariables`, `useHostFonts` |
874
+ | React theme hook | [`src/react/useDocumentTheme.ts`](https://github.com/modelcontextprotocol/ext-apps/blob/v1.7.2/src/react/useDocumentTheme.ts) | `MutationObserver`-driven theme tracking |
875
+ | React auto-resize | [`src/react/useAutoResize.ts`](https://github.com/modelcontextprotocol/ext-apps/blob/v1.7.2/src/react/useAutoResize.ts) | Only needed when `App` was created with `autoResize: false` |
876
+ | Pattern catalog | [`docs/patterns.md`](https://github.com/modelcontextprotocol/ext-apps/blob/v1.7.2/docs/patterns.md) | Authoritative recipes |
877
+ | CSP / CORS rules | [`docs/csp-cors.md`](https://github.com/modelcontextprotocol/ext-apps/blob/v1.7.2/docs/csp-cors.md) | Where keys go (`contents[]`, not config) and stable-origin guidance |
878
+ | Authorization flows | [`docs/authorization.md`](https://github.com/modelcontextprotocol/ext-apps/blob/v1.7.2/docs/authorization.md) | Per-server, per-tool, UI-initiated step-up; OAuth discovery |
879
+ | Testing harness | [`docs/testing-mcp-apps.md`](https://github.com/modelcontextprotocol/ext-apps/blob/v1.7.2/docs/testing-mcp-apps.md) | `basic-host` workflow, panels, `sendLog`, `cloudflared` |
880
+ | Quickstart skeleton | [`docs/quickstart.md`](https://github.com/modelcontextprotocol/ext-apps/blob/v1.7.2/docs/quickstart.md) + [`examples/quickstart/`](https://github.com/modelcontextprotocol/ext-apps/tree/v1.7.2/examples/quickstart) | Smallest end-to-end server + View |
881
+ | Mixed tool servers | [`map-server/`](https://github.com/modelcontextprotocol/ext-apps/tree/v1.7.2/examples/map-server), [`pdf-server/`](https://github.com/modelcontextprotocol/ext-apps/tree/v1.7.2/examples/pdf-server), [`system-monitor-server/`](https://github.com/modelcontextprotocol/ext-apps/tree/v1.7.2/examples/system-monitor-server) | App tool + plain tool + app-only tool combinations |
882
+ | Framework variants | [`vanillajs`](https://github.com/modelcontextprotocol/ext-apps/tree/v1.7.2/examples/basic-server-vanillajs), [`react`](https://github.com/modelcontextprotocol/ext-apps/tree/v1.7.2/examples/basic-server-react), [`vue`](https://github.com/modelcontextprotocol/ext-apps/tree/v1.7.2/examples/basic-server-vue), [`svelte`](https://github.com/modelcontextprotocol/ext-apps/tree/v1.7.2/examples/basic-server-svelte), [`preact`](https://github.com/modelcontextprotocol/ext-apps/tree/v1.7.2/examples/basic-server-preact), [`solid`](https://github.com/modelcontextprotocol/ext-apps/tree/v1.7.2/examples/basic-server-solid) | Minimal per-framework implementations |
883
+ | Domain examples | [`scenario-modeler-server`](https://github.com/modelcontextprotocol/ext-apps/tree/v1.7.2/examples/scenario-modeler-server), [`cohort-heatmap-server`](https://github.com/modelcontextprotocol/ext-apps/tree/v1.7.2/examples/cohort-heatmap-server), [`threejs-server`](https://github.com/modelcontextprotocol/ext-apps/tree/v1.7.2/examples/threejs-server), [`shadertoy-server`](https://github.com/modelcontextprotocol/ext-apps/tree/v1.7.2/examples/shadertoy-server), [`wiki-explorer-server`](https://github.com/modelcontextprotocol/ext-apps/tree/v1.7.2/examples/wiki-explorer-server), [`sheet-music-server`](https://github.com/modelcontextprotocol/ext-apps/tree/v1.7.2/examples/sheet-music-server), [`say-server`](https://github.com/modelcontextprotocol/ext-apps/tree/v1.7.2/examples/say-server), [`transcript-server`](https://github.com/modelcontextprotocol/ext-apps/tree/v1.7.2/examples/transcript-server), [`video-resource-server`](https://github.com/modelcontextprotocol/ext-apps/tree/v1.7.2/examples/video-resource-server), [`debug-server`](https://github.com/modelcontextprotocol/ext-apps/tree/v1.7.2/examples/debug-server) | Domain-specific working code per use case |
884
+ | All examples (root) | [`examples/`](https://github.com/modelcontextprotocol/ext-apps/tree/v1.7.2/examples) | Browse the full set |
885
+ | Repo root @ pinned tag | [`v1.7.2`](https://github.com/modelcontextprotocol/ext-apps/tree/v1.7.2) (commit `9a37ad7`) | Anything not listed above |
@@ -54,7 +54,7 @@
54
54
  "dependencies": {
55
55
  "@modelcontextprotocol/sdk": "^1.29.0",
56
56
  "dotenv": "^17.4.1",
57
- "fa-mcp-sdk": "^0.4.98"
57
+ "fa-mcp-sdk": "^0.4.100"
58
58
  },
59
59
  "devDependencies": {
60
60
  "@types/express": "^5.0.6",
@@ -105,7 +105,7 @@ export interface IGetPromptRequest {
105
105
  */
106
106
  export interface McpServerData {
107
107
  tools: Tool[] | ((args: ITransportContext) => Promise<Tool[]>);
108
- toolHandler: <T = TToolHandlerResponse>(params: IToolHandlerParams) => Promise<T>;
108
+ toolHandler: <T = unknown>(params: IToolHandlerParams) => Promise<TToolHandlerResponse<T>>;
109
109
  agentBrief: string;
110
110
  agentPrompt: string;
111
111
  customPrompts?: IPromptData[] | ((args: ITransportContext) => Promise<IPromptData[]>);
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/_types_/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/_types_/types.ts"],"names":[],"mappings":"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"}
@@ -27,7 +27,7 @@ export function createMcpServer() {
27
27
  // Handler for tool execution
28
28
  server.setRequestHandler(CallToolRequestSchema, async (request) => {
29
29
  const { toolHandler } = getProjectData();
30
- return await toolHandler({ ...request.params, ...stdioArgs });
30
+ return (await toolHandler({ ...request.params, ...stdioArgs }));
31
31
  });
32
32
  // Handler for listing available prompts
33
33
  server.setRequestHandler(ListPromptsRequestSchema, async () => getPromptsList(stdioArgs));
@@ -1 +1 @@
1
- {"version":3,"file":"create-mcp-server.js","sourceRoot":"","sources":["../../../src/core/mcp/create-mcp-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,oCAAoC,CAAC;AAG5C,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAE/D;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB;QACE,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,OAAO,EAAE,SAAS,CAAC,OAAO;KAC3B,EACD;QACE,YAAY,EAAE;YACZ,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,EAAE;YACX,SAAS,EAAE,EAAE;SACd;KACF,CACF,CAAC;IAEF,MAAM,SAAS,GAAG,EAAE,SAAS,EAAE,OAAgB,EAAE,CAAC;IAElD,sCAAsC;IACtC,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,CAAC;QACxC,OAAO,EAAE,KAAK,EAAE,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,6BAA6B;IAC7B,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAChE,MAAM,EAAE,WAAW,EAAE,GAAG,cAAc,EAAE,CAAC;QACzC,OAAO,MAAM,WAAW,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,wCAAwC;IACxC,MAAM,CAAC,iBAAiB,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC;IAE1F,qCAAqC;IACrC,MAAM,CAAC,iBAAiB,CACtB,sBAAsB;IACtB,aAAa;IACb,KAAK,EAAE,OAA0B,EAAE,EAAE,CAAC,MAAM,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,CAC1E,CAAC;IAEF,0CAA0C;IAC1C,MAAM,CAAC,iBAAiB,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;IAE9F,uCAAuC;IACvC,MAAM,CAAC,iBAAiB,CAAC,yBAAyB,EAAE,KAAK,EAAE,OAA6B,EAAE,EAAE;QAC1F,OAAO,CAAC,MAAM,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,CAAQ,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"create-mcp-server.js","sourceRoot":"","sources":["../../../src/core/mcp/create-mcp-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,oCAAoC,CAAC;AAG5C,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAE/D;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB;QACE,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,OAAO,EAAE,SAAS,CAAC,OAAO;KAC3B,EACD;QACE,YAAY,EAAE;YACZ,KAAK,EAAE,EAAE;YACT,OAAO,EAAE,EAAE;YACX,SAAS,EAAE,EAAE;SACd;KACF,CACF,CAAC;IAEF,MAAM,SAAS,GAAG,EAAE,SAAS,EAAE,OAAgB,EAAE,CAAC;IAElD,sCAAsC;IACtC,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,CAAC;QACxC,OAAO,EAAE,KAAK,EAAE,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,6BAA6B;IAC7B,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAChE,MAAM,EAAE,WAAW,EAAE,GAAG,cAAc,EAAE,CAAC;QACzC,OAAO,CAAC,MAAM,WAAW,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC,CAAQ,CAAC;IACzE,CAAC,CAAC,CAAC;IAEH,wCAAwC;IACxC,MAAM,CAAC,iBAAiB,CAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC;IAE1F,qCAAqC;IACrC,MAAM,CAAC,iBAAiB,CACtB,sBAAsB;IACtB,aAAa;IACb,KAAK,EAAE,OAA0B,EAAE,EAAE,CAAC,MAAM,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,CAC1E,CAAC;IAEF,0CAA0C;IAC1C,MAAM,CAAC,iBAAiB,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;IAE9F,uCAAuC;IACvC,MAAM,CAAC,iBAAiB,CAAC,yBAAyB,EAAE,KAAK,EAAE,OAA6B,EAAE,EAAE;QAC1F,OAAO,CAAC,MAAM,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,CAAQ,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -269,12 +269,12 @@ export async function startHttpServer() {
269
269
  await handleRateLimit(rateLimiter, toolCallClientId, 'unknown', `SSE tool call | tool: ${request.params.name}`);
270
270
  // Execute the tool call with preserved headers and payload from SSE connection establishment
271
271
  const { toolHandler } = getProjectData();
272
- return await toolHandler({
272
+ return (await toolHandler({
273
273
  ...request.params,
274
274
  headers: preservedHeaders, // Use headers from when SSE connection was established
275
275
  payload: mcpAuthPayload, // Use auth payload from when SSE connection was established
276
276
  transport: 'sse',
277
- });
277
+ }));
278
278
  });
279
279
  return sseServer;
280
280
  }
@@ -1 +1 @@
1
- {"version":3,"file":"server-http.js","sourceRoot":"","sources":["../../../src/core/web/server-http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server-http.js","sourceRoot":"","sources":["../../../src/core/web/server-http.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "fa-mcp-sdk",
3
3
  "productName": "FA MCP SDK",
4
- "version": "0.4.98",
4
+ "version": "0.4.100",
5
5
  "description": "Core infrastructure and templates for building Model Context Protocol (MCP) servers with TypeScript",
6
6
  "type": "module",
7
7
  "main": "dist/core/index.js",