@grackle-ai/mcp 0.110.3 → 0.112.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.
- package/README.md +25 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp-server.d.ts +10 -0
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/mcp-server.js +80 -6
- package/dist/mcp-server.js.map +1 -1
- package/dist/resource-registry.d.ts +42 -0
- package/dist/resource-registry.d.ts.map +1 -0
- package/dist/resource-registry.js +30 -0
- package/dist/resource-registry.js.map +1 -0
- package/dist/resources/hello-widget.d.ts +29 -0
- package/dist/resources/hello-widget.d.ts.map +1 -0
- package/dist/resources/hello-widget.js +77 -0
- package/dist/resources/hello-widget.js.map +1 -0
- package/dist/resources/index.d.ts +9 -0
- package/dist/resources/index.d.ts.map +1 -0
- package/dist/resources/index.js +15 -0
- package/dist/resources/index.js.map +1 -0
- package/dist/tool-registry.d.ts +6 -0
- package/dist/tool-registry.d.ts.map +1 -1
- package/dist/tool-registry.js.map +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +2 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/widget.d.ts +8 -0
- package/dist/tools/widget.d.ts.map +1 -0
- package/dist/tools/widget.js +32 -0
- package/dist/tools/widget.js.map +1 -0
- package/dist/ui-app.d.ts +36 -0
- package/dist/ui-app.d.ts.map +1 -0
- package/dist/ui-app.js +32 -0
- package/dist/ui-app.js.map +1 -0
- package/dist/widget-asset-server.d.ts +10 -0
- package/dist/widget-asset-server.d.ts.map +1 -0
- package/dist/widget-asset-server.js +41 -0
- package/dist/widget-asset-server.js.map +1 -0
- package/package.json +5 -4
package/README.md
CHANGED
|
@@ -254,6 +254,31 @@ Query aggregated token usage and cost data.
|
|
|
254
254
|
|------|-------------|------------|
|
|
255
255
|
| `usage_get` | Get token usage and cost for a session, task, task tree, workspace, or environment. | `scope` (`session` \| `task` \| `task_tree` \| `workspace` \| `environment`), `id` (string) |
|
|
256
256
|
|
|
257
|
+
### Widget Tools
|
|
258
|
+
|
|
259
|
+
[MCP Apps](#mcp-apps-ui-widgets) UI widgets. These tools return data **and** reference a `ui://` HTML resource that capable hosts render inline. They appear in `tools/list` **only** when the connected host advertises the `io.modelcontextprotocol/ui` extension.
|
|
260
|
+
|
|
261
|
+
| Tool | Description | Parameters |
|
|
262
|
+
|------|-------------|------------|
|
|
263
|
+
| `show_hello_widget` | Display the Grackle hello widget — a minimal interactive MCP Apps UI that echoes the provided message. | `message` (string, optional) |
|
|
264
|
+
|
|
265
|
+
---
|
|
266
|
+
|
|
267
|
+
## MCP Apps (UI widgets)
|
|
268
|
+
|
|
269
|
+
Grackle's MCP server is a conformant **MCP Apps** ([SEP-1865](https://modelcontextprotocol.io/)) provider. Hosts that support MCP Apps can fetch and render interactive HTML widgets inline.
|
|
270
|
+
|
|
271
|
+
How it works:
|
|
272
|
+
|
|
273
|
+
- **Capability negotiation** — A host advertises support during `initialize` via the `io.modelcontextprotocol/ui` extension (with `mimeTypes` including `text/html;profile=mcp-app`). The server detects this and only lists [Widget Tools](#widget-tools) to capable hosts; other clients see the data-only tools.
|
|
274
|
+
- **Resources** — The server declares the `resources` capability and implements `resources/list` and `resources/read`. Widget UIs are served as `ui://…` resources with MIME `text/html;profile=mcp-app`.
|
|
275
|
+
- **Tool ↔ resource link** — A widget tool carries `_meta.ui.resourceUri` (and the legacy `_meta["ui/resourceUri"]`) pointing at its `ui://` resource. The host reads the resource and renders it, passing the tool's input and result into the widget.
|
|
276
|
+
- **Widget assets** — The widget's browser scripts are served (unauthenticated, since they are non-sensitive static JS) from `/widgets/<name>/…` on the MCP server's HTTP origin.
|
|
277
|
+
|
|
278
|
+
> **Note:** the widget's scripts load from the MCP server's origin, so a host whose sandbox CSP forbids cross-origin scripts won't render them. Grackle's own chat-pane host handles this; that integration is tracked separately.
|
|
279
|
+
|
|
280
|
+
The current built-in widget is `show_hello_widget` (resource `ui://grackle/hello-widget`). Try it with the [MCP Inspector](https://github.com/modelcontextprotocol/inspector) or Claude Desktop.
|
|
281
|
+
|
|
257
282
|
---
|
|
258
283
|
|
|
259
284
|
## Scoped Access
|
package/dist/index.d.ts
CHANGED
|
@@ -3,6 +3,9 @@ export type { McpServerOptions } from "./mcp-server.js";
|
|
|
3
3
|
export { createToolRegistry } from "./tools/index.js";
|
|
4
4
|
export { ToolRegistry } from "./tool-registry.js";
|
|
5
5
|
export type { ToolDefinition, ToolResult } from "./tool-registry.js";
|
|
6
|
+
export { createResourceRegistry } from "./resources/index.js";
|
|
7
|
+
export { ResourceRegistry } from "./resource-registry.js";
|
|
8
|
+
export type { ResourceDefinition, ResourceReadResult } from "./resource-registry.js";
|
|
6
9
|
export type { AuthContext, OAuthTokenClaims } from "@grackle-ai/auth";
|
|
7
10
|
export { createScopedToken, revokeTask, verifyScopedToken, createOAuthAccessToken, verifyOAuthAccessToken, OAUTH_ACCESS_TOKEN_TTL_MS, OAUTH_REFRESH_TOKEN_TTL_MS, authenticateMcpRequest, } from "@grackle-ai/auth";
|
|
8
11
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAGrF,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EACL,iBAAiB,EAAE,UAAU,EAAE,iBAAiB,EAChD,sBAAsB,EAAE,sBAAsB,EAC9C,yBAAyB,EAAE,0BAA0B,EACrD,sBAAsB,GACvB,MAAM,kBAAkB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export { createMcpServer } from "./mcp-server.js";
|
|
2
2
|
export { createToolRegistry } from "./tools/index.js";
|
|
3
3
|
export { ToolRegistry } from "./tool-registry.js";
|
|
4
|
+
export { createResourceRegistry } from "./resources/index.js";
|
|
5
|
+
export { ResourceRegistry } from "./resource-registry.js";
|
|
4
6
|
export { createScopedToken, revokeTask, verifyScopedToken, createOAuthAccessToken, verifyOAuthAccessToken, OAUTH_ACCESS_TOKEN_TTL_MS, OAUTH_REFRESH_TOKEN_TTL_MS, authenticateMcpRequest, } from "@grackle-ai/auth";
|
|
5
7
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAK1D,OAAO,EACL,iBAAiB,EAAE,UAAU,EAAE,iBAAiB,EAChD,sBAAsB,EAAE,sBAAsB,EAC9C,yBAAyB,EAAE,0BAA0B,EACrD,sBAAsB,GACvB,MAAM,kBAAkB,CAAC"}
|
package/dist/mcp-server.d.ts
CHANGED
|
@@ -22,4 +22,14 @@ export interface McpServerOptions {
|
|
|
22
22
|
* and Server instance, tracked by session ID.
|
|
23
23
|
*/
|
|
24
24
|
export declare function createMcpServer(options: McpServerOptions): http.Server;
|
|
25
|
+
/**
|
|
26
|
+
* Resolve the public origin the client reached us on, for embedding into widget
|
|
27
|
+
* asset URLs. Honors `X-Forwarded-Proto` (reverse proxies) and TLS for the
|
|
28
|
+
* scheme, and normalizes the Host header through `URL` so a hostile value cannot
|
|
29
|
+
* inject markup when interpolated into the widget HTML's `<script src>`.
|
|
30
|
+
*
|
|
31
|
+
* @returns A clean `scheme://host[:port]` origin, or `http://localhost` if the
|
|
32
|
+
* Host header is missing or unparseable.
|
|
33
|
+
*/
|
|
34
|
+
export declare function resolveAssetBaseUrl(hostHeader: string | undefined, forwardedProto: string | string[] | undefined, encrypted: boolean): string;
|
|
25
35
|
//# sourceMappingURL=mcp-server.d.ts.map
|
package/dist/mcp-server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"AAEA,OAAO,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"AAEA,OAAO,IAAI,MAAM,WAAW,CAAC;AAwB7B,OAAO,KAAK,EAAE,cAAc,EAAkB,MAAM,oBAAoB,CAAC;AAoBzE,0CAA0C;AAC1C,MAAM,WAAW,gBAAgB;IAC/B,8CAA8C;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC;IACjB,mFAAmF;IACnF,MAAM,EAAE,MAAM,CAAC;IACf,kGAAkG;IAClG,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,oFAAoF;IACpF,UAAU,CAAC,EAAE,cAAc,EAAE,EAAE,CAAC;CACjC;AAgQD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAuFtE;AA+BD;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,cAAc,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,EAC7C,SAAS,EAAE,OAAO,GACjB,MAAM,CASR"}
|
package/dist/mcp-server.js
CHANGED
|
@@ -8,13 +8,16 @@ import { createGrpcTransport } from "@connectrpc/connect-node";
|
|
|
8
8
|
import { grackle, ROOT_TASK_ID } from "@grackle-ai/common";
|
|
9
9
|
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
10
10
|
import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
|
|
11
|
-
import { ListToolsRequestSchema, CallToolRequestSchema, isInitializeRequest, } from "@modelcontextprotocol/sdk/types.js";
|
|
11
|
+
import { ListToolsRequestSchema, CallToolRequestSchema, ListResourcesRequestSchema, ReadResourceRequestSchema, isInitializeRequest, McpError, ErrorCode, } from "@modelcontextprotocol/sdk/types.js";
|
|
12
12
|
import pino from "pino";
|
|
13
13
|
import { z } from "zod";
|
|
14
14
|
import { authenticateMcpRequest, pruneRevocations } from "@grackle-ai/auth";
|
|
15
15
|
import { grpcErrorToToolResult } from "./error-handler.js";
|
|
16
16
|
import { createToolRegistry } from "./tools/index.js";
|
|
17
17
|
import { resolveToolForAuth, listToolsForAuth } from "./tool-scoping.js";
|
|
18
|
+
import { createResourceRegistry } from "./resources/index.js";
|
|
19
|
+
import { hostSupportsUiApps, uiToolMeta } from "./ui-app.js";
|
|
20
|
+
import { tryServeWidgetAsset } from "./widget-asset-server.js";
|
|
18
21
|
/** Read the package version from package.json at module load time. */
|
|
19
22
|
const PACKAGE_VERSION = JSON.parse(readFileSync(join(dirname(fileURLToPath(import.meta.url)), "..", "package.json"), "utf8")).version;
|
|
20
23
|
const logger = pino({
|
|
@@ -68,23 +71,63 @@ async function resolvePersonaTools(grpcClients, authContext) {
|
|
|
68
71
|
return undefined;
|
|
69
72
|
}
|
|
70
73
|
/** Create a low-level MCP Server instance with tool handlers wired to the ConnectRPC backend. */
|
|
71
|
-
async function createMcpServerInstance(grpcClients, authContext, toolGroups) {
|
|
74
|
+
async function createMcpServerInstance(grpcClients, authContext, assetBaseUrl, toolGroups) {
|
|
72
75
|
const registry = createToolRegistry(toolGroups);
|
|
76
|
+
const resourceRegistry = createResourceRegistry(assetBaseUrl);
|
|
73
77
|
// Resolve persona-scoped tool set once at session creation (cached for session lifetime)
|
|
74
78
|
const personaAllowedTools = await resolvePersonaTools(grpcClients, authContext);
|
|
75
79
|
const visibleTools = listToolsForAuth(registry, authContext, personaAllowedTools);
|
|
76
80
|
logger.info({ authType: authContext.type, toolCount: visibleTools.length }, "MCP session exposing %d tools", visibleTools.length);
|
|
77
|
-
const server = new Server({ name: "grackle-mcp", version: PACKAGE_VERSION }, { capabilities: { tools: {} } });
|
|
78
|
-
// Pre-compute the visible tool list and names (immutable for this session)
|
|
81
|
+
const server = new Server({ name: "grackle-mcp", version: PACKAGE_VERSION }, { capabilities: { tools: {}, resources: {} } });
|
|
82
|
+
// Pre-compute the visible tool list and names (immutable for this session).
|
|
83
|
+
// UI (MCP Apps) tools carry _meta.ui.resourceUri so a host knows which ui://
|
|
84
|
+
// resource to render.
|
|
79
85
|
const visibleToolDefs = visibleTools.map((t) => ({
|
|
80
86
|
name: t.name,
|
|
81
87
|
description: t.description,
|
|
82
88
|
inputSchema: z.toJSONSchema(t.inputSchema),
|
|
83
89
|
annotations: t.annotations,
|
|
90
|
+
...(t.uiResourceUri ? { _meta: uiToolMeta(t.uiResourceUri) } : {}),
|
|
84
91
|
}));
|
|
85
92
|
const visibleToolNames = visibleTools.map((t) => t.name).join(", ");
|
|
93
|
+
/** Names of UI tools — only listed to hosts that can render MCP Apps widgets. */
|
|
94
|
+
const uiToolNames = new Set(visibleTools.filter((t) => t.uiResourceUri).map((t) => t.name));
|
|
86
95
|
server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
87
|
-
|
|
96
|
+
// Gate widget tools on the host advertising the io.modelcontextprotocol/ui
|
|
97
|
+
// extension (known only after initialize). Non-UI hosts see the rest.
|
|
98
|
+
const uiOn = hostSupportsUiApps(server.getClientCapabilities());
|
|
99
|
+
const tools = uiOn ? visibleToolDefs : visibleToolDefs.filter((t) => !uiToolNames.has(t.name));
|
|
100
|
+
return { tools };
|
|
101
|
+
});
|
|
102
|
+
server.setRequestHandler(ListResourcesRequestSchema, async () => {
|
|
103
|
+
return {
|
|
104
|
+
resources: resourceRegistry.list().map((r) => ({
|
|
105
|
+
uri: r.uri,
|
|
106
|
+
name: r.name,
|
|
107
|
+
...(r.description ? { description: r.description } : {}),
|
|
108
|
+
mimeType: r.mimeType,
|
|
109
|
+
...(r.meta ? { _meta: r.meta } : {}),
|
|
110
|
+
})),
|
|
111
|
+
};
|
|
112
|
+
});
|
|
113
|
+
server.setRequestHandler(ReadResourceRequestSchema, async (request) => {
|
|
114
|
+
// Resources are session-global and unscoped in #1237 (a widget shell is not
|
|
115
|
+
// sensitive). Per-session / auth-scoped resources are #1239.
|
|
116
|
+
const resource = resourceRegistry.get(request.params.uri);
|
|
117
|
+
if (!resource) {
|
|
118
|
+
throw new McpError(ErrorCode.InvalidParams, `Unknown resource: ${request.params.uri}`);
|
|
119
|
+
}
|
|
120
|
+
const { text } = resource.read();
|
|
121
|
+
return {
|
|
122
|
+
contents: [
|
|
123
|
+
{
|
|
124
|
+
uri: resource.uri,
|
|
125
|
+
mimeType: resource.mimeType,
|
|
126
|
+
text,
|
|
127
|
+
...(resource.meta ? { _meta: resource.meta } : {}),
|
|
128
|
+
},
|
|
129
|
+
],
|
|
130
|
+
};
|
|
88
131
|
});
|
|
89
132
|
server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
90
133
|
const { name, arguments: args } = request.params;
|
|
@@ -238,6 +281,12 @@ export function createMcpServer(options) {
|
|
|
238
281
|
}));
|
|
239
282
|
return;
|
|
240
283
|
}
|
|
284
|
+
// Serve the built-in widget's browser assets (static JS) before the /mcp
|
|
285
|
+
// routing + auth check — an MCP Apps host sandbox fetches these without the
|
|
286
|
+
// API key. They are non-sensitive (the widget shell + the ext-apps App).
|
|
287
|
+
if (req.method?.toUpperCase() === "GET" && tryServeWidgetAsset(url.pathname, res)) {
|
|
288
|
+
return;
|
|
289
|
+
}
|
|
241
290
|
// Only serve the /mcp endpoint
|
|
242
291
|
if (url.pathname !== "/mcp") {
|
|
243
292
|
res.writeHead(404, { "Content-Type": "application/json" });
|
|
@@ -301,6 +350,26 @@ async function parseBody(req) {
|
|
|
301
350
|
req.on("error", reject);
|
|
302
351
|
});
|
|
303
352
|
}
|
|
353
|
+
/**
|
|
354
|
+
* Resolve the public origin the client reached us on, for embedding into widget
|
|
355
|
+
* asset URLs. Honors `X-Forwarded-Proto` (reverse proxies) and TLS for the
|
|
356
|
+
* scheme, and normalizes the Host header through `URL` so a hostile value cannot
|
|
357
|
+
* inject markup when interpolated into the widget HTML's `<script src>`.
|
|
358
|
+
*
|
|
359
|
+
* @returns A clean `scheme://host[:port]` origin, or `http://localhost` if the
|
|
360
|
+
* Host header is missing or unparseable.
|
|
361
|
+
*/
|
|
362
|
+
export function resolveAssetBaseUrl(hostHeader, forwardedProto, encrypted) {
|
|
363
|
+
const rawProto = Array.isArray(forwardedProto) ? forwardedProto[0] : forwardedProto;
|
|
364
|
+
const proto = rawProto?.split(",")[0]?.trim();
|
|
365
|
+
const scheme = proto && proto.length > 0 ? proto : encrypted ? "https" : "http";
|
|
366
|
+
try {
|
|
367
|
+
return new URL(`${scheme}://${hostHeader ?? "localhost"}`).origin;
|
|
368
|
+
}
|
|
369
|
+
catch {
|
|
370
|
+
return "http://localhost";
|
|
371
|
+
}
|
|
372
|
+
}
|
|
304
373
|
/** Handle POST requests to /mcp — initialization or tool calls. */
|
|
305
374
|
async function handlePost(req, res, grpcClients, transports, authContexts, authContext, toolGroups) {
|
|
306
375
|
try {
|
|
@@ -337,7 +406,12 @@ async function handlePost(req, res, grpcClients, transports, authContexts, authC
|
|
|
337
406
|
authContexts.delete(sid);
|
|
338
407
|
}
|
|
339
408
|
};
|
|
340
|
-
|
|
409
|
+
// Asset base URL is the origin the client actually reached us on, so the
|
|
410
|
+
// widget HTML references assets correctly. Normalized via URL parsing to
|
|
411
|
+
// avoid attribute injection from a hostile Host header.
|
|
412
|
+
const encrypted = "encrypted" in req.socket && req.socket.encrypted === true;
|
|
413
|
+
const assetBaseUrl = resolveAssetBaseUrl(req.headers.host, req.headers["x-forwarded-proto"], encrypted);
|
|
414
|
+
const mcpServer = await createMcpServerInstance(grpcClients, authContext, assetBaseUrl, toolGroups);
|
|
341
415
|
await mcpServer.connect(transport);
|
|
342
416
|
await transport.handleRequest(req, res, body);
|
|
343
417
|
return;
|
package/dist/mcp-server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,0BAA0B,EAC1B,yBAAyB,EACzB,mBAAmB,EACnB,QAAQ,EACR,SAAS,GAGV,MAAM,oCAAoC,CAAC;AAC5C,OAAO,IAAqB,MAAM,MAAM,CAAC;AACzC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,sEAAsE;AACtE,MAAM,eAAe,GAAY,IAAI,CAAC,KAAK,CACzC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAClE,CAAC,OAAO,CAAC;AAElC,MAAM,MAAM,GAAW,IAAI,CAAC;IAC1B,IAAI,EAAE,aAAa;IACnB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,MAAM;IACtC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY;QAC9C,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE;QACtD,CAAC,CAAC,SAAS;CACd,CAAC,CAAC;AAkBH,4FAA4F;AAC5F,SAAS,iBAAiB,CAAC,QAAgB,EAAE,QAAgB,EAAE,MAAc;IAC3E,MAAM,SAAS,GAAG,mBAAmB,CAAC;QACpC,OAAO,EAAE,UAAU,QAAQ,IAAI,QAAQ,EAAE;QACzC,YAAY,EAAE;YACZ,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;gBACtB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,MAAM,EAAE,CAAC,CAAC;gBACpD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;YACnB,CAAC;SACF;KACF,CAAC,CAAC;IACH,OAAO;QACL,IAAI,EAAE,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC;QAClD,aAAa,EAAE,YAAY,CAAC,OAAO,CAAC,oBAAoB,EAAE,SAAS,CAAC;QACpE,UAAU,EAAE,YAAY,CAAC,OAAO,CAAC,iBAAiB,EAAE,SAAS,CAAC;QAC9D,SAAS,EAAE,YAAY,CAAC,OAAO,CAAC,gBAAgB,EAAE,SAAS,CAAC;KAC7D,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,mBAAmB,CAChC,WAA2B,EAC3B,WAAwB;IAExB,IAAI,WAAW,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;QAC5D,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC;QAC1F,IAAI,OAAO,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;YAC/C,MAAM,CAAC,IAAI,CACT,EAAE,SAAS,EAAE,WAAW,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,EAC3D,sCAAsC,EACtC,KAAK,CAAC,IAAI,CACX,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,2EAA2E;QAC3E,4EAA4E;QAC5E,+EAA+E;QAC/E,2EAA2E;QAC3E,MAAM,CAAC,IAAI,CACT,EAAE,SAAS,EAAE,WAAW,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,EAChD,oFAAoF,CACrF,CAAC;IACJ,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,iGAAiG;AACjG,KAAK,UAAU,uBAAuB,CACpC,WAA2B,EAC3B,WAAwB,EACxB,YAAoB,EACpB,UAA+B;IAE/B,MAAM,QAAQ,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAChD,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,YAAY,CAAC,CAAC;IAE9D,yFAAyF;IACzF,MAAM,mBAAmB,GAAG,MAAM,mBAAmB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAEhF,MAAM,YAAY,GAAG,gBAAgB,CAAC,QAAQ,EAAE,WAAW,EAAE,mBAAmB,CAAC,CAAC;IAClF,MAAM,CAAC,IAAI,CACT,EAAE,QAAQ,EAAE,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,YAAY,CAAC,MAAM,EAAE,EAC9D,+BAA+B,EAC/B,YAAY,CAAC,MAAM,CACpB,CAAC;IAEF,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,eAAe,EAAE,EACjD,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,CAC/C,CAAC;IAEF,4EAA4E;IAC5E,6EAA6E;IAC7E,sBAAsB;IACtB,MAAM,eAAe,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC/C,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,WAAW,EAAE,CAAC,CAAC,WAAW;QAC1B,WAAW,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC;QAC1C,WAAW,EAAE,CAAC,CAAC,WAAW;QAC1B,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACnE,CAAC,CAAC,CAAC;IACJ,MAAM,gBAAgB,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpE,iFAAiF;IACjF,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAE5F,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QAC1D,2EAA2E;QAC3E,sEAAsE;QACtE,MAAM,IAAI,GAAG,kBAAkB,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC,CAAC;QAChE,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/F,OAAO,EAAE,KAAK,EAAE,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,iBAAiB,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;QAC9D,OAAO;YACL,SAAS,EAAE,gBAAgB,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC7C,GAAG,EAAE,CAAC,CAAC,GAAG;gBACV,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxD,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACrC,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,iBAAiB,CAAC,yBAAyB,EAAE,KAAK,EAAE,OAAO,EAA+B,EAAE;QACjG,4EAA4E;QAC5E,6DAA6D;QAC7D,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1D,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,qBAAqB,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;QACzF,CAAC;QACD,MAAM,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;QACjC,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,GAAG,EAAE,QAAQ,CAAC,GAAG;oBACjB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;oBAC3B,IAAI;oBACJ,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACnD;aACF;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAA2B,EAAE;QACzF,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;QACjD,MAAM,IAAI,GAAG,kBAAkB,CAAC,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,mBAAmB,CAAC,CAAC;QAClF,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,mEAAmE;YACnE,MAAM,gBAAgB,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC;YAC1D,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACtB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,uBAAuB,EAAE,IAAI,CAAC,CAAC;gBAC3D,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,IAAI,EAAE,EAAE,CAAC;oBAC1D,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YACD,MAAM,SAAS,GAAG,gBAAgB,CAAC;YACnC,MAAM,CAAC,IAAI,CACT,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,EACxH,iCAAiC,EACjC,IAAI,CACL,CAAC;YACF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,IAAI,yDAAyD,SAAS,EAAE,EAAE,CAAC;gBACpH,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,uEAAuE;QACvE,MAAM,OAAO,GAAG,CAAC,IAAI,IAAI,EAAE,CAA4B,CAAC;QACxD,IAAI,WAAW,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAClC,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;gBAC/B,mEAAmE;gBACnE,mEAAmE;gBACnE,uEAAuE;gBACvE,0DAA0D;gBAC1D,mDAAmD;gBACnD,MAAM,cAAc,GAAG,WAAW,CAAC,WAAW,CAAC;gBAC/C,IAAI,cAAc,IAAI,WAAW,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;oBAC1D,6EAA6E;oBAC7E,wEAAwE;oBACxE,MAAM,oBAAoB,GACxB,OAAO,OAAO,CAAC,WAAW,KAAK,QAAQ,IAAI,OAAO,CAAC,WAAW;wBAC5D,CAAC,CAAC,OAAO,CAAC,WAAW;wBACrB,CAAC,CAAC,SAAS,CAAC;oBAChB,IAAI,oBAAoB,KAAK,SAAS,IAAI,oBAAoB,KAAK,cAAc,EAAE,CAAC;wBAClF,OAAO;4BACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,wDAAwD,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;4BAC1J,OAAO,EAAE,IAAI;yBACd,CAAC;oBACJ,CAAC;oBACD,OAAO,CAAC,WAAW,GAAG,cAAc,CAAC;gBACvC,CAAC;gBACD,mFAAmF;YACrF,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC;YAChD,CAAC;YACD,wFAAwF;YACxF,IAAI,IAAI,KAAK,aAAa,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;gBACjD,OAAO,CAAC,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC;YAC5C,CAAC;YACD,4EAA4E;YAC5E,+EAA+E;YAC/E,IAAI,IAAI,KAAK,WAAW,IAAI,WAAW,CAAC,WAAW,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBAC5G,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,MAAgB,EAAE,CAAC,CAAC;oBACvF,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,SAAS,CAAC,KAAK,WAAW,CAAC,WAAW,EAAE,CAAC;wBAChE,OAAO;4BACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,uCAAuC,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;4BACzI,OAAO,EAAE,IAAI;yBACd,CAAC;oBACJ,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,qBAAqB,CAAC,KAAK,CAAmB,CAAC;gBACxD,CAAC;YACH,CAAC;QACH,CAAC;QAED,qCAAqC;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACnD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CACpC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAC3C,CAAC;YACF,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,6BAA6B,EAAE,IAAI,CAAC,CAAC;YACzE,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB,EAAE,KAAK,EAAE,mBAAmB,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,EAChE,IAAI,EACJ,CAAC,CACF;qBACF;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,wBAAwB,EAAE,IAAI,CAAC,CAAC;YACjF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAA+B,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;YACpG,OAAO,MAAwB,CAAC;QAClC,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,2BAA2B,EAAE,IAAI,CAAC,CAAC;YAC5E,IAAI,CAAC;gBACH,OAAO,qBAAqB,CAAC,KAAK,CAAmB,CAAC;YACxD,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC5E,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,YAAY,EAAE,EAAE,CAAC;oBAC3D,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,8DAA8D;AAC9D,MAAM,4BAA4B,GAAW,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAE5D;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,OAAyB;IACvD,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,sBAAsB,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IACnF,oFAAoF;IACpF,MAAM,mBAAmB,GAAG,sBAAsB;QAChD,CAAC,CAAC,IAAI,GAAG,CAAC,sBAAsB,CAAC;QACjC,CAAC,CAAC,SAAS,CAAC;IACd,qDAAqD;IACrD,MAAM,cAAc,GAAG,mBAAmB;QACxC,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,IAAI,CAAC,mBAAmB,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1F,CAAC,CAAC,SAAS,CAAC;IACd,6EAA6E;IAC7E,MAAM,gBAAgB,GAAG,mBAAmB,EAAE,QAAQ,IAAI,OAAO,CAAC;IAClE,MAAM,WAAW,GAAG,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IAElE,6DAA6D;IAC7D,MAAM,UAAU,GAA+C,IAAI,GAAG,EAAE,CAAC;IAEzE,+DAA+D;IAC/D,MAAM,YAAY,GAA6B,IAAI,GAAG,EAAE,CAAC;IAEzD,8CAA8C;IAC9C,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,gBAAgB,EAAE,EAAE,4BAA4B,CAAC,CAAC;IAC1F,aAAa,CAAC,KAAK,EAAE,CAAC;IAEtB,kEAAkE;IAClE,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACtD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,UAAU,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,WAAW,EAAE,CAAC,CAAC;QAEjF,wEAAwE;QACxE,MAAM,kBAAkB,GAAG,UAAU,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;QAEpE,kEAAkE;QAClE,2EAA2E;QAC3E,+EAA+E;QAC/E,IAAI,cAAc,IAAI,GAAG,CAAC,QAAQ,KAAK,2CAA2C,EAAE,CAAC;YACnF,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC;YACjF,MAAM,cAAc,GAAG,GAAG,gBAAgB,KAAK,QAAQ,IAAI,cAAc,EAAE,CAAC;YAC5E,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;YAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;gBACrB,QAAQ,EAAE,kBAAkB;gBAC5B,qBAAqB,EAAE,CAAC,cAAc,CAAC;aACxC,CAAC,CAAC,CAAC;YACJ,OAAO;QACT,CAAC;QAED,yEAAyE;QACzE,4EAA4E;QAC5E,yEAAyE;QACzE,IAAI,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,KAAK,IAAI,mBAAmB,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC;YAClF,OAAO;QACT,CAAC;QAED,+BAA+B;QAC/B,IAAI,GAAG,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;YAC5B,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;YAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;YAChD,OAAO;QACT,CAAC;QAED,8BAA8B;QAC9B,MAAM,WAAW,GAAG,sBAAsB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACxD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,OAAO,GAA2B,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;YAC/E,IAAI,sBAAsB,EAAE,CAAC;gBAC3B,OAAO,CAAC,kBAAkB,CAAC;oBACzB,6BAA6B,kBAAkB,4CAA4C,CAAC;YAChG,CAAC;YACD,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAC5B,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;YACnD,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC;QAEzC,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACtB,MAAM,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;QAC7F,CAAC;aAAM,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YAC5B,MAAM,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;QACxC,CAAC;aAAM,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B,MAAM,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;QACzD,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;YAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,iDAAiD;AACjD,MAAM,aAAa,GAAW,SAAS,CAAC;AAExC,qFAAqF;AACrF,KAAK,UAAU,SAAS,CAAC,GAAyB;IAChD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,SAAS,GAAW,CAAC,CAAC;QAC1B,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YAC/B,SAAS,IAAI,KAAK,CAAC,MAAM,CAAC;YAC1B,IAAI,SAAS,GAAG,aAAa,EAAE,CAAC;gBAC9B,GAAG,CAAC,OAAO,EAAE,CAAC;gBACd,MAAM,CAAC,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC;gBAC5C,OAAO;YACT,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;YACjB,IAAI,CAAC;gBACH,MAAM,IAAI,GAAY,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;gBACzE,OAAO,CAAC,IAAI,CAAC,CAAC;YAChB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,GAAG,CAAC,CAAC;YACd,CAAC;QACH,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CACjC,UAA8B,EAC9B,cAA6C,EAC7C,SAAkB;IAElB,MAAM,QAAQ,GAAuB,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;IACxG,MAAM,KAAK,GAAuB,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;IAClE,MAAM,MAAM,GAAW,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IACxF,IAAI,CAAC;QACH,OAAO,IAAI,GAAG,CAAC,GAAG,MAAM,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;IACpE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,kBAAkB,CAAC;IAC5B,CAAC;AACH,CAAC;AAED,mEAAmE;AACnE,KAAK,UAAU,UAAU,CACvB,GAAyB,EACzB,GAAwB,EACxB,WAA2B,EAC3B,UAAsD,EACtD,YAAsC,EACtC,WAAwB,EACxB,UAA+B;IAE/B,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;QAClC,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAuB,CAAC;QAEtE,IAAI,SAAS,IAAI,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3C,0EAA0E;YAC1E,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAChD,IAAI,WAAW,IAAI,WAAW,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,EAAE,CAAC;gBACzD,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;gBAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,mCAAmC,EAAE,CAAC,CAAC,CAAC;gBACxE,OAAO;YACT,CAAC;YAED,4CAA4C;YAC5C,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC;YAC7C,MAAM,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YAC9C,OAAO;QACT,CAAC;QAED,IAAI,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;YAC5E,uDAAuD;YACvD,MAAM,SAAS,GAAG,IAAI,6BAA6B,CAAC;gBAClD,kBAAkB,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE;gBACtC,oBAAoB,EAAE,CAAC,GAAW,EAAE,EAAE;oBACpC,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,yBAAyB,CAAC,CAAC;oBAC3D,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;oBAC/B,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;gBACrC,CAAC;aACF,CAAC,CAAC;YAEH,SAAS,CAAC,OAAO,GAAG,GAAG,EAAE;gBACvB,MAAM,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC;gBAChC,IAAI,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC/B,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,oBAAoB,CAAC,CAAC;oBACtD,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBACvB,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC3B,CAAC;YACH,CAAC,CAAC;YAEF,yEAAyE;YACzE,yEAAyE;YACzE,wDAAwD;YACxD,MAAM,SAAS,GAAG,WAAW,IAAI,GAAG,CAAC,MAAM,IAAK,GAAG,CAAC,MAAkC,CAAC,SAAS,KAAK,IAAI,CAAC;YAC1G,MAAM,YAAY,GAAG,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,SAAS,CAAC,CAAC;YACxG,MAAM,SAAS,GAAG,MAAM,uBAAuB,CAAC,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;YACpG,MAAM,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACnC,MAAM,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YAC9C,OAAO;QACT,CAAC;QAED,sDAAsD;QACtD,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;YACrB,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,2CAA2C,EAAE;YAC7E,EAAE,EAAE,IAAI;SACT,CAAC,CAAC,CAAC;IACN,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,iCAAiC,CAAC,CAAC;QAChE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YACrB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;YAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;gBACrB,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,uBAAuB,EAAE;gBACzD,EAAE,EAAE,IAAI;aACT,CAAC,CAAC,CAAC;QACN,CAAC;IACH,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,KAAK,UAAU,SAAS,CACtB,GAAyB,EACzB,GAAwB,EACxB,UAAsD;IAEtD,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAuB,CAAC;IACtE,IAAI,CAAC,SAAS,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7C,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,+BAA+B,EAAE,CAAC,CAAC,CAAC;QACpE,OAAO;IACT,CAAC;IAED,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC;IAE7C,qEAAqE;IACrE,wEAAwE;IACxE,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACnB,IAAI,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,EAAE,kDAAkD,CAAC,CAAC;YAC/E,SAAS,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBAChC,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,mDAAmD,CAAC,CAAC;YAC9F,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC1C,CAAC;AAED,4DAA4D;AAC5D,KAAK,UAAU,YAAY,CACzB,GAAyB,EACzB,GAAwB,EACxB,UAAsD,EACtD,YAAsC;IAEtC,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAuB,CAAC;IACtE,IAAI,CAAC,SAAS,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7C,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,+BAA+B,EAAE,CAAC,CAAC,CAAC;QACpE,OAAO;IACT,CAAC;IAED,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC;IAC7C,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACxC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,oCAAoC,CAAC,CAAC;QACnE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YACrB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;YAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,sCAAsC,EAAE,CAAC,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/** Content returned when an MCP resource is read. */
|
|
2
|
+
export interface ResourceReadResult {
|
|
3
|
+
/** UTF-8 text body of the resource. */
|
|
4
|
+
text: string;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Declarative definition of an MCP resource served by the Grackle MCP server.
|
|
8
|
+
*
|
|
9
|
+
* `read` is a function (not a static string) so a later phase (#1239) can serve
|
|
10
|
+
* dynamic / per-session / agent-authored content without changing this shape.
|
|
11
|
+
*/
|
|
12
|
+
export interface ResourceDefinition {
|
|
13
|
+
/** Resource URI, e.g. `ui://grackle/hello-widget`. */
|
|
14
|
+
uri: string;
|
|
15
|
+
/** Human-readable name. */
|
|
16
|
+
name: string;
|
|
17
|
+
/** Optional description shown in `resources/list`. */
|
|
18
|
+
description?: string;
|
|
19
|
+
/** MIME type (e.g. `text/html;profile=mcp-app` for MCP Apps widgets). */
|
|
20
|
+
mimeType: string;
|
|
21
|
+
/** Optional `_meta` (e.g. MCP Apps `McpUiResourceMeta`); omitted in #1237. */
|
|
22
|
+
meta?: Record<string, unknown>;
|
|
23
|
+
/** Produce the resource body. */
|
|
24
|
+
read: () => ResourceReadResult;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Registry of MCP resource definitions with lookup support — mirrors
|
|
28
|
+
* {@link ToolRegistry}. Static (register-at-startup) in #1237; the mutable /
|
|
29
|
+
* per-session registry for agent-authored widgets is #1239.
|
|
30
|
+
*/
|
|
31
|
+
export declare class ResourceRegistry {
|
|
32
|
+
private readonly resources;
|
|
33
|
+
/** Register a resource. Throws if a resource with the same URI already exists. */
|
|
34
|
+
register(resource: ResourceDefinition): void;
|
|
35
|
+
/** Register an array of resource definitions. */
|
|
36
|
+
registerAll(resources: ResourceDefinition[]): void;
|
|
37
|
+
/** Return all registered resources. */
|
|
38
|
+
list(): ResourceDefinition[];
|
|
39
|
+
/** Look up a resource by URI. Returns undefined if not found. */
|
|
40
|
+
get(uri: string): ResourceDefinition | undefined;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=resource-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resource-registry.d.ts","sourceRoot":"","sources":["../src/resource-registry.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,MAAM,WAAW,kBAAkB;IACjC,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,sDAAsD;IACtD,GAAG,EAAE,MAAM,CAAC;IACZ,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yEAAyE;IACzE,QAAQ,EAAE,MAAM,CAAC;IACjB,8EAA8E;IAC9E,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,iCAAiC;IACjC,IAAI,EAAE,MAAM,kBAAkB,CAAC;CAChC;AAED;;;;GAIG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA8C;IAExE,kFAAkF;IAC3E,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI;IAOnD,iDAAiD;IAC1C,WAAW,CAAC,SAAS,EAAE,kBAAkB,EAAE,GAAG,IAAI;IAMzD,uCAAuC;IAChC,IAAI,IAAI,kBAAkB,EAAE;IAInC,iEAAiE;IAC1D,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;CAGxD"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Registry of MCP resource definitions with lookup support — mirrors
|
|
3
|
+
* {@link ToolRegistry}. Static (register-at-startup) in #1237; the mutable /
|
|
4
|
+
* per-session registry for agent-authored widgets is #1239.
|
|
5
|
+
*/
|
|
6
|
+
export class ResourceRegistry {
|
|
7
|
+
resources = new Map();
|
|
8
|
+
/** Register a resource. Throws if a resource with the same URI already exists. */
|
|
9
|
+
register(resource) {
|
|
10
|
+
if (this.resources.has(resource.uri)) {
|
|
11
|
+
throw new Error(`Duplicate resource uri: ${resource.uri}`);
|
|
12
|
+
}
|
|
13
|
+
this.resources.set(resource.uri, resource);
|
|
14
|
+
}
|
|
15
|
+
/** Register an array of resource definitions. */
|
|
16
|
+
registerAll(resources) {
|
|
17
|
+
for (const resource of resources) {
|
|
18
|
+
this.register(resource);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
/** Return all registered resources. */
|
|
22
|
+
list() {
|
|
23
|
+
return Array.from(this.resources.values());
|
|
24
|
+
}
|
|
25
|
+
/** Look up a resource by URI. Returns undefined if not found. */
|
|
26
|
+
get(uri) {
|
|
27
|
+
return this.resources.get(uri);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=resource-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resource-registry.js","sourceRoot":"","sources":["../src/resource-registry.ts"],"names":[],"mappings":"AA2BA;;;;GAIG;AACH,MAAM,OAAO,gBAAgB;IACV,SAAS,GAAoC,IAAI,GAAG,EAAE,CAAC;IAExE,kFAAkF;IAC3E,QAAQ,CAAC,QAA4B;QAC1C,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,2BAA2B,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAED,iDAAiD;IAC1C,WAAW,CAAC,SAA+B;QAChD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,uCAAuC;IAChC,IAAI;QACT,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,iEAAiE;IAC1D,GAAG,CAAC,GAAW;QACpB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;CACF"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { ResourceDefinition } from "../resource-registry.js";
|
|
2
|
+
/** URI of the built-in hello widget resource. Single source of truth. */
|
|
3
|
+
export declare const HELLO_WIDGET_URI: string;
|
|
4
|
+
/**
|
|
5
|
+
* Path prefix under which the MCP server serves this widget's browser assets
|
|
6
|
+
* (`/index.js` + `/app-with-deps.js`). Used both by the server's static router
|
|
7
|
+
* and by the widget HTML's `<script src>`.
|
|
8
|
+
*/
|
|
9
|
+
export declare const WIDGET_ASSET_BASE_PATH: string;
|
|
10
|
+
/**
|
|
11
|
+
* App-side ES module for the hello widget, served at
|
|
12
|
+
* `<base>${WIDGET_ASSET_BASE_PATH}/index.js`. Uses the REAL ext-apps `App`
|
|
13
|
+
* (imported from the sibling `app-with-deps.js` the server also serves) for a
|
|
14
|
+
* spec-conformant `ui/initialize` -> `initialized` -> tool-input/result
|
|
15
|
+
* handshake. Ported from the T1 Storybook sample widget (#1236). Kept as a
|
|
16
|
+
* string so it ships in `dist` without a heft asset-copy step.
|
|
17
|
+
*/
|
|
18
|
+
export declare const HELLO_WIDGET_CLIENT_JS: string;
|
|
19
|
+
/**
|
|
20
|
+
* Build the built-in hello widget resource. The widget's browser assets are
|
|
21
|
+
* loaded from `assetBaseUrl` (the MCP server's own public origin), so the host
|
|
22
|
+
* sandbox must be allowed to load cross-origin scripts from it — that host-CSP /
|
|
23
|
+
* cross-origin concern is out of scope for #1237 (handled for Grackle's own host
|
|
24
|
+
* in #1238).
|
|
25
|
+
*
|
|
26
|
+
* @param assetBaseUrl - Public origin of the MCP server, e.g. `http://127.0.0.1:7435`.
|
|
27
|
+
*/
|
|
28
|
+
export declare function createHelloWidgetResource(assetBaseUrl: string): ResourceDefinition;
|
|
29
|
+
//# sourceMappingURL=hello-widget.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hello-widget.d.ts","sourceRoot":"","sources":["../../src/resources/hello-widget.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,yEAAyE;AACzE,eAAO,MAAM,gBAAgB,EAAE,MAAoC,CAAC;AAEpE;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,EAAE,MAAyB,CAAC;AAE/D;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,EAAE,MAqBzB,CAAC;AAsBb;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,kBAAkB,CAQlF"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { RESOURCE_MIME_TYPE } from "../ui-app.js";
|
|
2
|
+
/** URI of the built-in hello widget resource. Single source of truth. */
|
|
3
|
+
export const HELLO_WIDGET_URI = "ui://grackle/hello-widget";
|
|
4
|
+
/**
|
|
5
|
+
* Path prefix under which the MCP server serves this widget's browser assets
|
|
6
|
+
* (`/index.js` + `/app-with-deps.js`). Used both by the server's static router
|
|
7
|
+
* and by the widget HTML's `<script src>`.
|
|
8
|
+
*/
|
|
9
|
+
export const WIDGET_ASSET_BASE_PATH = "/widgets/hello";
|
|
10
|
+
/**
|
|
11
|
+
* App-side ES module for the hello widget, served at
|
|
12
|
+
* `<base>${WIDGET_ASSET_BASE_PATH}/index.js`. Uses the REAL ext-apps `App`
|
|
13
|
+
* (imported from the sibling `app-with-deps.js` the server also serves) for a
|
|
14
|
+
* spec-conformant `ui/initialize` -> `initialized` -> tool-input/result
|
|
15
|
+
* handshake. Ported from the T1 Storybook sample widget (#1236). Kept as a
|
|
16
|
+
* string so it ships in `dist` without a heft asset-copy step.
|
|
17
|
+
*/
|
|
18
|
+
export const HELLO_WIDGET_CLIENT_JS = [
|
|
19
|
+
'import { App, PostMessageTransport, applyHostStyleVariables, applyHostFonts, applyDocumentTheme } from "./app-with-deps.js";',
|
|
20
|
+
'const inputEl = document.getElementById("input");',
|
|
21
|
+
'const resultEl = document.getElementById("result");',
|
|
22
|
+
"function renderResult(content) {",
|
|
23
|
+
" const blocks = content || [];",
|
|
24
|
+
' resultEl.textContent = blocks.map(function (b) { return b.type === "text" ? b.text : "<" + b.type + ">"; }).join(" ") || "(empty)";',
|
|
25
|
+
"}",
|
|
26
|
+
'const app = new App({ name: "GrackleHelloWidget", version: "1.0.0" }, {});',
|
|
27
|
+
"app.ontoolinput = function (params) { inputEl.textContent = JSON.stringify((params && params.arguments) || {}); };",
|
|
28
|
+
"app.ontoolresult = function (params) { renderResult(params && params.content); };",
|
|
29
|
+
"function applyHostStyles() {",
|
|
30
|
+
" const ctx = app.getHostContext();",
|
|
31
|
+
" if (ctx && ctx.styles && ctx.styles.variables) { applyHostStyleVariables(ctx.styles.variables); }",
|
|
32
|
+
" if (ctx && ctx.styles && ctx.styles.css && ctx.styles.css.fonts) { applyHostFonts(ctx.styles.css.fonts); }",
|
|
33
|
+
" if (ctx && ctx.theme) { applyDocumentTheme(ctx.theme); }",
|
|
34
|
+
"}",
|
|
35
|
+
"app.onhostcontextchanged = function () { applyHostStyles(); };",
|
|
36
|
+
"await app.connect(new PostMessageTransport(window.parent, window.parent));",
|
|
37
|
+
"applyHostStyles();",
|
|
38
|
+
"",
|
|
39
|
+
].join("\n");
|
|
40
|
+
/** Build the widget HTML document, pointing its script at the asset base URL. */
|
|
41
|
+
function helloWidgetHtml(assetBaseUrl) {
|
|
42
|
+
const src = `${assetBaseUrl}${WIDGET_ASSET_BASE_PATH}/index.js`;
|
|
43
|
+
return [
|
|
44
|
+
'<!doctype html><html><head><meta charset="utf-8" /><meta name="color-scheme" content="light dark" /><style>',
|
|
45
|
+
"body{margin:0;font-family:var(--font-sans,sans-serif);color:var(--color-text-primary,#111);",
|
|
46
|
+
"background:var(--color-background-secondary,#f5f5f5);padding:16px}",
|
|
47
|
+
".card{background:var(--color-background-primary,#fff);border:1px solid var(--color-border-primary,#ddd);",
|
|
48
|
+
"border-radius:var(--border-radius-md,6px);padding:16px}",
|
|
49
|
+
"code{font-family:var(--font-mono,monospace)}",
|
|
50
|
+
'</style></head><body><div class="card">',
|
|
51
|
+
"<h2>Grackle</h2>",
|
|
52
|
+
'<div>Input: <code id="input">(none)</code></div>',
|
|
53
|
+
'<div>Result: <code id="result">(pending)</code></div>',
|
|
54
|
+
"</div>",
|
|
55
|
+
`<script type="module" src="${src}"></script>`,
|
|
56
|
+
"</body></html>",
|
|
57
|
+
].join("");
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Build the built-in hello widget resource. The widget's browser assets are
|
|
61
|
+
* loaded from `assetBaseUrl` (the MCP server's own public origin), so the host
|
|
62
|
+
* sandbox must be allowed to load cross-origin scripts from it — that host-CSP /
|
|
63
|
+
* cross-origin concern is out of scope for #1237 (handled for Grackle's own host
|
|
64
|
+
* in #1238).
|
|
65
|
+
*
|
|
66
|
+
* @param assetBaseUrl - Public origin of the MCP server, e.g. `http://127.0.0.1:7435`.
|
|
67
|
+
*/
|
|
68
|
+
export function createHelloWidgetResource(assetBaseUrl) {
|
|
69
|
+
return {
|
|
70
|
+
uri: HELLO_WIDGET_URI,
|
|
71
|
+
name: "Grackle Hello Widget",
|
|
72
|
+
description: "A minimal MCP Apps widget that displays the tool input and result.",
|
|
73
|
+
mimeType: RESOURCE_MIME_TYPE,
|
|
74
|
+
read: () => ({ text: helloWidgetHtml(assetBaseUrl) }),
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=hello-widget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hello-widget.js","sourceRoot":"","sources":["../../src/resources/hello-widget.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAGlD,yEAAyE;AACzE,MAAM,CAAC,MAAM,gBAAgB,GAAW,2BAA2B,CAAC;AAEpE;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAW,gBAAgB,CAAC;AAE/D;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAW;IAC5C,8HAA8H;IAC9H,mDAAmD;IACnD,qDAAqD;IACrD,kCAAkC;IAClC,iCAAiC;IACjC,uIAAuI;IACvI,GAAG;IACH,4EAA4E;IAC5E,oHAAoH;IACpH,mFAAmF;IACnF,8BAA8B;IAC9B,qCAAqC;IACrC,qGAAqG;IACrG,8GAA8G;IAC9G,4DAA4D;IAC5D,GAAG;IACH,gEAAgE;IAChE,4EAA4E;IAC5E,oBAAoB;IACpB,EAAE;CACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,iFAAiF;AACjF,SAAS,eAAe,CAAC,YAAoB;IAC3C,MAAM,GAAG,GAAW,GAAG,YAAY,GAAG,sBAAsB,WAAW,CAAC;IACxE,OAAO;QACL,6GAA6G;QAC7G,6FAA6F;QAC7F,oEAAoE;QACpE,0GAA0G;QAC1G,yDAAyD;QACzD,8CAA8C;QAC9C,yCAAyC;QACzC,kBAAkB;QAClB,kDAAkD;QAClD,uDAAuD;QACvD,QAAQ;QACR,8BAA8B,GAAG,aAAa;QAC9C,gBAAgB;KACjB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACb,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,yBAAyB,CAAC,YAAoB;IAC5D,OAAO;QACL,GAAG,EAAE,gBAAgB;QACrB,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EAAE,oEAAoE;QACjF,QAAQ,EAAE,kBAAkB;QAC5B,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,eAAe,CAAC,YAAY,CAAC,EAAE,CAAC;KACtD,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ResourceRegistry } from "../resource-registry.js";
|
|
2
|
+
/**
|
|
3
|
+
* Create a ResourceRegistry pre-populated with the built-in MCP Apps resources.
|
|
4
|
+
*
|
|
5
|
+
* @param assetBaseUrl - Public origin of the MCP server (e.g. `http://127.0.0.1:7435`),
|
|
6
|
+
* embedded into widget HTML so hosts can load the widget's browser assets.
|
|
7
|
+
*/
|
|
8
|
+
export declare function createResourceRegistry(assetBaseUrl: string): ResourceRegistry;
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/resources/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAA2B,MAAM,yBAAyB,CAAC;AAGpF;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,MAAM,GAAG,gBAAgB,CAK7E"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ResourceRegistry } from "../resource-registry.js";
|
|
2
|
+
import { createHelloWidgetResource } from "./hello-widget.js";
|
|
3
|
+
/**
|
|
4
|
+
* Create a ResourceRegistry pre-populated with the built-in MCP Apps resources.
|
|
5
|
+
*
|
|
6
|
+
* @param assetBaseUrl - Public origin of the MCP server (e.g. `http://127.0.0.1:7435`),
|
|
7
|
+
* embedded into widget HTML so hosts can load the widget's browser assets.
|
|
8
|
+
*/
|
|
9
|
+
export function createResourceRegistry(assetBaseUrl) {
|
|
10
|
+
const registry = new ResourceRegistry();
|
|
11
|
+
const builtinResources = [createHelloWidgetResource(assetBaseUrl)];
|
|
12
|
+
registry.registerAll(builtinResources);
|
|
13
|
+
return registry;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/resources/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAA2B,MAAM,yBAAyB,CAAC;AACpF,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAE9D;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,YAAoB;IACzD,MAAM,QAAQ,GAAG,IAAI,gBAAgB,EAAE,CAAC;IACxC,MAAM,gBAAgB,GAAyB,CAAC,yBAAyB,CAAC,YAAY,CAAC,CAAC,CAAC;IACzF,QAAQ,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;IACvC,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
package/dist/tool-registry.d.ts
CHANGED
|
@@ -47,6 +47,12 @@ export interface ToolDefinition {
|
|
|
47
47
|
mutating: boolean;
|
|
48
48
|
/** Optional behavioral hints for the client. */
|
|
49
49
|
annotations?: ToolAnnotations;
|
|
50
|
+
/**
|
|
51
|
+
* Optional MCP Apps UI resource (`ui://…`) this tool renders. When set, the
|
|
52
|
+
* tool carries `_meta.ui.resourceUri` in `tools/list` and is only listed to
|
|
53
|
+
* hosts that advertise the `io.modelcontextprotocol/ui` extension.
|
|
54
|
+
*/
|
|
55
|
+
uiResourceUri?: string;
|
|
50
56
|
/** Execute the tool, forwarding to the ConnectRPC backend. */
|
|
51
57
|
handler: (args: Record<string, unknown>, clients: GrackleClients, authContext?: AuthContext) => Promise<ToolResult>;
|
|
52
58
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-registry.d.ts","sourceRoot":"","sources":["../src/tool-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AACnC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,uEAAuE;AACvE,MAAM,WAAW,cAAc;IAC7B,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAC,OAAO,OAAO,CAAC,WAAW,CAAC,CAAC;IACzC,kEAAkE;IAClE,aAAa,EAAE,MAAM,CAAC,OAAO,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC3D,kCAAkC;IAClC,UAAU,EAAE,MAAM,CAAC,OAAO,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACrD,4BAA4B;IAC5B,SAAS,EAAE,MAAM,CAAC,OAAO,OAAO,CAAC,gBAAgB,CAAC,CAAC;CACpD;AAED,oDAAoD;AACpD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,mEAAmE;AACnE,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,iEAAiE;AACjE,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,yEAAyE;AACzE,MAAM,WAAW,cAAc;IAC7B,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,WAAW,EAAE,MAAM,CAAC;IACpB,gFAAgF;IAChF,WAAW,EAAE,OAAO,CAAC;IACrB,+EAA+E;IAC/E,SAAS,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,QAAQ,EAAE,OAAO,CAAC;IAClB,gDAAgD;IAChD,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,8DAA8D;IAC9D,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;CACrH;AAED,iFAAiF;AACjF,MAAM,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,cAAc,KAAK,OAAO,CAAC;AAE9D,0EAA0E;AAC1E,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0C;IAEhE,sFAAsF;IAC/E,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAO3C,6CAA6C;IACtC,WAAW,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,IAAI;IAMjD,uEAAuE;IAChE,IAAI,CAAC,SAAS,CAAC,EAAE,aAAa,GAAG,cAAc,EAAE;IAQxD,8DAA8D;IACvD,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;CAGrD"}
|
|
1
|
+
{"version":3,"file":"tool-registry.d.ts","sourceRoot":"","sources":["../src/tool-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AACnC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,uEAAuE;AACvE,MAAM,WAAW,cAAc;IAC7B,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAC,OAAO,OAAO,CAAC,WAAW,CAAC,CAAC;IACzC,kEAAkE;IAClE,aAAa,EAAE,MAAM,CAAC,OAAO,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC3D,kCAAkC;IAClC,UAAU,EAAE,MAAM,CAAC,OAAO,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACrD,4BAA4B;IAC5B,SAAS,EAAE,MAAM,CAAC,OAAO,OAAO,CAAC,gBAAgB,CAAC,CAAC;CACpD;AAED,oDAAoD;AACpD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,mEAAmE;AACnE,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,iEAAiE;AACjE,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,yEAAyE;AACzE,MAAM,WAAW,cAAc;IAC7B,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,KAAK,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,WAAW,EAAE,MAAM,CAAC;IACpB,gFAAgF;IAChF,WAAW,EAAE,OAAO,CAAC;IACrB,+EAA+E;IAC/E,SAAS,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,QAAQ,EAAE,OAAO,CAAC;IAClB,gDAAgD;IAChD,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,8DAA8D;IAC9D,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;CACrH;AAED,iFAAiF;AACjF,MAAM,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,cAAc,KAAK,OAAO,CAAC;AAE9D,0EAA0E;AAC1E,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0C;IAEhE,sFAAsF;IAC/E,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAO3C,6CAA6C;IACtC,WAAW,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,IAAI;IAMjD,uEAAuE;IAChE,IAAI,CAAC,SAAS,CAAC,EAAE,aAAa,GAAG,cAAc,EAAE;IAQxD,8DAA8D;IACvD,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;CAGrD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-registry.js","sourceRoot":"","sources":["../src/tool-registry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tool-registry.js","sourceRoot":"","sources":["../src/tool-registry.ts"],"names":[],"mappings":"AAmEA,0EAA0E;AAC1E,MAAM,OAAO,YAAY;IACN,KAAK,GAAgC,IAAI,GAAG,EAAE,CAAC;IAEhE,sFAAsF;IAC/E,QAAQ,CAAC,IAAoB;QAClC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACvD,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,6CAA6C;IACtC,WAAW,CAAC,KAAuB;QACxC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAED,uEAAuE;IAChE,IAAI,CAAC,SAAyB;QACnC,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5C,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,8DAA8D;IACvD,GAAG,CAAC,IAAY;QACrB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AA0CxE;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,cAAc,EAAE,EAAE,GAAG,YAAY,CAW1F"}
|
package/dist/tools/index.js
CHANGED
|
@@ -16,6 +16,7 @@ import { scheduleTools } from "./schedule.js";
|
|
|
16
16
|
import { versionTools } from "./version.js";
|
|
17
17
|
import { escalationTools } from "./escalation.js";
|
|
18
18
|
import { pluginTools } from "./plugin.js";
|
|
19
|
+
import { widgetTools } from "./widget.js";
|
|
19
20
|
/** Built-in tool groups shipped with the MCP package. */
|
|
20
21
|
const builtinToolGroups = [
|
|
21
22
|
envTools,
|
|
@@ -35,6 +36,7 @@ const builtinToolGroups = [
|
|
|
35
36
|
versionTools,
|
|
36
37
|
escalationTools,
|
|
37
38
|
pluginTools,
|
|
39
|
+
widgetTools,
|
|
38
40
|
];
|
|
39
41
|
/**
|
|
40
42
|
* Create a ToolRegistry pre-populated with all built-in MCP tools.
|
package/dist/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAuB,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,yDAAyD;AACzD,MAAM,iBAAiB,GAAuB;IAC5C,QAAQ;IACR,YAAY;IACZ,cAAc;IACd,SAAS;IACT,YAAY;IACZ,YAAY;IACZ,SAAS;IACT,eAAe;IACf,UAAU;IACV,WAAW;IACX,QAAQ;IACR,UAAU;IACV,YAAY;IACZ,aAAa;IACb,YAAY;IACZ,eAAe;IACf,WAAW;CACZ,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,oBAAyC;IAC1E,MAAM,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;IACpC,KAAK,MAAM,KAAK,IAAI,iBAAiB,EAAE,CAAC;QACtC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IACD,IAAI,oBAAoB,EAAE,CAAC;QACzB,KAAK,MAAM,KAAK,IAAI,oBAAoB,EAAE,CAAC;YACzC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAuB,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,yDAAyD;AACzD,MAAM,iBAAiB,GAAuB;IAC5C,QAAQ;IACR,YAAY;IACZ,cAAc;IACd,SAAS;IACT,YAAY;IACZ,YAAY;IACZ,SAAS;IACT,eAAe;IACf,UAAU;IACV,WAAW;IACX,QAAQ;IACR,UAAU;IACV,YAAY;IACZ,aAAa;IACb,YAAY;IACZ,eAAe;IACf,WAAW;IACX,WAAW;CACZ,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,oBAAyC;IAC1E,MAAM,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;IACpC,KAAK,MAAM,KAAK,IAAI,iBAAiB,EAAE,CAAC;QACtC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IACD,IAAI,oBAAoB,EAAE,CAAC;QACzB,KAAK,MAAM,KAAK,IAAI,oBAAoB,EAAE,CAAC;YACzC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ToolDefinition } from "../tool-registry.js";
|
|
2
|
+
/**
|
|
3
|
+
* MCP Apps widget tools. The `uiResourceUri` ties each tool to a `ui://` HTML
|
|
4
|
+
* resource the host renders; these tools are only listed to hosts that advertise
|
|
5
|
+
* the `io.modelcontextprotocol/ui` extension (see `mcp-server.ts` gating).
|
|
6
|
+
*/
|
|
7
|
+
export declare const widgetTools: ToolDefinition[];
|
|
8
|
+
//# sourceMappingURL=widget.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"widget.d.ts","sourceRoot":"","sources":["../../src/tools/widget.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAI1D;;;;GAIG;AACH,eAAO,MAAM,WAAW,EAAE,cAAc,EAuBvC,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { jsonResult } from "../result-helpers.js";
|
|
3
|
+
import { HELLO_WIDGET_URI } from "../resources/hello-widget.js";
|
|
4
|
+
/**
|
|
5
|
+
* MCP Apps widget tools. The `uiResourceUri` ties each tool to a `ui://` HTML
|
|
6
|
+
* resource the host renders; these tools are only listed to hosts that advertise
|
|
7
|
+
* the `io.modelcontextprotocol/ui` extension (see `mcp-server.ts` gating).
|
|
8
|
+
*/
|
|
9
|
+
export const widgetTools = [
|
|
10
|
+
{
|
|
11
|
+
name: "show_hello_widget",
|
|
12
|
+
group: "widget",
|
|
13
|
+
description: "Display the Grackle hello widget — a minimal interactive MCP Apps UI that echoes the provided message. Renders inline in hosts that support MCP Apps.",
|
|
14
|
+
inputSchema: z.object({
|
|
15
|
+
message: z.string().optional().describe("Message to echo back in the widget."),
|
|
16
|
+
}),
|
|
17
|
+
rpcMethod: "showHelloWidget",
|
|
18
|
+
mutating: false,
|
|
19
|
+
annotations: {
|
|
20
|
+
readOnlyHint: true,
|
|
21
|
+
destructiveHint: false,
|
|
22
|
+
idempotentHint: true,
|
|
23
|
+
openWorldHint: false,
|
|
24
|
+
},
|
|
25
|
+
uiResourceUri: HELLO_WIDGET_URI,
|
|
26
|
+
async handler(args) {
|
|
27
|
+
const message = typeof args.message === "string" ? args.message : "Hello from Grackle";
|
|
28
|
+
return jsonResult({ message, renderedAt: new Date().toISOString() });
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
//# sourceMappingURL=widget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"widget.js","sourceRoot":"","sources":["../../src/tools/widget.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAqB;IAC3C;QACE,IAAI,EAAE,mBAAmB;QACzB,KAAK,EAAE,QAAQ;QACf,WAAW,EACT,uJAAuJ;QACzJ,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;SAC/E,CAAC;QACF,SAAS,EAAE,iBAAiB;QAC5B,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;QACD,aAAa,EAAE,gBAAgB;QAC/B,KAAK,CAAC,OAAO,CAAC,IAA6B;YACzC,MAAM,OAAO,GAAW,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,oBAAoB,CAAC;YAC/F,OAAO,UAAU,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QACvE,CAAC;KACF;CACF,CAAC"}
|
package/dist/ui-app.d.ts
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { EXTENSION_ID, RESOURCE_MIME_TYPE } from "@modelcontextprotocol/ext-apps/server";
|
|
2
|
+
import type { ClientCapabilities } from "@modelcontextprotocol/sdk/types.js";
|
|
3
|
+
/**
|
|
4
|
+
* MCP Apps "app-side" helpers for Grackle's low-level MCP {@link Server}.
|
|
5
|
+
*
|
|
6
|
+
* The ext-apps `registerAppTool`/`registerAppResource` helpers require the
|
|
7
|
+
* high-level `McpServer`, which Grackle does not use, so we replicate their tiny
|
|
8
|
+
* `_meta` normalization here while still importing the spec constants/helper from
|
|
9
|
+
* `@modelcontextprotocol/ext-apps/server` (single source of truth — no copied
|
|
10
|
+
* string literals). See SEP-1865 (MCP Apps).
|
|
11
|
+
*/
|
|
12
|
+
/** Visibility of a UI tool, per the MCP Apps spec (`McpUiToolVisibility`). */
|
|
13
|
+
export type UiToolVisibility = "model" | "app";
|
|
14
|
+
/** Re-exported so callers tag UI resources with the MCP Apps MIME type. */
|
|
15
|
+
export { RESOURCE_MIME_TYPE, EXTENSION_ID };
|
|
16
|
+
/**
|
|
17
|
+
* Build a tool's `_meta` for MCP Apps, populating BOTH the modern nested key
|
|
18
|
+
* (`_meta.ui.resourceUri`) and the legacy flat key (`_meta["ui/resourceUri"]`)
|
|
19
|
+
* for host backwards-compatibility — mirroring ext-apps `registerAppTool`.
|
|
20
|
+
*
|
|
21
|
+
* @param resourceUri - The `ui://` resource the host should render for this tool.
|
|
22
|
+
* @param visibility - Optional audience(s) the widget targets (`model`/`app`).
|
|
23
|
+
* @returns A `_meta` object to attach to the tool's `tools/list` entry.
|
|
24
|
+
*/
|
|
25
|
+
export declare function uiToolMeta(resourceUri: string, visibility?: UiToolVisibility[]): Record<string, unknown>;
|
|
26
|
+
/**
|
|
27
|
+
* Whether the connected host can render MCP Apps widgets — i.e. it advertised the
|
|
28
|
+
* `io.modelcontextprotocol/ui` extension during `initialize` with the MCP App
|
|
29
|
+
* HTML MIME in its supported `mimeTypes`. Use the SDK's
|
|
30
|
+
* `Server.getClientCapabilities()` (available after the handshake) as the input.
|
|
31
|
+
*
|
|
32
|
+
* @param capabilities - The negotiated client capabilities, or `undefined`.
|
|
33
|
+
* @returns `true` only when the host can render `text/html;profile=mcp-app`.
|
|
34
|
+
*/
|
|
35
|
+
export declare function hostSupportsUiApps(capabilities: ClientCapabilities | undefined): boolean;
|
|
36
|
+
//# sourceMappingURL=ui-app.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui-app.d.ts","sourceRoot":"","sources":["../src/ui-app.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,kBAAkB,EAGnB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAE7E;;;;;;;;GAQG;AAEH,8EAA8E;AAC9E,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,KAAK,CAAC;AAE/C,2EAA2E;AAC3E,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,CAAC;AAE5C;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CACxB,WAAW,EAAE,MAAM,EACnB,UAAU,CAAC,EAAE,gBAAgB,EAAE,GAC9B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAKzB;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,kBAAkB,GAAG,SAAS,GAAG,OAAO,CAGxF"}
|
package/dist/ui-app.js
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { EXTENSION_ID, RESOURCE_MIME_TYPE, RESOURCE_URI_META_KEY, getUiCapability, } from "@modelcontextprotocol/ext-apps/server";
|
|
2
|
+
/** Re-exported so callers tag UI resources with the MCP Apps MIME type. */
|
|
3
|
+
export { RESOURCE_MIME_TYPE, EXTENSION_ID };
|
|
4
|
+
/**
|
|
5
|
+
* Build a tool's `_meta` for MCP Apps, populating BOTH the modern nested key
|
|
6
|
+
* (`_meta.ui.resourceUri`) and the legacy flat key (`_meta["ui/resourceUri"]`)
|
|
7
|
+
* for host backwards-compatibility — mirroring ext-apps `registerAppTool`.
|
|
8
|
+
*
|
|
9
|
+
* @param resourceUri - The `ui://` resource the host should render for this tool.
|
|
10
|
+
* @param visibility - Optional audience(s) the widget targets (`model`/`app`).
|
|
11
|
+
* @returns A `_meta` object to attach to the tool's `tools/list` entry.
|
|
12
|
+
*/
|
|
13
|
+
export function uiToolMeta(resourceUri, visibility) {
|
|
14
|
+
return {
|
|
15
|
+
ui: { resourceUri, ...(visibility ? { visibility } : {}) },
|
|
16
|
+
[RESOURCE_URI_META_KEY]: resourceUri,
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Whether the connected host can render MCP Apps widgets — i.e. it advertised the
|
|
21
|
+
* `io.modelcontextprotocol/ui` extension during `initialize` with the MCP App
|
|
22
|
+
* HTML MIME in its supported `mimeTypes`. Use the SDK's
|
|
23
|
+
* `Server.getClientCapabilities()` (available after the handshake) as the input.
|
|
24
|
+
*
|
|
25
|
+
* @param capabilities - The negotiated client capabilities, or `undefined`.
|
|
26
|
+
* @returns `true` only when the host can render `text/html;profile=mcp-app`.
|
|
27
|
+
*/
|
|
28
|
+
export function hostSupportsUiApps(capabilities) {
|
|
29
|
+
const ui = getUiCapability(capabilities);
|
|
30
|
+
return Boolean(ui?.mimeTypes?.includes(RESOURCE_MIME_TYPE));
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=ui-app.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui-app.js","sourceRoot":"","sources":["../src/ui-app.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,qBAAqB,EACrB,eAAe,GAChB,MAAM,uCAAuC,CAAC;AAgB/C,2EAA2E;AAC3E,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,CAAC;AAE5C;;;;;;;;GAQG;AACH,MAAM,UAAU,UAAU,CACxB,WAAmB,EACnB,UAA+B;IAE/B,OAAO;QACL,EAAE,EAAE,EAAE,WAAW,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;QAC1D,CAAC,qBAAqB,CAAC,EAAE,WAAW;KACrC,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAAC,YAA4C;IAC7E,MAAM,EAAE,GAAG,eAAe,CAAC,YAAY,CAAyC,CAAC;IACjF,OAAO,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAC9D,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type http from "node:http";
|
|
2
|
+
/**
|
|
3
|
+
* Serve the built-in widget's browser assets (the app-side module + the ext-apps
|
|
4
|
+
* `App` bundle it imports). These are static, non-sensitive JS that an MCP Apps
|
|
5
|
+
* host fetches into its sandbox iframe, so they are served WITHOUT auth.
|
|
6
|
+
*
|
|
7
|
+
* @returns `true` if the path matched a widget asset and a response was written.
|
|
8
|
+
*/
|
|
9
|
+
export declare function tryServeWidgetAsset(pathname: string, res: http.ServerResponse): boolean;
|
|
10
|
+
//# sourceMappingURL=widget-asset-server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"widget-asset-server.d.ts","sourceRoot":"","sources":["../src/widget-asset-server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AA0BlC;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,cAAc,GAAG,OAAO,CAYvF"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { readFileSync } from "node:fs";
|
|
2
|
+
import { createRequire } from "node:module";
|
|
3
|
+
import { WIDGET_ASSET_BASE_PATH, HELLO_WIDGET_CLIENT_JS } from "./resources/hello-widget.js";
|
|
4
|
+
const nodeRequire = createRequire(import.meta.url);
|
|
5
|
+
/** Lazily-resolved, cached ext-apps app-side bundle (the real `App`, deps inlined). */
|
|
6
|
+
let appWithDepsBundle;
|
|
7
|
+
/** Resolve + read the ext-apps `app-with-deps` browser bundle from node_modules, once. */
|
|
8
|
+
function readAppWithDeps() {
|
|
9
|
+
if (appWithDepsBundle === undefined) {
|
|
10
|
+
const bundlePath = nodeRequire.resolve("@modelcontextprotocol/ext-apps/app-with-deps");
|
|
11
|
+
appWithDepsBundle = readFileSync(bundlePath, "utf8");
|
|
12
|
+
}
|
|
13
|
+
return appWithDepsBundle;
|
|
14
|
+
}
|
|
15
|
+
/** Headers for the served JS modules. CORS-open: hosts fetch these into their sandbox. */
|
|
16
|
+
const JS_HEADERS = {
|
|
17
|
+
"Content-Type": "text/javascript; charset=utf-8",
|
|
18
|
+
"Cache-Control": "no-cache",
|
|
19
|
+
"Access-Control-Allow-Origin": "*",
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Serve the built-in widget's browser assets (the app-side module + the ext-apps
|
|
23
|
+
* `App` bundle it imports). These are static, non-sensitive JS that an MCP Apps
|
|
24
|
+
* host fetches into its sandbox iframe, so they are served WITHOUT auth.
|
|
25
|
+
*
|
|
26
|
+
* @returns `true` if the path matched a widget asset and a response was written.
|
|
27
|
+
*/
|
|
28
|
+
export function tryServeWidgetAsset(pathname, res) {
|
|
29
|
+
if (pathname === `${WIDGET_ASSET_BASE_PATH}/index.js`) {
|
|
30
|
+
res.writeHead(200, JS_HEADERS);
|
|
31
|
+
res.end(HELLO_WIDGET_CLIENT_JS);
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
if (pathname === `${WIDGET_ASSET_BASE_PATH}/app-with-deps.js`) {
|
|
35
|
+
res.writeHead(200, JS_HEADERS);
|
|
36
|
+
res.end(readAppWithDeps());
|
|
37
|
+
return true;
|
|
38
|
+
}
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=widget-asset-server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"widget-asset-server.js","sourceRoot":"","sources":["../src/widget-asset-server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAE7F,MAAM,WAAW,GAAgB,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEhE,uFAAuF;AACvF,IAAI,iBAAqC,CAAC;AAE1C,0FAA0F;AAC1F,SAAS,eAAe;IACtB,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;QACpC,MAAM,UAAU,GAAW,WAAW,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAAC;QAC/F,iBAAiB,GAAG,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED,0FAA0F;AAC1F,MAAM,UAAU,GAAqC;IACnD,cAAc,EAAE,gCAAgC;IAChD,eAAe,EAAE,UAAU;IAC3B,6BAA6B,EAAE,GAAG;CACnC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAAgB,EAAE,GAAwB;IAC5E,IAAI,QAAQ,KAAK,GAAG,sBAAsB,WAAW,EAAE,CAAC;QACtD,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QAC/B,GAAG,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,QAAQ,KAAK,GAAG,sBAAsB,mBAAmB,EAAE,CAAC;QAC9D,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QAC/B,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@grackle-ai/mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.112.0",
|
|
4
4
|
"description": "MCP (Model Context Protocol) server for Grackle — translates MCP tool calls to ConnectRPC",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -34,11 +34,12 @@
|
|
|
34
34
|
"@bufbuild/protobuf": "^2.5.0",
|
|
35
35
|
"@connectrpc/connect": "^2.0.0",
|
|
36
36
|
"@connectrpc/connect-node": "^2.0.0",
|
|
37
|
-
"@modelcontextprotocol/
|
|
37
|
+
"@modelcontextprotocol/ext-apps": "^1.7.2",
|
|
38
|
+
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
38
39
|
"pino": "^10.3.1",
|
|
39
40
|
"zod": "^4.0.0",
|
|
40
|
-
"@grackle-ai/
|
|
41
|
-
"@grackle-ai/
|
|
41
|
+
"@grackle-ai/common": "0.112.0",
|
|
42
|
+
"@grackle-ai/auth": "0.112.0"
|
|
42
43
|
},
|
|
43
44
|
"devDependencies": {
|
|
44
45
|
"@rushstack/heft": "1.2.7",
|