@mcp-b/webmcp-types 2.2.0 → 2.3.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 CHANGED
@@ -23,11 +23,11 @@ This package is the type-safety source of truth for WebMCP.
23
23
 
24
24
  ## Package Selection
25
25
 
26
- | Package | Use When |
27
- | --- | --- |
28
- | `@mcp-b/webmcp-types` | You only need compile-time types |
29
- | `@mcp-b/webmcp-polyfill` | You need strict WebMCP core runtime behavior |
30
- | `@mcp-b/global` | You want core + MCPB bridge extensions (`callTool`, prompts, resources, etc.) |
26
+ | Package | Use When |
27
+ | ------------------------ | ----------------------------------------------------------------------------- |
28
+ | `@mcp-b/webmcp-types` | You only need compile-time types |
29
+ | `@mcp-b/webmcp-polyfill` | You need strict WebMCP core runtime behavior |
30
+ | `@mcp-b/global` | You want core + MCPB bridge extensions (`callTool`, prompts, resources, etc.) |
31
31
 
32
32
  ## Install
33
33
 
@@ -118,7 +118,7 @@ Use `as const satisfies JsonSchemaForInference` so TypeScript preserves literal
118
118
  If schema types are widened (for example `InputSchema` loaded at runtime), inference intentionally falls back to:
119
119
 
120
120
  ```ts
121
- Record<string, unknown>
121
+ Record<string, unknown>;
122
122
  ```
123
123
 
124
124
  ### 2. Input inference rules
@@ -138,12 +138,12 @@ Other schema keywords are accepted as metadata but do not add new inferred struc
138
138
 
139
139
  ### 3. `additionalProperties` behavior
140
140
 
141
- | Schema shape | Inferred extras |
142
- | --- | --- |
143
- | `additionalProperties: false` | No extra keys |
144
- | `additionalProperties` omitted/`true` | Extra keys allowed as `unknown` |
145
- | `additionalProperties: { ... }` with no named `properties` | Map-like `Record<string, ...>` |
146
- | `additionalProperties: { ... }` with named `properties` | Named properties inferred, extras remain `unknown` |
141
+ | Schema shape | Inferred extras |
142
+ | ---------------------------------------------------------- | -------------------------------------------------- |
143
+ | `additionalProperties: false` | No extra keys |
144
+ | `additionalProperties` omitted/`true` | Extra keys allowed as `unknown` |
145
+ | `additionalProperties: { ... }` with no named `properties` | Map-like `Record<string, ...>` |
146
+ | `additionalProperties: { ... }` with named `properties` | Named properties inferred, extras remain `unknown` |
147
147
 
148
148
  ### 4. Required keys depend on literal `required`
149
149
 
@@ -208,25 +208,27 @@ void result;
208
208
 
209
209
  ## Commonly Used Exports
210
210
 
211
- | Export | Purpose |
212
- | --- | --- |
213
- | `ModelContext` | Strict core `navigator.modelContext` type |
214
- | `ToolDescriptor` | Explicitly typed tool descriptor |
215
- | `ToolDescriptorFromSchema` | Schema-driven descriptor with inferred args/result |
216
- | `JsonSchemaForInference` | Supported JSON Schema subset for inference |
217
- | `InferArgsFromInputSchema` | Derive args shape from a schema type |
218
- | `ToolResultFromOutputSchema` | Derive `structuredContent` type from output schema |
219
- | `TypedModelContext` | Name-aware typed `callTool`/`listTools` for known registries |
220
- | `CallToolResult` | Tool response type |
221
- | `ContentBlock` / `LooseContentBlock` | Strict and pragmatic content block typing |
222
- | `ModelContextClient` | Tool execution client (`requestUserInteraction`) |
211
+ | Export | Purpose |
212
+ | ------------------------------------ | ------------------------------------------------------------ |
213
+ | `ModelContext` | Strict core `navigator.modelContext` type |
214
+ | `ToolDescriptor` | Explicitly typed tool descriptor |
215
+ | `ToolDescriptorFromSchema` | Schema-driven descriptor with inferred args/result |
216
+ | `JsonSchemaForInference` | Supported JSON Schema subset for inference |
217
+ | `InferArgsFromInputSchema` | Derive args shape from a schema type |
218
+ | `ToolResultFromOutputSchema` | Derive `structuredContent` type from output schema |
219
+ | `TypedModelContext` | Name-aware typed `callTool`/`listTools` for known registries |
220
+ | `CallToolResult` | Tool response type |
221
+ | `ContentBlock` / `LooseContentBlock` | Strict and pragmatic content block typing |
222
+ | `ModelContextClient` | Tool execution client (`requestUserInteraction`) |
223
223
 
224
224
  ## Important Notes
225
225
 
226
226
  - This package does not install any runtime behavior.
227
227
  - Runtime validation/execution behavior depends on your WebMCP runtime package.
228
228
  - `provideContext()` and `clearContext()` remain typed for compatibility, but are deprecated because the upstream WebMCP spec removed them on March 5, 2026.
229
- - Current Chrome Beta 147 exposes `unregisterTool(name)` as a string-name API, while MCP-B compatibility runtimes may also accept a tool-like object with `name`.
229
+ - `unregisterTool(name)` is `@deprecated`. The April 23, 2026 WebMCP draft removed it from the spec in favor of an `AbortSignal` passed via `registerTool(tool, { signal })`. The type is retained for compatibility with older native previews and existing MCP-B wrappers; it will be removed in the next major version.
230
+ - `registerTool(tool, options?)` accepts a `ModelContextRegisterToolOptions` dictionary with an optional `signal: AbortSignal`. Aborting the signal unregisters the tool.
231
+ - `ToolAnnotations.untrustedContentHint` was added to the spec on April 23, 2026 to flag tools whose output may include externally-sourced content.
230
232
  - `navigator.modelContextTesting` is typed as optional for compatibility with Chromium preview/testing surfaces.
231
233
 
232
234
  ## License
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import type { ModelContext, ModelContextTesting } from './model-context.js';
2
2
  export type { AudioContent, BlobResourceContents, CallToolResult, ContentBlock, ElicitationFormParams, ElicitationParams, ElicitationResult, ElicitationUrlParams, EmbeddedResource, ImageContent, InputSchema, InputSchemaProperty, JsonObject, JsonPrimitive, JsonValue, LooseContentBlock, RegistrationHandle, ResourceContents, ResourceLink, TextContent, TextResourceContents, ToolResponse, } from './common.js';
3
3
  export type { InferArgsFromInputSchema, InferJsonSchema, JsonSchemaArray, JsonSchemaBoolean, JsonSchemaEnumValue, JsonSchemaForInference, JsonSchemaMultiType, JsonSchemaNull, JsonSchemaNumber, JsonSchemaObject, JsonSchemaPrimitiveType, JsonSchemaString, JsonSchemaType, JsonSchemaTypeArray, } from './json-schema.js';
4
- export type { AnyToolDescriptor, InferToolArgs, InferToolResult, ModelContext, ModelContextCore, ModelContextExtensions, ModelContextInput, ModelContextOptions, ModelContextTesting, ModelContextTestingExecuteToolOptions, ModelContextTestingPolyfillExtensions, ModelContextTestingToolInfo, ModelContextToolReference, ModelContextToolRegistrationHandle, ModelContextWithExtensions, ToolArgsByName, ToolByName, ToolCallEvent, ToolCallParams, ToolName, ToolResultByName, TypedModelContext, } from './model-context.js';
4
+ export type { AnyToolDescriptor, InferToolArgs, InferToolResult, ModelContext, ModelContextCore, ModelContextExtensions, ModelContextInput, ModelContextOptions, ModelContextRegisterToolOptions, ModelContextTesting, ModelContextTestingExecuteToolOptions, ModelContextTestingPolyfillExtensions, ModelContextTestingToolInfo, ModelContextToolReference, ModelContextToolRegistrationHandle, ModelContextWithExtensions, ToolArgsByName, ToolByName, ToolCallEvent, ToolCallParams, ToolName, ToolResultByName, TypedModelContext, } from './model-context.js';
5
5
  export type { MaybePromise, ModelContextClient, ToolAnnotations, ToolDescriptor, ToolDescriptorFromSchema, ToolExecuteResult, ToolExecutionContext, ToolListItem, ToolRawResult, ToolResultFromOutputSchema, } from './tool.js';
6
6
  declare global {
7
7
  interface Navigator {
@@ -11,7 +11,7 @@ declare global {
11
11
  modelContext: ModelContext;
12
12
  /**
13
13
  * Web Model Context testing API surface (Chromium early preview).
14
- * @deprecated Prefer navigator.modelContext.callTool(...) and toolschanged events
14
+ * @deprecated Prefer navigator.modelContext.callTool(...) and toolchange events
15
15
  * for in-page consumers. Chromium still exposes this API for testing flows.
16
16
  */
17
17
  modelContextTesting?: ModelContextTesting;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAG5E,YAAY,EACV,YAAY,EACZ,oBAAoB,EACpB,cAAc,EACd,YAAY,EACZ,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,mBAAmB,EACnB,UAAU,EACV,aAAa,EACb,SAAS,EACT,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,oBAAoB,EACpB,YAAY,GACb,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,wBAAwB,EACxB,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACnB,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,uBAAuB,EACvB,gBAAgB,EAChB,cAAc,EACd,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,sBAAsB,EACtB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,qCAAqC,EACrC,qCAAqC,EACrC,2BAA2B,EAC3B,yBAAyB,EACzB,kCAAkC,EAClC,0BAA0B,EAC1B,cAAc,EACd,UAAU,EACV,aAAa,EACb,cAAc,EACd,QAAQ,EACR,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,wBAAwB,EACxB,iBAAiB,EACjB,oBAAoB,EACpB,YAAY,EACZ,aAAa,EACb,0BAA0B,GAC3B,MAAM,WAAW,CAAC;AAMnB,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,SAAS;QACjB;;WAEG;QACH,YAAY,EAAE,YAAY,CAAC;QAE3B;;;;WAIG;QACH,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;KAC3C;CACF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAG5E,YAAY,EACV,YAAY,EACZ,oBAAoB,EACpB,cAAc,EACd,YAAY,EACZ,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,mBAAmB,EACnB,UAAU,EACV,aAAa,EACb,SAAS,EACT,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,oBAAoB,EACpB,YAAY,GACb,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,wBAAwB,EACxB,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACnB,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,uBAAuB,EACvB,gBAAgB,EAChB,cAAc,EACd,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,sBAAsB,EACtB,iBAAiB,EACjB,mBAAmB,EACnB,+BAA+B,EAC/B,mBAAmB,EACnB,qCAAqC,EACrC,qCAAqC,EACrC,2BAA2B,EAC3B,yBAAyB,EACzB,kCAAkC,EAClC,0BAA0B,EAC1B,cAAc,EACd,UAAU,EACV,aAAa,EACb,cAAc,EACd,QAAQ,EACR,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,wBAAwB,EACxB,iBAAiB,EACjB,oBAAoB,EACpB,YAAY,EACZ,aAAa,EACb,0BAA0B,GAC3B,MAAM,WAAW,CAAC;AAMnB,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,SAAS;QACjB;;WAEG;QACH,YAAY,EAAE,YAAY,CAAC;QAE3B;;;;WAIG;QACH,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;KAC3C;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"json-schema.d.ts","sourceRoot":"","sources":["../src/json-schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"json-schema.d.ts","sourceRoot":"","sources":["../src/json-schema.ts"],"names":[],"mappings":"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"}
@@ -29,18 +29,30 @@ export interface ModelContextTestingExecuteToolOptions {
29
29
  signal?: AbortSignal;
30
30
  }
31
31
  /**
32
- * Chromium early-preview testing API on navigator.modelContextTesting.
32
+ * Chromium testing API on navigator.modelContextTesting.
33
+ *
34
+ * The native runtime extends EventTarget and fires `toolchange` events.
33
35
  */
34
- export interface ModelContextTesting {
36
+ export interface ModelContextTesting extends EventTarget {
35
37
  listTools(): ModelContextTestingToolInfo[];
36
38
  executeTool(toolName: string, inputArgsJson: string, options?: ModelContextTestingExecuteToolOptions): Promise<string | null>;
37
- registerToolsChangedCallback(callback: () => void): void;
38
39
  getCrossDocumentScriptToolResult(): Promise<string>;
40
+ ontoolchange: ((this: ModelContextTesting, ev: Event) => unknown) | null;
41
+ /**
42
+ * @deprecated Use `addEventListener('toolchange', ...)` instead.
43
+ */
44
+ registerToolsChangedCallback?(callback: () => void): void;
39
45
  }
40
46
  /**
41
47
  * Polyfill-only testing extensions layered on top of ModelContextTesting.
42
48
  */
43
49
  export interface ModelContextTestingPolyfillExtensions {
50
+ /**
51
+ * Registers a callback invoked when the tool list changes.
52
+ * @deprecated Use `addEventListener('toolchange', ...)` on native runtimes.
53
+ * Kept for polyfill backward compatibility.
54
+ */
55
+ registerToolsChangedCallback(callback: () => void): void;
44
56
  getToolCalls(): Array<{
45
57
  toolName: string;
46
58
  arguments: Record<string, unknown>;
@@ -134,12 +146,20 @@ export interface ModelContextToolReference {
134
146
  /**
135
147
  * Non-standard compatibility handle returned by some runtimes after registerTool().
136
148
  *
137
- * Strict core WebMCP and current Chromium type registerTool() as returning void.
138
- * This handle is kept only for compatibility with older non-standard runtimes.
149
+ * @deprecated Use `options.signal` on `registerTool(tool, options)`. Will be removed in the next major.
139
150
  */
140
151
  export interface ModelContextToolRegistrationHandle {
141
152
  unregister(): void;
142
153
  }
154
+ /**
155
+ * @see {@link https://webmachinelearning.github.io/webmcp/#dictdef-modelcontextregistertooloptions}
156
+ */
157
+ export interface ModelContextRegisterToolOptions {
158
+ /**
159
+ * An `AbortSignal` whose abortion unregisters the tool. A pre-aborted signal short-circuits registration.
160
+ */
161
+ signal?: AbortSignal;
162
+ }
143
163
  /**
144
164
  * Strict WebMCP core interface on navigator.modelContext.
145
165
  */
@@ -155,25 +175,37 @@ export interface ModelContextCore {
155
175
  * `execute(args)` is inferred from `inputSchema`, and when a literal object
156
176
  * `outputSchema` is provided, `execute(...).structuredContent` is inferred too.
157
177
  */
158
- registerTool<TInputSchema extends JsonSchemaForInference, TOutputSchema extends JsonSchemaForInference | undefined = undefined, TName extends string = string>(tool: ToolDescriptorFromSchema<TInputSchema, TOutputSchema, TName>): void;
178
+ registerTool<TInputSchema extends JsonSchemaForInference, TOutputSchema extends JsonSchemaForInference | undefined = undefined, TName extends string = string>(tool: ToolDescriptorFromSchema<TInputSchema, TOutputSchema, TName>, options?: ModelContextRegisterToolOptions): void;
159
179
  /**
160
180
  * Registers a dynamic tool with explicitly typed args/result.
161
181
  */
162
182
  registerTool<TInputSchema extends InputSchema, TArgs extends Record<string, unknown> = Record<string, unknown>, TName extends string = string>(tool: ToolDescriptor<TArgs, ToolRawResult, TName> & {
163
183
  inputSchema: TInputSchema;
164
- } & (TInputSchema extends InputSchema ? string extends TInputSchema['type'] ? unknown : never : unknown)): void;
184
+ } & (TInputSchema extends InputSchema ? string extends TInputSchema['type'] ? unknown : never : unknown), options?: ModelContextRegisterToolOptions): void;
165
185
  /**
166
186
  * Registers a dynamic tool without an explicit inputSchema.
167
187
  * Runtime defaults this to an empty object schema.
168
188
  */
169
189
  registerTool<TArgs extends Record<string, unknown> = Record<string, unknown>, TName extends string = string>(tool: Omit<ToolDescriptor<TArgs, ToolRawResult, TName>, 'inputSchema'> & {
170
190
  inputSchema?: undefined;
171
- }): void;
191
+ }, options?: ModelContextRegisterToolOptions): void;
192
+ /**
193
+ * Lists currently registered producer tools using the native Chromium preview
194
+ * shape. Current Chromium returns JSON-stringified schemas here, matching
195
+ * ModelContextTesting.listTools().
196
+ */
197
+ getTools(): ModelContextTestingToolInfo[];
198
+ /**
199
+ * Handler invoked when the producer tool list changes.
200
+ */
201
+ ontoolchange: ((this: ModelContextCore, ev: Event) => unknown) | null;
202
+ addEventListener(type: 'toolchange', listener: () => void, options?: boolean | AddEventListenerOptions): void;
203
+ removeEventListener(type: 'toolchange', listener: () => void, options?: boolean | EventListenerOptions): void;
204
+ dispatchEvent(event: Event): boolean;
172
205
  /**
173
206
  * Unregisters a dynamic tool by name or tool reference.
174
207
  *
175
- * Current Chromium exposes string-name unregistration.
176
- * MCP-B compatibility runtimes may also accept the originally registered tool object.
208
+ * @deprecated Removed from the WebMCP spec on April 23, 2026. Use `registerTool(tool, { signal })`. Will be removed in the next major.
177
209
  */
178
210
  unregisterTool(nameOrTool: string | ModelContextToolReference): void;
179
211
  /**
@@ -205,6 +237,10 @@ export interface ModelContextExtensions {
205
237
  /**
206
238
  * Adds a listener for tool list changes.
207
239
  */
240
+ addEventListener(type: 'toolchange', listener: () => void, options?: boolean | AddEventListenerOptions): void;
241
+ /**
242
+ * @deprecated Use `'toolchange'` instead. Will be removed in the next major.
243
+ */
208
244
  addEventListener(type: 'toolschanged', listener: () => void, options?: boolean | AddEventListenerOptions): void;
209
245
  /**
210
246
  * Removes a listener for tool invocation events.
@@ -213,6 +249,10 @@ export interface ModelContextExtensions {
213
249
  /**
214
250
  * Removes a listener for tool list changes.
215
251
  */
252
+ removeEventListener(type: 'toolchange', listener: () => void, options?: boolean | EventListenerOptions): void;
253
+ /**
254
+ * @deprecated Use `'toolchange'` instead. Will be removed in the next major.
255
+ */
216
256
  removeEventListener(type: 'toolschanged', listener: () => void, options?: boolean | EventListenerOptions): void;
217
257
  /**
218
258
  * Dispatches an event.
@@ -1 +1 @@
1
- {"version":3,"file":"model-context.d.ts","sourceRoot":"","sources":["../src/model-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,KAAK,EACV,cAAc,EACd,wBAAwB,EACxB,YAAY,EACZ,aAAa,EACd,MAAM,WAAW,CAAC;AAMnB;;GAEG;AACH,MAAM,WAAW,iBAAiB,CAAC,MAAM,SAAS,SAAS,cAAc,EAAE,GAAG,cAAc,EAAE;IAC5F;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,iBAAiB,CAAC;AAMpD;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,qCAAqC;IACpD,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,SAAS,IAAI,2BAA2B,EAAE,CAAC;IAC3C,WAAW,CACT,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE,qCAAqC,GAC9C,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC1B,4BAA4B,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IACzD,gCAAgC,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CACrD;AAED;;GAEG;AACH,MAAM,WAAW,qCAAqC;IACpD,YAAY,IAAI,KAAK,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnC,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC,CAAC;IACH,cAAc,IAAI,IAAI,CAAC;IACvB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAC;IACpE,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9C,yBAAyB,IAAI,IAAI,CAAC;IAClC,kBAAkB,IAAI,UAAU,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC,CAAC;IACtE,KAAK,IAAI,IAAI,CAAC;CACf;AAMD;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAEvE;;GAEG;AACH,MAAM,MAAM,aAAa,CAAC,KAAK,IAAI,KAAK,SAAS,cAAc,CAC7D,MAAM,KAAK,EACX,MAAM,QAAQ,EACd,MAAM,MAAM,CACb,GACG,KAAK,GACL,KAAK,CAAC;AAEV;;GAEG;AACH,MAAM,MAAM,eAAe,CAAC,KAAK,IAAI,KAAK,SAAS,cAAc,CAC/D,MAAM,MAAM,EACZ,MAAM,OAAO,EACb,MAAM,MAAM,CACb,GACG,OAAO,GACP,KAAK,CAAC;AAEV;;GAEG;AACH,MAAM,MAAM,QAAQ,CAAC,MAAM,SAAS,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1F;;GAEG;AACH,MAAM,MAAM,UAAU,CACpB,MAAM,SAAS,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,EAC1C,KAAK,SAAS,QAAQ,CAAC,MAAM,CAAC,IAC5B,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,CAAC,CAAC;AAE7C;;GAEG;AACH,MAAM,MAAM,cAAc,CACxB,MAAM,SAAS,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,EAC1C,KAAK,SAAS,QAAQ,CAAC,MAAM,CAAC,IAC5B,aAAa,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAE7C;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAC1B,MAAM,SAAS,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,EAC1C,KAAK,SAAS,QAAQ,CAAC,MAAM,CAAC,IAC5B,eAAe,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAE/C;;;;GAIG;AACH,MAAM,MAAM,cAAc,CACxB,KAAK,SAAS,MAAM,GAAG,MAAM,EAC7B,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAC3D;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,GAAG,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GACtD;IAAE,SAAS,CAAC,EAAE,KAAK,CAAA;CAAE,GACrB;IAAE,SAAS,EAAE,KAAK,CAAA;CAAE,CAAC,CAAC;AAM1B;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,KAAK;IAC1C;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEnC;;OAEG;IACH,WAAW,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,CAAC;CAC/C;AAED;;;;;GAKG;AACH,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;GAKG;AACH,MAAM,WAAW,kCAAkC;IACjD,UAAU,IAAI,IAAI,CAAC;CACpB;AAMD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAG/B;;;OAGG;IACH,cAAc,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAIpD;;;;;OAKG;IACH,YAAY,CACV,YAAY,SAAS,sBAAsB,EAC3C,aAAa,SAAS,sBAAsB,GAAG,SAAS,GAAG,SAAS,EACpE,KAAK,SAAS,MAAM,GAAG,MAAM,EAC7B,IAAI,EAAE,wBAAwB,CAAC,YAAY,EAAE,aAAa,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC;IAE5E;;OAEG;IACH,YAAY,CACV,YAAY,SAAS,WAAW,EAChC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/D,KAAK,SAAS,MAAM,GAAG,MAAM,EAE7B,IAAI,EAAE,cAAc,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC,GAAG;QAClD,WAAW,EAAE,YAAY,CAAC;KAC3B,GAAG,CAAC,YAAY,SAAS,WAAW,GAC/B,MAAM,SAAS,YAAY,CAAC,MAAM,CAAC,GACjC,OAAO,GACP,KAAK,GACP,OAAO,CAAC,GACb,IAAI,CAAC;IAER;;;OAGG;IACH,YAAY,CACV,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/D,KAAK,SAAS,MAAM,GAAG,MAAM,EAE7B,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC,EAAE,aAAa,CAAC,GAAG;QACvE,WAAW,CAAC,EAAE,SAAS,CAAC;KACzB,GACA,IAAI,CAAC;IAER;;;;;OAKG;IACH,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,yBAAyB,GAAG,IAAI,CAAC;IAErE;;;OAGG;IACH,YAAY,IAAI,IAAI,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC;;OAEG;IACH,SAAS,IAAI,YAAY,EAAE,CAAC;IAE5B;;OAEG;IACH,QAAQ,CACN,KAAK,SAAS,MAAM,GAAG,MAAM,EAC7B,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/D,MAAM,EAAE;QAAE,IAAI,EAAE,KAAK,CAAC;QAAC,SAAS,CAAC,EAAE,KAAK,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAIrE;;OAEG;IACH,gBAAgB,CACd,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EACxD,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAC1C,IAAI,CAAC;IAER;;OAEG;IACH,gBAAgB,CACd,IAAI,EAAE,cAAc,EACpB,QAAQ,EAAE,MAAM,IAAI,EACpB,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAC1C,IAAI,CAAC;IAER;;OAEG;IACH,mBAAmB,CACjB,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EACxD,OAAO,CAAC,EAAE,OAAO,GAAG,oBAAoB,GACvC,IAAI,CAAC;IAER;;OAEG;IACH,mBAAmB,CACjB,IAAI,EAAE,cAAc,EACpB,QAAQ,EAAE,MAAM,IAAI,EACpB,OAAO,CAAC,EAAE,OAAO,GAAG,oBAAoB,GACvC,IAAI,CAAC;IAER;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,gBAAgB,CAAC;AAE5C;;GAEG;AACH,MAAM,MAAM,0BAA0B,GAAG,gBAAgB,GAAG,sBAAsB,CAAC;AAMnF;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,CAC3B,MAAM,SAAS,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,GAAG,SAAS,cAAc,EAAE,IACpE,0BAA0B,GAAG;IAC/B;;OAEG;IACH,QAAQ,CAAC,KAAK,SAAS,QAAQ,CAAC,MAAM,CAAC,EACrC,MAAM,EAAE,cAAc,CAAC,KAAK,EAAE,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,GAC3D,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;IAE5C;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAE/F;;OAEG;IACH,SAAS,IAAI,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;CACpD,CAAC"}
1
+ {"version":3,"file":"model-context.d.ts","sourceRoot":"","sources":["../src/model-context.ts"],"names":[],"mappings":"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"}
package/dist/tool.d.ts CHANGED
@@ -3,6 +3,7 @@ import type { InferArgsFromInputSchema, InferJsonSchema, JsonSchemaForInference,
3
3
  /**
4
4
  * Annotations providing hints about tool behavior.
5
5
  *
6
+ * @see {@link https://webmachinelearning.github.io/webmcp/#dictdef-toolannotations}
6
7
  * @see {@link https://spec.modelcontextprotocol.io/specification/server/tools/}
7
8
  */
8
9
  export interface ToolAnnotations {
@@ -14,6 +15,10 @@ export interface ToolAnnotations {
14
15
  * Indicates the tool is read-only.
15
16
  */
16
17
  readOnlyHint?: boolean | 'true' | 'false';
18
+ /**
19
+ * Indicates the tool's output may include content from outside the page's trust boundary.
20
+ */
21
+ untrustedContentHint?: boolean | 'true' | 'false';
17
22
  /**
18
23
  * Indicates the tool may perform destructive actions.
19
24
  */
@@ -88,7 +93,7 @@ export interface ToolDescriptor<TArgs extends Record<string, unknown> = Record<s
88
93
  /**
89
94
  * Optional schema describing output payload shape.
90
95
  */
91
- outputSchema?: InputSchema;
96
+ outputSchema?: JsonSchemaForInference;
92
97
  /**
93
98
  * Optional behavior hints for LLM planners.
94
99
  */
@@ -155,7 +160,7 @@ export interface ToolListItem<TName extends string = string> {
155
160
  /**
156
161
  * Optional JSON Schema describing output payload shape.
157
162
  */
158
- outputSchema?: InputSchema;
163
+ outputSchema?: JsonSchemaForInference;
159
164
  /**
160
165
  * Optional behavior hints for LLM planners.
161
166
  */
@@ -1 +1 @@
1
- {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../src/tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../src/tool.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,35 +1,26 @@
1
1
  {
2
2
  "name": "@mcp-b/webmcp-types",
3
- "version": "2.2.0",
3
+ "version": "2.3.0",
4
4
  "description": "Strict TypeScript type definitions for the WebMCP core API (navigator.modelContext)",
5
5
  "keywords": [
6
- "webmcp",
7
6
  "model-context",
8
7
  "navigator-modelcontext",
9
8
  "types",
10
9
  "typescript",
11
- "web-standard"
10
+ "web-standard",
11
+ "webmcp"
12
12
  ],
13
13
  "homepage": "https://docs.mcp-b.ai/packages/webmcp-types",
14
14
  "bugs": {
15
15
  "url": "https://github.com/WebMCP-org/npm-packages/issues"
16
16
  },
17
+ "license": "MIT",
18
+ "author": "Alex Nahas",
17
19
  "repository": {
18
20
  "type": "git",
19
21
  "url": "git+https://github.com/WebMCP-org/npm-packages.git",
20
22
  "directory": "packages/webmcp-types"
21
23
  },
22
- "license": "MIT",
23
- "author": "Alex Nahas",
24
- "sideEffects": false,
25
- "type": "module",
26
- "exports": {
27
- ".": {
28
- "types": "./dist/index.d.ts"
29
- }
30
- },
31
- "main": "",
32
- "types": "./dist/index.d.ts",
33
24
  "files": [
34
25
  "dist",
35
26
  "src/common.ts",
@@ -38,30 +29,38 @@
38
29
  "src/model-context.ts",
39
30
  "src/tool.ts"
40
31
  ],
41
- "devDependencies": {
42
- "@vitest/browser": "^4.0.18",
43
- "@vitest/browser-playwright": "^4.0.18",
44
- "@vitest/coverage-v8": "^4.0.18",
45
- "playwright": "^1.58.0",
46
- "typescript": "^5.8.3",
47
- "vitest": "^4.0.18"
32
+ "type": "module",
33
+ "sideEffects": false,
34
+ "main": "",
35
+ "types": "./dist/index.d.ts",
36
+ "exports": {
37
+ ".": {
38
+ "types": "./dist/index.d.ts"
39
+ }
48
40
  },
49
41
  "publishConfig": {
50
42
  "access": "public",
51
43
  "registry": "https://registry.npmjs.org/"
52
44
  },
45
+ "devDependencies": {
46
+ "@vitest/coverage-v8": "^4.1.0",
47
+ "playwright": "^1.58.0",
48
+ "typescript": "^5.8.3",
49
+ "vite-plus": "latest",
50
+ "vitest": "npm:@voidzero-dev/vite-plus-test@latest"
51
+ },
53
52
  "scripts": {
54
53
  "build": "tsc -p tsconfig.build.json",
55
- "check": "biome check --write .",
56
- "clean": "rm -rf dist .turbo",
57
- "format": "biome format --write .",
58
- "lint": "biome lint --write .",
54
+ "check": "vp check --fix",
55
+ "clean": "rm -rf dist",
56
+ "format": "vp fmt --write",
57
+ "lint": "vp lint --fix",
59
58
  "publish:dry": "pnpm publish --access public --dry-run",
60
59
  "publish:npm": "pnpm publish --access public",
61
- "test": "vitest run && pnpm run test:conformance",
62
- "test:browser": "vitest run --config vitest.browser.config.ts --browser.headless",
63
- "test:browser:ui": "vitest --config vitest.browser.config.ts --browser",
64
- "test:conformance": "vitest run --config vitest.conformance.config.ts",
65
- "typecheck": "tsc --noEmit && vitest run --typecheck --silent"
60
+ "test": "vp test run && pnpm run test:conformance",
61
+ "test:browser": "vp test run --config vitest.browser.config.ts --browser.headless",
62
+ "test:browser:ui": "vp test --config vitest.browser.config.ts --browser",
63
+ "test:conformance": "vp test run --config vitest.conformance.config.ts",
64
+ "typecheck": "tsc --noEmit && vp test run --typecheck --silent"
66
65
  }
67
66
  }
package/src/index.ts CHANGED
@@ -50,6 +50,7 @@ export type {
50
50
  ModelContextExtensions,
51
51
  ModelContextInput,
52
52
  ModelContextOptions,
53
+ ModelContextRegisterToolOptions,
53
54
  ModelContextTesting,
54
55
  ModelContextTestingExecuteToolOptions,
55
56
  ModelContextTestingPolyfillExtensions,
@@ -91,7 +92,7 @@ declare global {
91
92
 
92
93
  /**
93
94
  * Web Model Context testing API surface (Chromium early preview).
94
- * @deprecated Prefer navigator.modelContext.callTool(...) and toolschanged events
95
+ * @deprecated Prefer navigator.modelContext.callTool(...) and toolchange events
95
96
  * for in-page consumers. Chromium still exposes this API for testing flows.
96
97
  */
97
98
  modelContextTesting?: ModelContextTesting;
@@ -204,9 +204,10 @@ type AdditionalSchemaOf<TSchema> = TSchema extends { additionalProperties: infer
204
204
  ? TAdditional
205
205
  : undefined;
206
206
 
207
- type AdditionalPropsValue<TSchema> = AdditionalSchemaOf<TSchema> extends JsonSchemaForInference
208
- ? InferJsonSchema<AdditionalSchemaOf<TSchema>>
209
- : unknown;
207
+ type AdditionalPropsValue<TSchema> =
208
+ AdditionalSchemaOf<TSchema> extends JsonSchemaForInference
209
+ ? InferJsonSchema<AdditionalSchemaOf<TSchema>>
210
+ : unknown;
210
211
 
211
212
  type AdditionalPropsOf<TSchema> = TSchema extends { additionalProperties: false }
212
213
  ? EmptyObject
@@ -250,9 +251,10 @@ type InferFromTypeOption<TSchema, TType extends JsonSchemaType> = TType extends
250
251
  ? null
251
252
  : unknown;
252
253
 
253
- type InferFromTypeKeyword<TSchema> = TypeOptionsOf<TSchema> extends never
254
- ? unknown
255
- : InferFromTypeOption<TSchema, TypeOptionsOf<TSchema>>;
254
+ type InferFromTypeKeyword<TSchema> =
255
+ TypeOptionsOf<TSchema> extends never
256
+ ? unknown
257
+ : InferFromTypeOption<TSchema, TypeOptionsOf<TSchema>>;
256
258
 
257
259
  type ApplyNullable<TSchema, TValue> = TSchema extends { nullable: true } ? TValue | null : TValue;
258
260
 
@@ -275,11 +277,12 @@ type IsWidenedTypeKeyword<TTypeKeyword> = string extends TTypeKeyword
275
277
  : false
276
278
  : false;
277
279
 
278
- type IncludesObjectType<TSchema> = TypeOptionsOf<TSchema> extends never
279
- ? false
280
- : 'object' extends TypeOptionsOf<TSchema>
281
- ? true
282
- : false;
280
+ type IncludesObjectType<TSchema> =
281
+ TypeOptionsOf<TSchema> extends never
282
+ ? false
283
+ : 'object' extends TypeOptionsOf<TSchema>
284
+ ? true
285
+ : false;
283
286
 
284
287
  /**
285
288
  * Infers tool argument types from a root `InputSchema`.
@@ -288,10 +291,9 @@ type IncludesObjectType<TSchema> = TypeOptionsOf<TSchema> extends never
288
291
  * `InputSchema` loaded at runtime), this intentionally falls back to
289
292
  * `Record<string, unknown>`.
290
293
  */
291
- export type InferArgsFromInputSchema<TSchema> = IsWidenedTypeKeyword<
292
- TypeKeywordOf<TSchema>
293
- > extends true
294
- ? Record<string, unknown>
295
- : IncludesObjectType<TSchema> extends true
296
- ? InferObject<TSchema>
297
- : Record<string, unknown>;
294
+ export type InferArgsFromInputSchema<TSchema> =
295
+ IsWidenedTypeKeyword<TypeKeywordOf<TSchema>> extends true
296
+ ? Record<string, unknown>
297
+ : IncludesObjectType<TSchema> extends true
298
+ ? InferObject<TSchema>
299
+ : Record<string, unknown>;
@@ -47,23 +47,35 @@ export interface ModelContextTestingExecuteToolOptions {
47
47
  }
48
48
 
49
49
  /**
50
- * Chromium early-preview testing API on navigator.modelContextTesting.
50
+ * Chromium testing API on navigator.modelContextTesting.
51
+ *
52
+ * The native runtime extends EventTarget and fires `toolchange` events.
51
53
  */
52
- export interface ModelContextTesting {
54
+ export interface ModelContextTesting extends EventTarget {
53
55
  listTools(): ModelContextTestingToolInfo[];
54
56
  executeTool(
55
57
  toolName: string,
56
58
  inputArgsJson: string,
57
59
  options?: ModelContextTestingExecuteToolOptions
58
60
  ): Promise<string | null>;
59
- registerToolsChangedCallback(callback: () => void): void;
60
61
  getCrossDocumentScriptToolResult(): Promise<string>;
62
+ ontoolchange: ((this: ModelContextTesting, ev: Event) => unknown) | null;
63
+ /**
64
+ * @deprecated Use `addEventListener('toolchange', ...)` instead.
65
+ */
66
+ registerToolsChangedCallback?(callback: () => void): void;
61
67
  }
62
68
 
63
69
  /**
64
70
  * Polyfill-only testing extensions layered on top of ModelContextTesting.
65
71
  */
66
72
  export interface ModelContextTestingPolyfillExtensions {
73
+ /**
74
+ * Registers a callback invoked when the tool list changes.
75
+ * @deprecated Use `addEventListener('toolchange', ...)` on native runtimes.
76
+ * Kept for polyfill backward compatibility.
77
+ */
78
+ registerToolsChangedCallback(callback: () => void): void;
67
79
  getToolCalls(): Array<{
68
80
  toolName: string;
69
81
  arguments: Record<string, unknown>;
@@ -91,24 +103,14 @@ export type AnyToolDescriptor = ToolDescriptor<never, unknown, string>;
91
103
  /**
92
104
  * Infers argument shape from a tool descriptor.
93
105
  */
94
- export type InferToolArgs<TTool> = TTool extends ToolDescriptor<
95
- infer TArgs,
96
- infer _TResult,
97
- infer _TName
98
- >
99
- ? TArgs
100
- : never;
106
+ export type InferToolArgs<TTool> =
107
+ TTool extends ToolDescriptor<infer TArgs, infer _TResult, infer _TName> ? TArgs : never;
101
108
 
102
109
  /**
103
110
  * Infers result shape from a tool descriptor.
104
111
  */
105
- export type InferToolResult<TTool> = TTool extends ToolDescriptor<
106
- infer _TArgs,
107
- infer TResult,
108
- infer _TName
109
- >
110
- ? TResult
111
- : never;
112
+ export type InferToolResult<TTool> =
113
+ TTool extends ToolDescriptor<infer _TArgs, infer TResult, infer _TName> ? TResult : never;
112
114
 
113
115
  /**
114
116
  * Union of tool names from a tuple/array of descriptors.
@@ -188,13 +190,22 @@ export interface ModelContextToolReference {
188
190
  /**
189
191
  * Non-standard compatibility handle returned by some runtimes after registerTool().
190
192
  *
191
- * Strict core WebMCP and current Chromium type registerTool() as returning void.
192
- * This handle is kept only for compatibility with older non-standard runtimes.
193
+ * @deprecated Use `options.signal` on `registerTool(tool, options)`. Will be removed in the next major.
193
194
  */
194
195
  export interface ModelContextToolRegistrationHandle {
195
196
  unregister(): void;
196
197
  }
197
198
 
199
+ /**
200
+ * @see {@link https://webmachinelearning.github.io/webmcp/#dictdef-modelcontextregistertooloptions}
201
+ */
202
+ export interface ModelContextRegisterToolOptions {
203
+ /**
204
+ * An `AbortSignal` whose abortion unregisters the tool. A pre-aborted signal short-circuits registration.
205
+ */
206
+ signal?: AbortSignal;
207
+ }
208
+
198
209
  // ============================================================================
199
210
  // Model Context
200
211
  // ============================================================================
@@ -223,7 +234,10 @@ export interface ModelContextCore {
223
234
  TInputSchema extends JsonSchemaForInference,
224
235
  TOutputSchema extends JsonSchemaForInference | undefined = undefined,
225
236
  TName extends string = string,
226
- >(tool: ToolDescriptorFromSchema<TInputSchema, TOutputSchema, TName>): void;
237
+ >(
238
+ tool: ToolDescriptorFromSchema<TInputSchema, TOutputSchema, TName>,
239
+ options?: ModelContextRegisterToolOptions
240
+ ): void;
227
241
 
228
242
  /**
229
243
  * Registers a dynamic tool with explicitly typed args/result.
@@ -239,7 +253,8 @@ export interface ModelContextCore {
239
253
  ? string extends TInputSchema['type']
240
254
  ? unknown
241
255
  : never
242
- : unknown)
256
+ : unknown),
257
+ options?: ModelContextRegisterToolOptions
243
258
  ): void;
244
259
 
245
260
  /**
@@ -252,14 +267,40 @@ export interface ModelContextCore {
252
267
  >(
253
268
  tool: Omit<ToolDescriptor<TArgs, ToolRawResult, TName>, 'inputSchema'> & {
254
269
  inputSchema?: undefined;
255
- }
270
+ },
271
+ options?: ModelContextRegisterToolOptions
272
+ ): void;
273
+
274
+ /**
275
+ * Lists currently registered producer tools using the native Chromium preview
276
+ * shape. Current Chromium returns JSON-stringified schemas here, matching
277
+ * ModelContextTesting.listTools().
278
+ */
279
+ getTools(): ModelContextTestingToolInfo[];
280
+
281
+ /**
282
+ * Handler invoked when the producer tool list changes.
283
+ */
284
+ ontoolchange: ((this: ModelContextCore, ev: Event) => unknown) | null;
285
+
286
+ addEventListener(
287
+ type: 'toolchange',
288
+ listener: () => void,
289
+ options?: boolean | AddEventListenerOptions
290
+ ): void;
291
+
292
+ removeEventListener(
293
+ type: 'toolchange',
294
+ listener: () => void,
295
+ options?: boolean | EventListenerOptions
256
296
  ): void;
257
297
 
298
+ dispatchEvent(event: Event): boolean;
299
+
258
300
  /**
259
301
  * Unregisters a dynamic tool by name or tool reference.
260
302
  *
261
- * Current Chromium exposes string-name unregistration.
262
- * MCP-B compatibility runtimes may also accept the originally registered tool object.
303
+ * @deprecated Removed from the WebMCP spec on April 23, 2026. Use `registerTool(tool, { signal })`. Will be removed in the next major.
263
304
  */
264
305
  unregisterTool(nameOrTool: string | ModelContextToolReference): void;
265
306
 
@@ -286,7 +327,10 @@ export interface ModelContextExtensions {
286
327
  callTool<
287
328
  TName extends string = string,
288
329
  TArgs extends Record<string, unknown> = Record<string, unknown>,
289
- >(params: { name: TName; arguments?: TArgs }): Promise<ToolResponse>;
330
+ >(params: {
331
+ name: TName;
332
+ arguments?: TArgs;
333
+ }): Promise<ToolResponse>;
290
334
 
291
335
  // ==================== EVENTS ====================
292
336
 
@@ -302,6 +346,15 @@ export interface ModelContextExtensions {
302
346
  /**
303
347
  * Adds a listener for tool list changes.
304
348
  */
349
+ addEventListener(
350
+ type: 'toolchange',
351
+ listener: () => void,
352
+ options?: boolean | AddEventListenerOptions
353
+ ): void;
354
+
355
+ /**
356
+ * @deprecated Use `'toolchange'` instead. Will be removed in the next major.
357
+ */
305
358
  addEventListener(
306
359
  type: 'toolschanged',
307
360
  listener: () => void,
@@ -320,6 +373,15 @@ export interface ModelContextExtensions {
320
373
  /**
321
374
  * Removes a listener for tool list changes.
322
375
  */
376
+ removeEventListener(
377
+ type: 'toolchange',
378
+ listener: () => void,
379
+ options?: boolean | EventListenerOptions
380
+ ): void;
381
+
382
+ /**
383
+ * @deprecated Use `'toolchange'` instead. Will be removed in the next major.
384
+ */
323
385
  removeEventListener(
324
386
  type: 'toolschanged',
325
387
  listener: () => void,
package/src/tool.ts CHANGED
@@ -18,6 +18,7 @@ import type {
18
18
  /**
19
19
  * Annotations providing hints about tool behavior.
20
20
  *
21
+ * @see {@link https://webmachinelearning.github.io/webmcp/#dictdef-toolannotations}
21
22
  * @see {@link https://spec.modelcontextprotocol.io/specification/server/tools/}
22
23
  */
23
24
  export interface ToolAnnotations {
@@ -31,6 +32,11 @@ export interface ToolAnnotations {
31
32
  */
32
33
  readOnlyHint?: boolean | 'true' | 'false';
33
34
 
35
+ /**
36
+ * Indicates the tool's output may include content from outside the page's trust boundary.
37
+ */
38
+ untrustedContentHint?: boolean | 'true' | 'false';
39
+
34
40
  /**
35
41
  * Indicates the tool may perform destructive actions.
36
42
  */
@@ -126,7 +132,7 @@ export interface ToolDescriptor<
126
132
  /**
127
133
  * Optional schema describing output payload shape.
128
134
  */
129
- outputSchema?: InputSchema;
135
+ outputSchema?: JsonSchemaForInference;
130
136
 
131
137
  /**
132
138
  * Optional behavior hints for LLM planners.
@@ -225,7 +231,7 @@ export interface ToolListItem<TName extends string = string> {
225
231
  /**
226
232
  * Optional JSON Schema describing output payload shape.
227
233
  */
228
- outputSchema?: InputSchema;
234
+ outputSchema?: JsonSchemaForInference;
229
235
 
230
236
  /**
231
237
  * Optional behavior hints for LLM planners.