@fusedashlabs/ui9000-workspace
Version:
UI9000 workspace MCP. One tool, show_workspace, draws a chart from your table. Set TYPESAFE_API_KEY to let Jev choose the chart.
48 lines (47 loc) • 2.31 kB
TypeScript
/**
* MCP Apps surface for Cursor / Claude — same `ui://ui9000/chart` as mcp-ui.
* Prefer the sibling checkout's generated App View so local iframe/CSS
* changes show up without a deploy. Fall back to
* `https://mcp.ui9000.com/mcp-app/chart` when that file is missing
* (published bin, other machines).
* Do not put a bare data-link URL in tool text: hosts open it as a page (JSON).
*/
export declare const WORKSPACE_CHART_RESOURCE_URI = "ui://ui9000/chart";
export declare const MCP_APP_RESOURCE_MIME = "text/html;profile=mcp-app";
/** Same prefix mcp-ui chart-app parses from tool text (Cursor often strips `_meta`). */
export declare const UI9000_META_PREFIX = "ui9000-meta:";
/** chart-app reads `src/inspector/meta-contract.ts`. It does not invent `_meta` keys. */
export declare const HOSTED_MCP_APP_CHART_PATH = "/mcp-app/chart";
export type McpAppCsp = {
connectDomains: string[];
resourceDomains: string[];
frameDomains: string[];
};
export type McpAppResource = {
uri: string;
name: string;
mimeType: string;
description?: string;
loadHtml: () => string | Promise<string>;
ui: {
csp: McpAppCsp;
};
};
export type WorkspaceAppMeta = {
chartType: string;
dataUrl: string;
chartId: string;
/** Id only. The trace payload stays on `_meta`, never in this prefix. */
traceId?: string;
};
export declare function originFromBaseUrl(raw: string, fallback?: string): string;
export declare function buildWorkspaceChartCsp(baseUrl: string): McpAppCsp;
export declare function hostedChartAppUrl(baseUrl: string): string;
export declare function localChartAppHtmlPath(): string | undefined;
export declare function loadLocalChartAppHtml(): string | undefined;
export declare function loadChartAppHtml(baseUrl?: string, fetchImpl?: typeof fetch): Promise<string>;
export declare function loadHostedChartAppHtml(baseUrl?: string, fetchImpl?: typeof fetch): Promise<string>;
export declare function resetHostedChartAppHtmlCacheForTests(): void;
export declare function chartIdFromDataUrl(dataUrl: string): string;
export declare function formatWorkspaceAppText(summary: string, meta: WorkspaceAppMeta): string;
export declare function workspaceChartAppResource(baseUrl: string, loadHtml?: McpAppResource['loadHtml']): McpAppResource;