Skip to content

Commit 4995746

Browse files
authored
fix(types): forbid csp/permissions on McpUiToolMeta via never (#624)
* fix(types): forbid csp/permissions on McpUiToolMeta via never Hosts read _meta.ui.csp and _meta.ui.permissions from the resource (resources/read content item, with resources/list entry as fallback), never from the tool. Typing them as `never` on McpUiToolMeta gives TypeScript users a compile-time error pointing at McpUiResourceMeta instead of silently accepting and ignoring them. Companion to anthropics/apps#38705 (host-side console.warn). Refs anthropics/claude-ai-mcp#40. * drop misleading #40 link from McpUiToolMeta.csp JSDoc
1 parent 3fb521b commit 4995746

3 files changed

Lines changed: 28 additions & 0 deletions

File tree

src/generated/schema.json

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/generated/schema.ts

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/spec.types.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -783,6 +783,17 @@ export interface McpUiToolMeta {
783783
* - "app": Tool callable by the app from this server only
784784
*/
785785
visibility?: McpUiToolVisibility[];
786+
/**
787+
* `csp` belongs on the UI **resource** (see {@link McpUiResourceMeta}),
788+
* not the tool. Hosts read it from the `resources/read` content item
789+
* (with `resources/list` entry as fallback) and ignore it here.
790+
*/
791+
csp?: never;
792+
/**
793+
* `permissions` belongs on the UI **resource** (see {@link McpUiResourceMeta}),
794+
* not the tool. Hosts ignore it here.
795+
*/
796+
permissions?: never;
786797
}
787798

788799
/**

0 commit comments

Comments
 (0)