@mcp-b/webmcp-types 2.1.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 +28 -24
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/json-schema.d.ts.map +1 -1
- package/dist/model-context.d.ts +71 -8
- package/dist/model-context.d.ts.map +1 -1
- package/dist/tool.d.ts +7 -2
- package/dist/tool.d.ts.map +1 -1
- package/package.json +29 -30
- package/src/index.ts +4 -1
- package/src/json-schema.ts +20 -18
- package/src/model-context.ts +110 -23
- package/src/tool.ts +8 -2
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
|
|
27
|
-
|
|
|
28
|
-
| `@mcp-b/webmcp-types`
|
|
29
|
-
| `@mcp-b/webmcp-polyfill` | You need strict WebMCP core runtime behavior
|
|
30
|
-
| `@mcp-b/global`
|
|
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
|
|
142
|
-
|
|
|
143
|
-
| `additionalProperties: false`
|
|
144
|
-
| `additionalProperties` omitted/`true`
|
|
145
|
-
| `additionalProperties: { ... }` with no named `properties` | Map-like `Record<string, ...>`
|
|
146
|
-
| `additionalProperties: { ... }` with named `properties`
|
|
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,23 +208,27 @@ void result;
|
|
|
208
208
|
|
|
209
209
|
## Commonly Used Exports
|
|
210
210
|
|
|
211
|
-
| Export
|
|
212
|
-
|
|
|
213
|
-
| `ModelContext`
|
|
214
|
-
| `ToolDescriptor`
|
|
215
|
-
| `ToolDescriptorFromSchema`
|
|
216
|
-
| `JsonSchemaForInference`
|
|
217
|
-
| `InferArgsFromInputSchema`
|
|
218
|
-
| `ToolResultFromOutputSchema`
|
|
219
|
-
| `TypedModelContext`
|
|
220
|
-
| `CallToolResult`
|
|
221
|
-
| `ContentBlock` / `LooseContentBlock` | Strict and pragmatic content block typing
|
|
222
|
-
| `ModelContextClient`
|
|
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
|
+
- `provideContext()` and `clearContext()` remain typed for compatibility, but are deprecated because the upstream WebMCP spec removed them on March 5, 2026.
|
|
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.
|
|
228
232
|
- `navigator.modelContextTesting` is typed as optional for compatibility with Chromium preview/testing surfaces.
|
|
229
233
|
|
|
230
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, 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
|
|
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;
|
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,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,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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"}
|
package/dist/model-context.d.ts
CHANGED
|
@@ -29,18 +29,30 @@ export interface ModelContextTestingExecuteToolOptions {
|
|
|
29
29
|
signal?: AbortSignal;
|
|
30
30
|
}
|
|
31
31
|
/**
|
|
32
|
-
* Chromium
|
|
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>;
|
|
@@ -122,12 +134,39 @@ export interface ToolCallEvent extends Event {
|
|
|
122
134
|
*/
|
|
123
135
|
respondWith: (response: ToolResponse) => void;
|
|
124
136
|
}
|
|
137
|
+
/**
|
|
138
|
+
* Tool identity accepted by compatibility unregister flows.
|
|
139
|
+
*
|
|
140
|
+
* Current Chromium exposes string-name unregistration.
|
|
141
|
+
* MCP-B compatibility runtimes may also accept the originally registered tool object.
|
|
142
|
+
*/
|
|
143
|
+
export interface ModelContextToolReference {
|
|
144
|
+
name: string;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Non-standard compatibility handle returned by some runtimes after registerTool().
|
|
148
|
+
*
|
|
149
|
+
* @deprecated Use `options.signal` on `registerTool(tool, options)`. Will be removed in the next major.
|
|
150
|
+
*/
|
|
151
|
+
export interface ModelContextToolRegistrationHandle {
|
|
152
|
+
unregister(): void;
|
|
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
|
+
}
|
|
125
163
|
/**
|
|
126
164
|
* Strict WebMCP core interface on navigator.modelContext.
|
|
127
165
|
*/
|
|
128
166
|
export interface ModelContextCore {
|
|
129
167
|
/**
|
|
130
168
|
* Replaces base context with provided tools.
|
|
169
|
+
* @deprecated Removed from the upstream WebMCP spec on March 5, 2026. Kept only as a temporary compatibility API.
|
|
131
170
|
*/
|
|
132
171
|
provideContext(options?: ModelContextOptions): void;
|
|
133
172
|
/**
|
|
@@ -136,26 +175,42 @@ export interface ModelContextCore {
|
|
|
136
175
|
* `execute(args)` is inferred from `inputSchema`, and when a literal object
|
|
137
176
|
* `outputSchema` is provided, `execute(...).structuredContent` is inferred too.
|
|
138
177
|
*/
|
|
139
|
-
registerTool<TInputSchema extends JsonSchemaForInference, TOutputSchema extends JsonSchemaForInference | undefined = undefined, TName extends string = string>(tool: ToolDescriptorFromSchema<TInputSchema, TOutputSchema, TName
|
|
178
|
+
registerTool<TInputSchema extends JsonSchemaForInference, TOutputSchema extends JsonSchemaForInference | undefined = undefined, TName extends string = string>(tool: ToolDescriptorFromSchema<TInputSchema, TOutputSchema, TName>, options?: ModelContextRegisterToolOptions): void;
|
|
140
179
|
/**
|
|
141
180
|
* Registers a dynamic tool with explicitly typed args/result.
|
|
142
181
|
*/
|
|
143
182
|
registerTool<TInputSchema extends InputSchema, TArgs extends Record<string, unknown> = Record<string, unknown>, TName extends string = string>(tool: ToolDescriptor<TArgs, ToolRawResult, TName> & {
|
|
144
183
|
inputSchema: TInputSchema;
|
|
145
|
-
} & (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;
|
|
146
185
|
/**
|
|
147
186
|
* Registers a dynamic tool without an explicit inputSchema.
|
|
148
187
|
* Runtime defaults this to an empty object schema.
|
|
149
188
|
*/
|
|
150
189
|
registerTool<TArgs extends Record<string, unknown> = Record<string, unknown>, TName extends string = string>(tool: Omit<ToolDescriptor<TArgs, ToolRawResult, TName>, 'inputSchema'> & {
|
|
151
190
|
inputSchema?: undefined;
|
|
152
|
-
}): 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[];
|
|
153
198
|
/**
|
|
154
|
-
*
|
|
199
|
+
* Handler invoked when the producer tool list changes.
|
|
155
200
|
*/
|
|
156
|
-
|
|
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;
|
|
205
|
+
/**
|
|
206
|
+
* Unregisters a dynamic tool by name or tool reference.
|
|
207
|
+
*
|
|
208
|
+
* @deprecated Removed from the WebMCP spec on April 23, 2026. Use `registerTool(tool, { signal })`. Will be removed in the next major.
|
|
209
|
+
*/
|
|
210
|
+
unregisterTool(nameOrTool: string | ModelContextToolReference): void;
|
|
157
211
|
/**
|
|
158
212
|
* Clears all context (base + dynamic registrations).
|
|
213
|
+
* @deprecated Removed from the upstream WebMCP spec on March 5, 2026. Kept only as a temporary compatibility API.
|
|
159
214
|
*/
|
|
160
215
|
clearContext(): void;
|
|
161
216
|
}
|
|
@@ -182,6 +237,10 @@ export interface ModelContextExtensions {
|
|
|
182
237
|
/**
|
|
183
238
|
* Adds a listener for tool list changes.
|
|
184
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
|
+
*/
|
|
185
244
|
addEventListener(type: 'toolschanged', listener: () => void, options?: boolean | AddEventListenerOptions): void;
|
|
186
245
|
/**
|
|
187
246
|
* Removes a listener for tool invocation events.
|
|
@@ -190,6 +249,10 @@ export interface ModelContextExtensions {
|
|
|
190
249
|
/**
|
|
191
250
|
* Removes a listener for tool list changes.
|
|
192
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
|
+
*/
|
|
193
256
|
removeEventListener(type: 'toolschanged', listener: () => void, options?: boolean | EventListenerOptions): void;
|
|
194
257
|
/**
|
|
195
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
|
|
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?:
|
|
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?:
|
|
163
|
+
outputSchema?: JsonSchemaForInference;
|
|
159
164
|
/**
|
|
160
165
|
* Optional behavior hints for LLM planners.
|
|
161
166
|
*/
|
package/dist/tool.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../src/tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACZ,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EACV,wBAAwB,EACxB,eAAe,EACf,sBAAsB,EACtB,gBAAgB,EACjB,MAAM,kBAAkB,CAAC;AAM1B
|
|
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.
|
|
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
|
-
"
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
"
|
|
47
|
-
|
|
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": "
|
|
56
|
-
"clean": "rm -rf dist
|
|
57
|
-
"format": "
|
|
58
|
-
"lint": "
|
|
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": "
|
|
62
|
-
"test:browser": "
|
|
63
|
-
"test:browser:ui": "
|
|
64
|
-
"test:conformance": "
|
|
65
|
-
"typecheck": "tsc --noEmit &&
|
|
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,10 +50,13 @@ export type {
|
|
|
50
50
|
ModelContextExtensions,
|
|
51
51
|
ModelContextInput,
|
|
52
52
|
ModelContextOptions,
|
|
53
|
+
ModelContextRegisterToolOptions,
|
|
53
54
|
ModelContextTesting,
|
|
54
55
|
ModelContextTestingExecuteToolOptions,
|
|
55
56
|
ModelContextTestingPolyfillExtensions,
|
|
56
57
|
ModelContextTestingToolInfo,
|
|
58
|
+
ModelContextToolReference,
|
|
59
|
+
ModelContextToolRegistrationHandle,
|
|
57
60
|
ModelContextWithExtensions,
|
|
58
61
|
ToolArgsByName,
|
|
59
62
|
ToolByName,
|
|
@@ -89,7 +92,7 @@ declare global {
|
|
|
89
92
|
|
|
90
93
|
/**
|
|
91
94
|
* Web Model Context testing API surface (Chromium early preview).
|
|
92
|
-
* @deprecated Prefer navigator.modelContext.callTool(...) and
|
|
95
|
+
* @deprecated Prefer navigator.modelContext.callTool(...) and toolchange events
|
|
93
96
|
* for in-page consumers. Chromium still exposes this API for testing flows.
|
|
94
97
|
*/
|
|
95
98
|
modelContextTesting?: ModelContextTesting;
|
package/src/json-schema.ts
CHANGED
|
@@ -204,9 +204,10 @@ type AdditionalSchemaOf<TSchema> = TSchema extends { additionalProperties: infer
|
|
|
204
204
|
? TAdditional
|
|
205
205
|
: undefined;
|
|
206
206
|
|
|
207
|
-
type AdditionalPropsValue<TSchema> =
|
|
208
|
-
|
|
209
|
-
|
|
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> =
|
|
254
|
-
|
|
255
|
-
|
|
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> =
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
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> =
|
|
292
|
-
TypeKeywordOf<TSchema
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
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>;
|
package/src/model-context.ts
CHANGED
|
@@ -47,23 +47,35 @@ export interface ModelContextTestingExecuteToolOptions {
|
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
/**
|
|
50
|
-
* Chromium
|
|
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> =
|
|
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> =
|
|
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.
|
|
@@ -175,6 +177,35 @@ export interface ToolCallEvent extends Event {
|
|
|
175
177
|
respondWith: (response: ToolResponse) => void;
|
|
176
178
|
}
|
|
177
179
|
|
|
180
|
+
/**
|
|
181
|
+
* Tool identity accepted by compatibility unregister flows.
|
|
182
|
+
*
|
|
183
|
+
* Current Chromium exposes string-name unregistration.
|
|
184
|
+
* MCP-B compatibility runtimes may also accept the originally registered tool object.
|
|
185
|
+
*/
|
|
186
|
+
export interface ModelContextToolReference {
|
|
187
|
+
name: string;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
/**
|
|
191
|
+
* Non-standard compatibility handle returned by some runtimes after registerTool().
|
|
192
|
+
*
|
|
193
|
+
* @deprecated Use `options.signal` on `registerTool(tool, options)`. Will be removed in the next major.
|
|
194
|
+
*/
|
|
195
|
+
export interface ModelContextToolRegistrationHandle {
|
|
196
|
+
unregister(): void;
|
|
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
|
+
|
|
178
209
|
// ============================================================================
|
|
179
210
|
// Model Context
|
|
180
211
|
// ============================================================================
|
|
@@ -187,6 +218,7 @@ export interface ModelContextCore {
|
|
|
187
218
|
|
|
188
219
|
/**
|
|
189
220
|
* Replaces base context with provided tools.
|
|
221
|
+
* @deprecated Removed from the upstream WebMCP spec on March 5, 2026. Kept only as a temporary compatibility API.
|
|
190
222
|
*/
|
|
191
223
|
provideContext(options?: ModelContextOptions): void;
|
|
192
224
|
|
|
@@ -202,7 +234,10 @@ export interface ModelContextCore {
|
|
|
202
234
|
TInputSchema extends JsonSchemaForInference,
|
|
203
235
|
TOutputSchema extends JsonSchemaForInference | undefined = undefined,
|
|
204
236
|
TName extends string = string,
|
|
205
|
-
>(
|
|
237
|
+
>(
|
|
238
|
+
tool: ToolDescriptorFromSchema<TInputSchema, TOutputSchema, TName>,
|
|
239
|
+
options?: ModelContextRegisterToolOptions
|
|
240
|
+
): void;
|
|
206
241
|
|
|
207
242
|
/**
|
|
208
243
|
* Registers a dynamic tool with explicitly typed args/result.
|
|
@@ -218,7 +253,8 @@ export interface ModelContextCore {
|
|
|
218
253
|
? string extends TInputSchema['type']
|
|
219
254
|
? unknown
|
|
220
255
|
: never
|
|
221
|
-
: unknown)
|
|
256
|
+
: unknown),
|
|
257
|
+
options?: ModelContextRegisterToolOptions
|
|
222
258
|
): void;
|
|
223
259
|
|
|
224
260
|
/**
|
|
@@ -231,16 +267,46 @@ export interface ModelContextCore {
|
|
|
231
267
|
>(
|
|
232
268
|
tool: Omit<ToolDescriptor<TArgs, ToolRawResult, TName>, 'inputSchema'> & {
|
|
233
269
|
inputSchema?: undefined;
|
|
234
|
-
}
|
|
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
|
|
235
290
|
): void;
|
|
236
291
|
|
|
292
|
+
removeEventListener(
|
|
293
|
+
type: 'toolchange',
|
|
294
|
+
listener: () => void,
|
|
295
|
+
options?: boolean | EventListenerOptions
|
|
296
|
+
): void;
|
|
297
|
+
|
|
298
|
+
dispatchEvent(event: Event): boolean;
|
|
299
|
+
|
|
237
300
|
/**
|
|
238
|
-
* Unregisters a dynamic tool by name.
|
|
301
|
+
* Unregisters a dynamic tool by name or tool reference.
|
|
302
|
+
*
|
|
303
|
+
* @deprecated Removed from the WebMCP spec on April 23, 2026. Use `registerTool(tool, { signal })`. Will be removed in the next major.
|
|
239
304
|
*/
|
|
240
|
-
unregisterTool(
|
|
305
|
+
unregisterTool(nameOrTool: string | ModelContextToolReference): void;
|
|
241
306
|
|
|
242
307
|
/**
|
|
243
308
|
* Clears all context (base + dynamic registrations).
|
|
309
|
+
* @deprecated Removed from the upstream WebMCP spec on March 5, 2026. Kept only as a temporary compatibility API.
|
|
244
310
|
*/
|
|
245
311
|
clearContext(): void;
|
|
246
312
|
}
|
|
@@ -261,7 +327,10 @@ export interface ModelContextExtensions {
|
|
|
261
327
|
callTool<
|
|
262
328
|
TName extends string = string,
|
|
263
329
|
TArgs extends Record<string, unknown> = Record<string, unknown>,
|
|
264
|
-
>(params: {
|
|
330
|
+
>(params: {
|
|
331
|
+
name: TName;
|
|
332
|
+
arguments?: TArgs;
|
|
333
|
+
}): Promise<ToolResponse>;
|
|
265
334
|
|
|
266
335
|
// ==================== EVENTS ====================
|
|
267
336
|
|
|
@@ -277,6 +346,15 @@ export interface ModelContextExtensions {
|
|
|
277
346
|
/**
|
|
278
347
|
* Adds a listener for tool list changes.
|
|
279
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
|
+
*/
|
|
280
358
|
addEventListener(
|
|
281
359
|
type: 'toolschanged',
|
|
282
360
|
listener: () => void,
|
|
@@ -295,6 +373,15 @@ export interface ModelContextExtensions {
|
|
|
295
373
|
/**
|
|
296
374
|
* Removes a listener for tool list changes.
|
|
297
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
|
+
*/
|
|
298
385
|
removeEventListener(
|
|
299
386
|
type: 'toolschanged',
|
|
300
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?:
|
|
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?:
|
|
234
|
+
outputSchema?: JsonSchemaForInference;
|
|
229
235
|
|
|
230
236
|
/**
|
|
231
237
|
* Optional behavior hints for LLM planners.
|