@modelcontextprotocol/sdk 1.22.0 → 1.23.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 +92 -11
- package/dist/cjs/client/auth.d.ts +11 -1
- package/dist/cjs/client/auth.d.ts.map +1 -1
- package/dist/cjs/client/auth.js +71 -19
- package/dist/cjs/client/auth.js.map +1 -1
- package/dist/cjs/client/index.d.ts +122 -662
- package/dist/cjs/client/index.d.ts.map +1 -1
- package/dist/cjs/client/index.js +72 -15
- package/dist/cjs/client/index.js.map +1 -1
- package/dist/cjs/client/sse.d.ts +1 -0
- package/dist/cjs/client/sse.d.ts.map +1 -1
- package/dist/cjs/client/sse.js +5 -3
- package/dist/cjs/client/sse.js.map +1 -1
- package/dist/cjs/client/streamableHttp.d.ts +14 -2
- package/dist/cjs/client/streamableHttp.d.ts.map +1 -1
- package/dist/cjs/client/streamableHttp.js +79 -19
- package/dist/cjs/client/streamableHttp.js.map +1 -1
- package/dist/cjs/examples/client/elicitationUrlExample.d.ts +2 -0
- package/dist/cjs/examples/client/elicitationUrlExample.d.ts.map +1 -0
- package/dist/cjs/examples/client/elicitationUrlExample.js +693 -0
- package/dist/cjs/examples/client/elicitationUrlExample.js.map +1 -0
- package/dist/cjs/examples/client/simpleOAuthClient.js +13 -52
- package/dist/cjs/examples/client/simpleOAuthClient.js.map +1 -1
- package/dist/cjs/examples/client/simpleOAuthClientProvider.d.ts +26 -0
- package/dist/cjs/examples/client/simpleOAuthClientProvider.d.ts.map +1 -0
- package/dist/cjs/examples/client/simpleOAuthClientProvider.js +51 -0
- package/dist/cjs/examples/client/simpleOAuthClientProvider.js.map +1 -0
- package/dist/cjs/examples/client/simpleStreamableHttp.js +10 -5
- package/dist/cjs/examples/client/simpleStreamableHttp.js.map +1 -1
- package/dist/cjs/examples/client/ssePollingClient.d.ts +2 -0
- package/dist/cjs/examples/client/ssePollingClient.d.ts.map +1 -0
- package/dist/cjs/examples/client/ssePollingClient.js +95 -0
- package/dist/cjs/examples/client/ssePollingClient.js.map +1 -0
- package/dist/cjs/examples/server/demoInMemoryOAuthProvider.d.ts +4 -4
- package/dist/cjs/examples/server/demoInMemoryOAuthProvider.d.ts.map +1 -1
- package/dist/cjs/examples/server/demoInMemoryOAuthProvider.js +16 -0
- package/dist/cjs/examples/server/demoInMemoryOAuthProvider.js.map +1 -1
- package/dist/cjs/examples/server/elicitationFormExample.d.ts +2 -0
- package/dist/cjs/examples/server/elicitationFormExample.d.ts.map +1 -0
- package/dist/cjs/examples/server/{elicitationExample.js → elicitationFormExample.js} +14 -8
- package/dist/cjs/examples/server/elicitationFormExample.js.map +1 -0
- package/dist/cjs/examples/server/elicitationUrlExample.d.ts +2 -0
- package/dist/cjs/examples/server/elicitationUrlExample.d.ts.map +1 -0
- package/dist/cjs/examples/server/elicitationUrlExample.js +655 -0
- package/dist/cjs/examples/server/elicitationUrlExample.js.map +1 -0
- package/dist/cjs/examples/server/jsonResponseStreamableHttp.js +26 -3
- package/dist/cjs/examples/server/jsonResponseStreamableHttp.js.map +1 -1
- package/dist/cjs/examples/server/mcpServerOutputSchema.js +34 -11
- package/dist/cjs/examples/server/mcpServerOutputSchema.js.map +1 -1
- package/dist/cjs/examples/server/simpleSseServer.js +26 -3
- package/dist/cjs/examples/server/simpleSseServer.js.map +1 -1
- package/dist/cjs/examples/server/simpleStatelessStreamableHttp.js +27 -4
- package/dist/cjs/examples/server/simpleStatelessStreamableHttp.js.map +1 -1
- package/dist/cjs/examples/server/simpleStreamableHttp.js +34 -10
- package/dist/cjs/examples/server/simpleStreamableHttp.js.map +1 -1
- package/dist/cjs/examples/server/sseAndStreamableHttpCompatibleServer.js +26 -3
- package/dist/cjs/examples/server/sseAndStreamableHttpCompatibleServer.js.map +1 -1
- package/dist/cjs/examples/server/ssePollingExample.d.ts +2 -0
- package/dist/cjs/examples/server/ssePollingExample.d.ts.map +1 -0
- package/dist/cjs/examples/server/ssePollingExample.js +116 -0
- package/dist/cjs/examples/server/ssePollingExample.js.map +1 -0
- package/dist/cjs/examples/server/toolWithSampleServer.js +30 -8
- package/dist/cjs/examples/server/toolWithSampleServer.js.map +1 -1
- package/dist/cjs/server/auth/handlers/authorize.js +34 -11
- package/dist/cjs/server/auth/handlers/authorize.js.map +1 -1
- package/dist/cjs/server/auth/handlers/token.js +35 -12
- package/dist/cjs/server/auth/handlers/token.js.map +1 -1
- package/dist/cjs/server/auth/middleware/bearerAuth.d.ts.map +1 -1
- package/dist/cjs/server/auth/middleware/bearerAuth.js +13 -8
- package/dist/cjs/server/auth/middleware/bearerAuth.js.map +1 -1
- package/dist/cjs/server/auth/middleware/clientAuth.js +27 -4
- package/dist/cjs/server/auth/middleware/clientAuth.js.map +1 -1
- package/dist/cjs/server/auth/router.js +1 -1
- package/dist/cjs/server/auth/router.js.map +1 -1
- package/dist/cjs/server/completable.d.ts +30 -16
- package/dist/cjs/server/completable.d.ts.map +1 -1
- package/dist/cjs/server/completable.js +38 -55
- package/dist/cjs/server/completable.js.map +1 -1
- package/dist/cjs/server/index.d.ts +176 -50
- package/dist/cjs/server/index.d.ts.map +1 -1
- package/dist/cjs/server/index.js +99 -13
- package/dist/cjs/server/index.js.map +1 -1
- package/dist/cjs/server/mcp.d.ts +14 -16
- package/dist/cjs/server/mcp.d.ts.map +1 -1
- package/dist/cjs/server/mcp.js +83 -40
- package/dist/cjs/server/mcp.js.map +1 -1
- package/dist/cjs/server/streamableHttp.d.ts +27 -0
- package/dist/cjs/server/streamableHttp.d.ts.map +1 -1
- package/dist/cjs/server/streamableHttp.js +70 -5
- package/dist/cjs/server/streamableHttp.js.map +1 -1
- package/dist/cjs/server/zod-compat.d.ts +82 -0
- package/dist/cjs/server/zod-compat.d.ts.map +1 -0
- package/dist/cjs/server/zod-compat.js +252 -0
- package/dist/cjs/server/zod-compat.js.map +1 -0
- package/dist/cjs/server/zod-json-schema-compat.d.ts +12 -0
- package/dist/cjs/server/zod-json-schema-compat.d.ts.map +1 -0
- package/dist/cjs/server/zod-json-schema-compat.js +80 -0
- package/dist/cjs/server/zod-json-schema-compat.js.map +1 -0
- package/dist/cjs/shared/auth.d.ts +116 -502
- package/dist/cjs/shared/auth.d.ts.map +1 -1
- package/dist/cjs/shared/auth.js +133 -112
- package/dist/cjs/shared/auth.js.map +1 -1
- package/dist/cjs/shared/protocol.d.ts +5 -9
- package/dist/cjs/shared/protocol.d.ts.map +1 -1
- package/dist/cjs/shared/protocol.js +24 -10
- package/dist/cjs/shared/protocol.js.map +1 -1
- package/dist/cjs/shared/transport.d.ts +14 -0
- package/dist/cjs/shared/transport.d.ts.map +1 -1
- package/dist/cjs/shared/transport.js +40 -0
- package/dist/cjs/shared/transport.js.map +1 -1
- package/dist/cjs/shared/zodTestMatrix.d.ts +16 -0
- package/dist/cjs/shared/zodTestMatrix.d.ts.map +1 -0
- package/dist/cjs/shared/zodTestMatrix.js +43 -0
- package/dist/cjs/shared/zodTestMatrix.js.map +1 -0
- package/dist/cjs/spec.types.d.ts +393 -70
- package/dist/cjs/spec.types.d.ts.map +1 -1
- package/dist/cjs/spec.types.js +5 -7
- package/dist/cjs/spec.types.js.map +1 -1
- package/dist/cjs/types.d.ts +3580 -23866
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/cjs/types.js +574 -340
- package/dist/cjs/types.js.map +1 -1
- package/dist/cjs/validation/cfworker-provider.d.ts +0 -1
- package/dist/cjs/validation/cfworker-provider.d.ts.map +1 -1
- package/dist/cjs/validation/cfworker-provider.js +0 -1
- package/dist/cjs/validation/cfworker-provider.js.map +1 -1
- package/dist/esm/client/auth.d.ts +11 -1
- package/dist/esm/client/auth.d.ts.map +1 -1
- package/dist/esm/client/auth.js +71 -20
- package/dist/esm/client/auth.js.map +1 -1
- package/dist/esm/client/index.d.ts +122 -662
- package/dist/esm/client/index.d.ts.map +1 -1
- package/dist/esm/client/index.js +71 -15
- package/dist/esm/client/index.js.map +1 -1
- package/dist/esm/client/sse.d.ts +1 -0
- package/dist/esm/client/sse.d.ts.map +1 -1
- package/dist/esm/client/sse.js +5 -3
- package/dist/esm/client/sse.js.map +1 -1
- package/dist/esm/client/streamableHttp.d.ts +14 -2
- package/dist/esm/client/streamableHttp.d.ts.map +1 -1
- package/dist/esm/client/streamableHttp.js +79 -19
- package/dist/esm/client/streamableHttp.js.map +1 -1
- package/dist/esm/examples/client/elicitationUrlExample.d.ts +2 -0
- package/dist/esm/examples/client/elicitationUrlExample.d.ts.map +1 -0
- package/dist/esm/examples/client/elicitationUrlExample.js +691 -0
- package/dist/esm/examples/client/elicitationUrlExample.js.map +1 -0
- package/dist/esm/examples/client/simpleOAuthClient.js +12 -51
- package/dist/esm/examples/client/simpleOAuthClient.js.map +1 -1
- package/dist/esm/examples/client/simpleOAuthClientProvider.d.ts +26 -0
- package/dist/esm/examples/client/simpleOAuthClientProvider.d.ts.map +1 -0
- package/dist/esm/examples/client/simpleOAuthClientProvider.js +47 -0
- package/dist/esm/examples/client/simpleOAuthClientProvider.js.map +1 -0
- package/dist/esm/examples/client/simpleStreamableHttp.js +11 -6
- package/dist/esm/examples/client/simpleStreamableHttp.js.map +1 -1
- package/dist/esm/examples/client/ssePollingClient.d.ts +2 -0
- package/dist/esm/examples/client/ssePollingClient.d.ts.map +1 -0
- package/dist/esm/examples/client/ssePollingClient.js +93 -0
- package/dist/esm/examples/client/ssePollingClient.js.map +1 -0
- package/dist/esm/examples/server/demoInMemoryOAuthProvider.d.ts +4 -4
- package/dist/esm/examples/server/demoInMemoryOAuthProvider.d.ts.map +1 -1
- package/dist/esm/examples/server/demoInMemoryOAuthProvider.js +16 -0
- package/dist/esm/examples/server/demoInMemoryOAuthProvider.js.map +1 -1
- package/dist/esm/examples/server/elicitationFormExample.d.ts +2 -0
- package/dist/esm/examples/server/elicitationFormExample.d.ts.map +1 -0
- package/dist/esm/examples/server/{elicitationExample.js → elicitationFormExample.js} +14 -8
- package/dist/esm/examples/server/elicitationFormExample.js.map +1 -0
- package/dist/esm/examples/server/elicitationUrlExample.d.ts +2 -0
- package/dist/esm/examples/server/elicitationUrlExample.d.ts.map +1 -0
- package/dist/esm/examples/server/elicitationUrlExample.js +650 -0
- package/dist/esm/examples/server/elicitationUrlExample.js.map +1 -0
- package/dist/esm/examples/server/jsonResponseStreamableHttp.js +1 -1
- package/dist/esm/examples/server/jsonResponseStreamableHttp.js.map +1 -1
- package/dist/esm/examples/server/mcpServerOutputSchema.js +1 -1
- package/dist/esm/examples/server/mcpServerOutputSchema.js.map +1 -1
- package/dist/esm/examples/server/simpleSseServer.js +1 -1
- package/dist/esm/examples/server/simpleSseServer.js.map +1 -1
- package/dist/esm/examples/server/simpleStatelessStreamableHttp.js +1 -1
- package/dist/esm/examples/server/simpleStatelessStreamableHttp.js.map +1 -1
- package/dist/esm/examples/server/simpleStreamableHttp.js +4 -3
- package/dist/esm/examples/server/simpleStreamableHttp.js.map +1 -1
- package/dist/esm/examples/server/sseAndStreamableHttpCompatibleServer.js +1 -1
- package/dist/esm/examples/server/sseAndStreamableHttpCompatibleServer.js.map +1 -1
- package/dist/esm/examples/server/ssePollingExample.d.ts +2 -0
- package/dist/esm/examples/server/ssePollingExample.d.ts.map +1 -0
- package/dist/esm/examples/server/ssePollingExample.js +111 -0
- package/dist/esm/examples/server/ssePollingExample.js.map +1 -0
- package/dist/esm/examples/server/toolWithSampleServer.js +6 -7
- package/dist/esm/examples/server/toolWithSampleServer.js.map +1 -1
- package/dist/esm/server/auth/handlers/authorize.js +1 -1
- package/dist/esm/server/auth/handlers/authorize.js.map +1 -1
- package/dist/esm/server/auth/handlers/token.js +1 -1
- package/dist/esm/server/auth/handlers/token.js.map +1 -1
- package/dist/esm/server/auth/middleware/bearerAuth.d.ts.map +1 -1
- package/dist/esm/server/auth/middleware/bearerAuth.js +13 -8
- package/dist/esm/server/auth/middleware/bearerAuth.js.map +1 -1
- package/dist/esm/server/auth/middleware/clientAuth.js +1 -1
- package/dist/esm/server/auth/middleware/clientAuth.js.map +1 -1
- package/dist/esm/server/auth/router.js +1 -1
- package/dist/esm/server/auth/router.js.map +1 -1
- package/dist/esm/server/completable.d.ts +30 -16
- package/dist/esm/server/completable.d.ts.map +1 -1
- package/dist/esm/server/completable.js +34 -53
- package/dist/esm/server/completable.js.map +1 -1
- package/dist/esm/server/index.d.ts +176 -50
- package/dist/esm/server/index.d.ts.map +1 -1
- package/dist/esm/server/index.js +99 -13
- package/dist/esm/server/index.js.map +1 -1
- package/dist/esm/server/mcp.d.ts +14 -16
- package/dist/esm/server/mcp.d.ts.map +1 -1
- package/dist/esm/server/mcp.js +84 -41
- package/dist/esm/server/mcp.js.map +1 -1
- package/dist/esm/server/streamableHttp.d.ts +27 -0
- package/dist/esm/server/streamableHttp.d.ts.map +1 -1
- package/dist/esm/server/streamableHttp.js +70 -5
- package/dist/esm/server/streamableHttp.js.map +1 -1
- package/dist/esm/server/zod-compat.d.ts +82 -0
- package/dist/esm/server/zod-compat.d.ts.map +1 -0
- package/dist/esm/server/zod-compat.js +217 -0
- package/dist/esm/server/zod-compat.js.map +1 -0
- package/dist/esm/server/zod-json-schema-compat.d.ts +12 -0
- package/dist/esm/server/zod-json-schema-compat.d.ts.map +1 -0
- package/dist/esm/server/zod-json-schema-compat.js +52 -0
- package/dist/esm/server/zod-json-schema-compat.js.map +1 -0
- package/dist/esm/shared/auth.d.ts +116 -502
- package/dist/esm/shared/auth.d.ts.map +1 -1
- package/dist/esm/shared/auth.js +17 -19
- package/dist/esm/shared/auth.js.map +1 -1
- package/dist/esm/shared/protocol.d.ts +5 -9
- package/dist/esm/shared/protocol.d.ts.map +1 -1
- package/dist/esm/shared/protocol.js +24 -10
- package/dist/esm/shared/protocol.js.map +1 -1
- package/dist/esm/shared/transport.d.ts +14 -0
- package/dist/esm/shared/transport.d.ts.map +1 -1
- package/dist/esm/shared/transport.js +38 -1
- package/dist/esm/shared/transport.js.map +1 -1
- package/dist/esm/shared/zodTestMatrix.d.ts +16 -0
- package/dist/esm/shared/zodTestMatrix.d.ts.map +1 -0
- package/dist/esm/shared/zodTestMatrix.js +17 -0
- package/dist/esm/shared/zodTestMatrix.js.map +1 -0
- package/dist/esm/spec.types.d.ts +393 -70
- package/dist/esm/spec.types.d.ts.map +1 -1
- package/dist/esm/spec.types.js +4 -6
- package/dist/esm/spec.types.js.map +1 -1
- package/dist/esm/types.d.ts +3580 -23866
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/types.js +282 -72
- package/dist/esm/types.js.map +1 -1
- package/dist/esm/validation/cfworker-provider.d.ts +0 -1
- package/dist/esm/validation/cfworker-provider.d.ts.map +1 -1
- package/dist/esm/validation/cfworker-provider.js +0 -1
- package/dist/esm/validation/cfworker-provider.js.map +1 -1
- package/package.json +13 -12
- package/dist/cjs/examples/server/elicitationExample.d.ts +0 -2
- package/dist/cjs/examples/server/elicitationExample.d.ts.map +0 -1
- package/dist/cjs/examples/server/elicitationExample.js.map +0 -1
- package/dist/esm/examples/server/elicitationExample.d.ts +0 -2
- package/dist/esm/examples/server/elicitationExample.d.ts.map +0 -1
- package/dist/esm/examples/server/elicitationExample.js.map +0 -1
package/dist/esm/server/index.js
CHANGED
|
@@ -97,6 +97,7 @@ export class Server extends Protocol {
|
|
|
97
97
|
}
|
|
98
98
|
}
|
|
99
99
|
assertNotificationCapability(method) {
|
|
100
|
+
var _a, _b;
|
|
100
101
|
switch (method) {
|
|
101
102
|
case 'notifications/message':
|
|
102
103
|
if (!this._capabilities.logging) {
|
|
@@ -119,6 +120,11 @@ export class Server extends Protocol {
|
|
|
119
120
|
throw new Error(`Server does not support notifying of prompt list changes (required for ${method})`);
|
|
120
121
|
}
|
|
121
122
|
break;
|
|
123
|
+
case 'notifications/elicitation/complete':
|
|
124
|
+
if (!((_b = (_a = this._clientCapabilities) === null || _a === void 0 ? void 0 : _a.elicitation) === null || _b === void 0 ? void 0 : _b.url)) {
|
|
125
|
+
throw new Error(`Client does not support URL elicitation (required for ${method})`);
|
|
126
|
+
}
|
|
127
|
+
break;
|
|
122
128
|
case 'notifications/cancelled':
|
|
123
129
|
// Cancellation notifications are always allowed
|
|
124
130
|
break;
|
|
@@ -195,27 +201,107 @@ export class Server extends Protocol {
|
|
|
195
201
|
return this.request({ method: 'ping' }, EmptyResultSchema);
|
|
196
202
|
}
|
|
197
203
|
async createMessage(params, options) {
|
|
204
|
+
var _a, _b;
|
|
205
|
+
// Capability check - only required when tools/toolChoice are provided
|
|
206
|
+
if (params.tools || params.toolChoice) {
|
|
207
|
+
if (!((_b = (_a = this._clientCapabilities) === null || _a === void 0 ? void 0 : _a.sampling) === null || _b === void 0 ? void 0 : _b.tools)) {
|
|
208
|
+
throw new Error('Client does not support sampling tools capability.');
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
// Message structure validation - always validate tool_use/tool_result pairs.
|
|
212
|
+
// These may appear even without tools/toolChoice in the current request when
|
|
213
|
+
// a previous sampling request returned tool_use and this is a follow-up with results.
|
|
214
|
+
if (params.messages.length > 0) {
|
|
215
|
+
const lastMessage = params.messages[params.messages.length - 1];
|
|
216
|
+
const lastContent = Array.isArray(lastMessage.content) ? lastMessage.content : [lastMessage.content];
|
|
217
|
+
const hasToolResults = lastContent.some(c => c.type === 'tool_result');
|
|
218
|
+
const previousMessage = params.messages.length > 1 ? params.messages[params.messages.length - 2] : undefined;
|
|
219
|
+
const previousContent = previousMessage
|
|
220
|
+
? Array.isArray(previousMessage.content)
|
|
221
|
+
? previousMessage.content
|
|
222
|
+
: [previousMessage.content]
|
|
223
|
+
: [];
|
|
224
|
+
const hasPreviousToolUse = previousContent.some(c => c.type === 'tool_use');
|
|
225
|
+
if (hasToolResults) {
|
|
226
|
+
if (lastContent.some(c => c.type !== 'tool_result')) {
|
|
227
|
+
throw new Error('The last message must contain only tool_result content if any is present');
|
|
228
|
+
}
|
|
229
|
+
if (!hasPreviousToolUse) {
|
|
230
|
+
throw new Error('tool_result blocks are not matching any tool_use from the previous message');
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
if (hasPreviousToolUse) {
|
|
234
|
+
const toolUseIds = new Set(previousContent.filter(c => c.type === 'tool_use').map(c => c.id));
|
|
235
|
+
const toolResultIds = new Set(lastContent.filter(c => c.type === 'tool_result').map(c => c.toolUseId));
|
|
236
|
+
if (toolUseIds.size !== toolResultIds.size || ![...toolUseIds].every(id => toolResultIds.has(id))) {
|
|
237
|
+
throw new Error('ids of tool_result blocks and tool_use blocks from previous message do not match');
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
}
|
|
198
241
|
return this.request({ method: 'sampling/createMessage', params }, CreateMessageResultSchema, options);
|
|
199
242
|
}
|
|
243
|
+
/**
|
|
244
|
+
* Creates an elicitation request for the given parameters.
|
|
245
|
+
* For backwards compatibility, `mode` may be omitted for form requests and will default to `'form'`.
|
|
246
|
+
* @param params The parameters for the elicitation request.
|
|
247
|
+
* @param options Optional request options.
|
|
248
|
+
* @returns The result of the elicitation request.
|
|
249
|
+
*/
|
|
200
250
|
async elicitInput(params, options) {
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
if (!validationResult.valid) {
|
|
208
|
-
throw new McpError(ErrorCode.InvalidParams, `Elicitation response content does not match requested schema: ${validationResult.errorMessage}`);
|
|
251
|
+
var _a, _b, _c, _d, _e;
|
|
252
|
+
const mode = ((_a = params.mode) !== null && _a !== void 0 ? _a : 'form');
|
|
253
|
+
switch (mode) {
|
|
254
|
+
case 'url': {
|
|
255
|
+
if (!((_c = (_b = this._clientCapabilities) === null || _b === void 0 ? void 0 : _b.elicitation) === null || _c === void 0 ? void 0 : _c.url)) {
|
|
256
|
+
throw new Error('Client does not support url elicitation.');
|
|
209
257
|
}
|
|
258
|
+
const urlParams = params;
|
|
259
|
+
return this.request({ method: 'elicitation/create', params: urlParams }, ElicitResultSchema, options);
|
|
210
260
|
}
|
|
211
|
-
|
|
212
|
-
if (
|
|
213
|
-
throw
|
|
261
|
+
case 'form': {
|
|
262
|
+
if (!((_e = (_d = this._clientCapabilities) === null || _d === void 0 ? void 0 : _d.elicitation) === null || _e === void 0 ? void 0 : _e.form)) {
|
|
263
|
+
throw new Error('Client does not support form elicitation.');
|
|
214
264
|
}
|
|
215
|
-
|
|
265
|
+
const formParams = params.mode === 'form' ? params : { ...params, mode: 'form' };
|
|
266
|
+
const result = await this.request({ method: 'elicitation/create', params: formParams }, ElicitResultSchema, options);
|
|
267
|
+
if (result.action === 'accept' && result.content && formParams.requestedSchema) {
|
|
268
|
+
try {
|
|
269
|
+
const validator = this._jsonSchemaValidator.getValidator(formParams.requestedSchema);
|
|
270
|
+
const validationResult = validator(result.content);
|
|
271
|
+
if (!validationResult.valid) {
|
|
272
|
+
throw new McpError(ErrorCode.InvalidParams, `Elicitation response content does not match requested schema: ${validationResult.errorMessage}`);
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
catch (error) {
|
|
276
|
+
if (error instanceof McpError) {
|
|
277
|
+
throw error;
|
|
278
|
+
}
|
|
279
|
+
throw new McpError(ErrorCode.InternalError, `Error validating elicitation response: ${error instanceof Error ? error.message : String(error)}`);
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
return result;
|
|
216
283
|
}
|
|
217
284
|
}
|
|
218
|
-
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* Creates a reusable callback that, when invoked, will send a `notifications/elicitation/complete`
|
|
288
|
+
* notification for the specified elicitation ID.
|
|
289
|
+
*
|
|
290
|
+
* @param elicitationId The ID of the elicitation to mark as complete.
|
|
291
|
+
* @param options Optional notification options. Useful when the completion notification should be related to a prior request.
|
|
292
|
+
* @returns A function that emits the completion notification when awaited.
|
|
293
|
+
*/
|
|
294
|
+
createElicitationCompletionNotifier(elicitationId, options) {
|
|
295
|
+
var _a, _b;
|
|
296
|
+
if (!((_b = (_a = this._clientCapabilities) === null || _a === void 0 ? void 0 : _a.elicitation) === null || _b === void 0 ? void 0 : _b.url)) {
|
|
297
|
+
throw new Error('Client does not support URL elicitation (required for notifications/elicitation/complete)');
|
|
298
|
+
}
|
|
299
|
+
return () => this.notification({
|
|
300
|
+
method: 'notifications/elicitation/complete',
|
|
301
|
+
params: {
|
|
302
|
+
elicitationId
|
|
303
|
+
}
|
|
304
|
+
}, options);
|
|
219
305
|
}
|
|
220
306
|
async listRoots(params, options) {
|
|
221
307
|
return this.request({ method: 'roots/list', params }, ListRootsResultSchema, options);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAA6C,MAAM,uBAAuB,CAAC;AAC/G,OAAO,EAGH,yBAAyB,EAGzB,kBAAkB,EAClB,iBAAiB,EACjB,SAAS,EAET,6BAA6B,EAE7B,uBAAuB,EAEvB,uBAAuB,EAEvB,qBAAqB,EAErB,kBAAkB,EAElB,QAAQ,EASR,qBAAqB,EACrB,2BAA2B,EAC9B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AA8CvE;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,OAAO,MAIX,SAAQ,QAA8F;IAYpG;;OAEG;IACH,YACY,WAA2B,EACnC,OAAuB;;QAEvB,KAAK,CAAC,OAAO,CAAC,CAAC;QAHP,gBAAW,GAAX,WAAW,CAAgB;QAyBvC,+BAA+B;QACvB,mBAAc,GAAG,IAAI,GAAG,EAAoC,CAAC;QAErE,uCAAuC;QACtB,uBAAkB,GAAG,IAAI,GAAG,CAAC,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QAEhH,2FAA2F;QACnF,qBAAgB,GAAG,CAAC,KAAmB,EAAE,SAAkB,EAAW,EAAE;YAC5E,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACxD,OAAO,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,YAAY,CAAE,CAAC,CAAC,CAAC,KAAK,CAAC;QACnH,CAAC,CAAC;QA/BE,IAAI,CAAC,aAAa,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,mCAAI,EAAE,CAAC;QACjD,IAAI,CAAC,aAAa,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,CAAC;QAC3C,IAAI,CAAC,oBAAoB,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,mBAAmB,mCAAI,IAAI,sBAAsB,EAAE,CAAC;QAEzF,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;QACxF,IAAI,CAAC,sBAAsB,CAAC,6BAA6B,EAAE,GAAG,EAAE,WAAC,OAAA,MAAA,IAAI,CAAC,aAAa,oDAAI,CAAA,EAAA,CAAC,CAAC;QAEzF,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;;gBACnE,MAAM,kBAAkB,GACpB,KAAK,CAAC,SAAS,KAAK,MAAA,KAAK,CAAC,WAAW,0CAAE,OAAO,CAAC,gBAAgB,CAAY,CAAA,IAAI,SAAS,CAAC;gBAC7F,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;gBACjC,MAAM,WAAW,GAAG,kBAAkB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBACxD,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;oBACtB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,kBAAkB,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;gBAClE,CAAC;gBACD,OAAO,EAAE,CAAC;YACd,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAcD;;;;OAIG;IACI,oBAAoB,CAAC,YAAgC;QACxD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAClF,CAAC;QACD,IAAI,CAAC,aAAa,GAAG,iBAAiB,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IAC7E,CAAC;IAES,yBAAyB,CAAC,MAA0B;;QAC1D,QAAQ,MAAiC,EAAE,CAAC;YACxC,KAAK,wBAAwB;gBACzB,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,mBAAmB,0CAAE,QAAQ,CAAA,EAAE,CAAC;oBACtC,MAAM,IAAI,KAAK,CAAC,kDAAkD,MAAM,GAAG,CAAC,CAAC;gBACjF,CAAC;gBACD,MAAM;YAEV,KAAK,oBAAoB;gBACrB,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,mBAAmB,0CAAE,WAAW,CAAA,EAAE,CAAC;oBACzC,MAAM,IAAI,KAAK,CAAC,qDAAqD,MAAM,GAAG,CAAC,CAAC;gBACpF,CAAC;gBACD,MAAM;YAEV,KAAK,YAAY;gBACb,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,mBAAmB,0CAAE,KAAK,CAAA,EAAE,CAAC;oBACnC,MAAM,IAAI,KAAK,CAAC,uDAAuD,MAAM,GAAG,CAAC,CAAC;gBACtF,CAAC;gBACD,MAAM;YAEV,KAAK,MAAM;gBACP,2CAA2C;gBAC3C,MAAM;QACd,CAAC;IACL,CAAC;IAES,4BAA4B,CAAC,MAAsD;QACzF,QAAQ,MAAsC,EAAE,CAAC;YAC7C,KAAK,uBAAuB;gBACxB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;oBAC9B,MAAM,IAAI,KAAK,CAAC,iDAAiD,MAAM,GAAG,CAAC,CAAC;gBAChF,CAAC;gBACD,MAAM;YAEV,KAAK,iCAAiC,CAAC;YACvC,KAAK,sCAAsC;gBACvC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC;oBAChC,MAAM,IAAI,KAAK,CAAC,mEAAmE,MAAM,GAAG,CAAC,CAAC;gBAClG,CAAC;gBACD,MAAM;YAEV,KAAK,kCAAkC;gBACnC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;oBAC5B,MAAM,IAAI,KAAK,CAAC,wEAAwE,MAAM,GAAG,CAAC,CAAC;gBACvG,CAAC;gBACD,MAAM;YAEV,KAAK,oCAAoC;gBACrC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;oBAC9B,MAAM,IAAI,KAAK,CAAC,0EAA0E,MAAM,GAAG,CAAC,CAAC;gBACzG,CAAC;gBACD,MAAM;YAEV,KAAK,yBAAyB;gBAC1B,gDAAgD;gBAChD,MAAM;YAEV,KAAK,wBAAwB;gBACzB,4CAA4C;gBAC5C,MAAM;QACd,CAAC;IACL,CAAC;IAES,8BAA8B,CAAC,MAAc;QACnD,QAAQ,MAAM,EAAE,CAAC;YACb,KAAK,qBAAqB;gBACtB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;oBAClC,MAAM,IAAI,KAAK,CAAC,qDAAqD,MAAM,GAAG,CAAC,CAAC;gBACpF,CAAC;gBACD,MAAM;YAEV,KAAK,kBAAkB;gBACnB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;oBAC9B,MAAM,IAAI,KAAK,CAAC,iDAAiD,MAAM,GAAG,CAAC,CAAC;gBAChF,CAAC;gBACD,MAAM;YAEV,KAAK,aAAa,CAAC;YACnB,KAAK,cAAc;gBACf,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;oBAC9B,MAAM,IAAI,KAAK,CAAC,iDAAiD,MAAM,GAAG,CAAC,CAAC;gBAChF,CAAC;gBACD,MAAM;YAEV,KAAK,gBAAgB,CAAC;YACtB,KAAK,0BAA0B,CAAC;YAChC,KAAK,gBAAgB;gBACjB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC;oBAChC,MAAM,IAAI,KAAK,CAAC,mDAAmD,MAAM,GAAG,CAAC,CAAC;gBAClF,CAAC;gBACD,MAAM;YAEV,KAAK,YAAY,CAAC;YAClB,KAAK,YAAY;gBACb,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;oBAC5B,MAAM,IAAI,KAAK,CAAC,+CAA+C,MAAM,GAAG,CAAC,CAAC;gBAC9E,CAAC;gBACD,MAAM;YAEV,KAAK,MAAM,CAAC;YACZ,KAAK,YAAY;gBACb,oDAAoD;gBACpD,MAAM;QACd,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,OAA0B;QAClD,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC;QAExD,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC;QACvD,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC;QAEhD,MAAM,eAAe,GAAG,2BAA2B,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,uBAAuB,CAAC;QAE5H,OAAO;YACH,eAAe;YACf,YAAY,EAAE,IAAI,CAAC,eAAe,EAAE;YACpC,UAAU,EAAE,IAAI,CAAC,WAAW;YAC5B,GAAG,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC;SAClE,CAAC;IACN,CAAC;IAED;;OAEG;IACH,qBAAqB;QACjB,OAAO,IAAI,CAAC,mBAAmB,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,gBAAgB;QACZ,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IAEO,eAAe;QACnB,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,IAAI;QACN,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,iBAAiB,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAAsC,EAAE,OAAwB;QAChF,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,wBAAwB,EAAE,MAAM,EAAE,EAAE,yBAAyB,EAAE,OAAO,CAAC,CAAC;IAC1G,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAA+B,EAAE,OAAwB;QACvE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,EAAE,EAAE,kBAAkB,EAAE,OAAO,CAAC,CAAC;QAEzG,mFAAmF;QACnF,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;YACzE,IAAI,CAAC;gBACD,MAAM,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,MAAM,CAAC,eAAiC,CAAC,CAAC;gBACnG,MAAM,gBAAgB,GAAG,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAEnD,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;oBAC1B,MAAM,IAAI,QAAQ,CACd,SAAS,CAAC,aAAa,EACvB,iEAAiE,gBAAgB,CAAC,YAAY,EAAE,CACnG,CAAC;gBACN,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;oBAC5B,MAAM,KAAK,CAAC;gBAChB,CAAC;gBACD,MAAM,IAAI,QAAQ,CACd,SAAS,CAAC,aAAa,EACvB,0CAA0C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACrG,CAAC;YACN,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAmC,EAAE,OAAwB;QACzE,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,qBAAqB,EAAE,OAAO,CAAC,CAAC;IAC1F,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,kBAAkB,CAAC,MAA4C,EAAE,SAAkB;QACrF,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;gBAClD,OAAO,IAAI,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,uBAAuB,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1E,CAAC;QACL,CAAC;IACL,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,MAA6C;QACnE,OAAO,IAAI,CAAC,YAAY,CAAC;YACrB,MAAM,EAAE,iCAAiC;YACzC,MAAM;SACT,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,uBAAuB;QACzB,OAAO,IAAI,CAAC,YAAY,CAAC;YACrB,MAAM,EAAE,sCAAsC;SACjD,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,mBAAmB;QACrB,OAAO,IAAI,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,kCAAkC,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,KAAK,CAAC,qBAAqB;QACvB,OAAO,IAAI,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,oCAAoC,EAAE,CAAC,CAAC;IAC/E,CAAC;CACJ"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/index.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/server/mcp.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Server, ServerOptions } from './index.js';
|
|
2
|
-
import {
|
|
2
|
+
import { AnySchema, AnyObjectSchema, ZodRawShapeCompat, SchemaOutput, ShapeOutput } from './zod-compat.js';
|
|
3
3
|
import { Implementation, CallToolResult, Resource, ListResourcesResult, GetPromptResult, ReadResourceResult, ServerRequest, ServerNotification, ToolAnnotations, LoggingMessageNotification } from '../types.js';
|
|
4
4
|
import { UriTemplate, Variables } from '../shared/uriTemplate.js';
|
|
5
5
|
import { RequestHandlerExtra } from '../shared/protocol.js';
|
|
@@ -94,7 +94,7 @@ export declare class McpServer {
|
|
|
94
94
|
* between ToolAnnotations and ZodRawShape during overload resolution, as both are plain object types.
|
|
95
95
|
* @deprecated Use `registerTool` instead.
|
|
96
96
|
*/
|
|
97
|
-
tool<Args extends
|
|
97
|
+
tool<Args extends ZodRawShapeCompat>(name: string, paramsSchemaOrAnnotations: Args | ToolAnnotations, cb: ToolCallback<Args>): RegisteredTool;
|
|
98
98
|
/**
|
|
99
99
|
* Registers a tool `name` (with a description) taking either parameter schema or annotations.
|
|
100
100
|
* This unified overload handles both `tool(name, description, paramsSchema, cb)` and
|
|
@@ -104,21 +104,21 @@ export declare class McpServer {
|
|
|
104
104
|
* between ToolAnnotations and ZodRawShape during overload resolution, as both are plain object types.
|
|
105
105
|
* @deprecated Use `registerTool` instead.
|
|
106
106
|
*/
|
|
107
|
-
tool<Args extends
|
|
107
|
+
tool<Args extends ZodRawShapeCompat>(name: string, description: string, paramsSchemaOrAnnotations: Args | ToolAnnotations, cb: ToolCallback<Args>): RegisteredTool;
|
|
108
108
|
/**
|
|
109
109
|
* Registers a tool with both parameter schema and annotations.
|
|
110
110
|
* @deprecated Use `registerTool` instead.
|
|
111
111
|
*/
|
|
112
|
-
tool<Args extends
|
|
112
|
+
tool<Args extends ZodRawShapeCompat>(name: string, paramsSchema: Args, annotations: ToolAnnotations, cb: ToolCallback<Args>): RegisteredTool;
|
|
113
113
|
/**
|
|
114
114
|
* Registers a tool with description, parameter schema, and annotations.
|
|
115
115
|
* @deprecated Use `registerTool` instead.
|
|
116
116
|
*/
|
|
117
|
-
tool<Args extends
|
|
117
|
+
tool<Args extends ZodRawShapeCompat>(name: string, description: string, paramsSchema: Args, annotations: ToolAnnotations, cb: ToolCallback<Args>): RegisteredTool;
|
|
118
118
|
/**
|
|
119
119
|
* Registers a tool with a config object and callback.
|
|
120
120
|
*/
|
|
121
|
-
registerTool<InputArgs extends
|
|
121
|
+
registerTool<InputArgs extends ZodRawShapeCompat | AnySchema, OutputArgs extends ZodRawShapeCompat | AnySchema>(name: string, config: {
|
|
122
122
|
title?: string;
|
|
123
123
|
description?: string;
|
|
124
124
|
inputSchema?: InputArgs;
|
|
@@ -228,19 +228,19 @@ export declare class ResourceTemplate {
|
|
|
228
228
|
* - `content` if the tool does not have an outputSchema
|
|
229
229
|
* - Both fields are optional but typically one should be provided
|
|
230
230
|
*/
|
|
231
|
-
export type ToolCallback<Args extends undefined |
|
|
231
|
+
export type ToolCallback<Args extends undefined | ZodRawShapeCompat | AnySchema = undefined> = Args extends ZodRawShapeCompat ? (args: ShapeOutput<Args>, extra: RequestHandlerExtra<ServerRequest, ServerNotification>) => CallToolResult | Promise<CallToolResult> : Args extends AnySchema ? (args: SchemaOutput<Args>, extra: RequestHandlerExtra<ServerRequest, ServerNotification>) => CallToolResult | Promise<CallToolResult> : (extra: RequestHandlerExtra<ServerRequest, ServerNotification>) => CallToolResult | Promise<CallToolResult>;
|
|
232
232
|
export type RegisteredTool = {
|
|
233
233
|
title?: string;
|
|
234
234
|
description?: string;
|
|
235
|
-
inputSchema?:
|
|
236
|
-
outputSchema?:
|
|
235
|
+
inputSchema?: AnySchema;
|
|
236
|
+
outputSchema?: AnySchema;
|
|
237
237
|
annotations?: ToolAnnotations;
|
|
238
238
|
_meta?: Record<string, unknown>;
|
|
239
|
-
callback: ToolCallback<undefined |
|
|
239
|
+
callback: ToolCallback<undefined | ZodRawShapeCompat>;
|
|
240
240
|
enabled: boolean;
|
|
241
241
|
enable(): void;
|
|
242
242
|
disable(): void;
|
|
243
|
-
update<InputArgs extends
|
|
243
|
+
update<InputArgs extends ZodRawShapeCompat, OutputArgs extends ZodRawShapeCompat>(updates: {
|
|
244
244
|
name?: string | null;
|
|
245
245
|
title?: string;
|
|
246
246
|
description?: string;
|
|
@@ -305,14 +305,12 @@ export type RegisteredResourceTemplate = {
|
|
|
305
305
|
}): void;
|
|
306
306
|
remove(): void;
|
|
307
307
|
};
|
|
308
|
-
type PromptArgsRawShape =
|
|
309
|
-
|
|
310
|
-
};
|
|
311
|
-
export type PromptCallback<Args extends undefined | PromptArgsRawShape = undefined> = Args extends PromptArgsRawShape ? (args: z.objectOutputType<Args, ZodTypeAny>, extra: RequestHandlerExtra<ServerRequest, ServerNotification>) => GetPromptResult | Promise<GetPromptResult> : (extra: RequestHandlerExtra<ServerRequest, ServerNotification>) => GetPromptResult | Promise<GetPromptResult>;
|
|
308
|
+
type PromptArgsRawShape = ZodRawShapeCompat;
|
|
309
|
+
export type PromptCallback<Args extends undefined | PromptArgsRawShape = undefined> = Args extends PromptArgsRawShape ? (args: ShapeOutput<Args>, extra: RequestHandlerExtra<ServerRequest, ServerNotification>) => GetPromptResult | Promise<GetPromptResult> : (extra: RequestHandlerExtra<ServerRequest, ServerNotification>) => GetPromptResult | Promise<GetPromptResult>;
|
|
312
310
|
export type RegisteredPrompt = {
|
|
313
311
|
title?: string;
|
|
314
312
|
description?: string;
|
|
315
|
-
argsSchema?:
|
|
313
|
+
argsSchema?: AnyObjectSchema;
|
|
316
314
|
callback: PromptCallback<undefined | PromptArgsRawShape>;
|
|
317
315
|
enabled: boolean;
|
|
318
316
|
enable(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../../src/server/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../../src/server/mcp.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/server/mcp.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Server } from './index.js';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { normalizeObjectSchema, safeParseAsync, getObjectShape, objectFromShape, getParseErrorMessage, getSchemaDescription, isSchemaOptional, getLiteralValue } from './zod-compat.js';
|
|
3
|
+
import { toJsonSchemaCompat } from './zod-json-schema-compat.js';
|
|
4
4
|
import { McpError, ErrorCode, ListResourceTemplatesRequestSchema, ReadResourceRequestSchema, ListToolsRequestSchema, CallToolRequestSchema, ListResourcesRequestSchema, ListPromptsRequestSchema, GetPromptRequestSchema, CompleteRequestSchema, assertCompleteRequestPrompt, assertCompleteRequestResourceTemplate } from '../types.js';
|
|
5
|
-
import {
|
|
5
|
+
import { isCompletable, getCompleter } from './completable.js';
|
|
6
6
|
import { UriTemplate } from '../shared/uriTemplate.js';
|
|
7
7
|
import { validateAndWarnToolName } from '../shared/toolNameValidation.js';
|
|
8
8
|
/**
|
|
@@ -40,8 +40,8 @@ export class McpServer {
|
|
|
40
40
|
if (this._toolHandlersInitialized) {
|
|
41
41
|
return;
|
|
42
42
|
}
|
|
43
|
-
this.server.assertCanSetRequestHandler(ListToolsRequestSchema
|
|
44
|
-
this.server.assertCanSetRequestHandler(CallToolRequestSchema
|
|
43
|
+
this.server.assertCanSetRequestHandler(getMethodValue(ListToolsRequestSchema));
|
|
44
|
+
this.server.assertCanSetRequestHandler(getMethodValue(CallToolRequestSchema));
|
|
45
45
|
this.server.registerCapabilities({
|
|
46
46
|
tools: {
|
|
47
47
|
listChanged: true
|
|
@@ -55,20 +55,26 @@ export class McpServer {
|
|
|
55
55
|
name,
|
|
56
56
|
title: tool.title,
|
|
57
57
|
description: tool.description,
|
|
58
|
-
inputSchema:
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
58
|
+
inputSchema: (() => {
|
|
59
|
+
const obj = normalizeObjectSchema(tool.inputSchema);
|
|
60
|
+
return obj
|
|
61
|
+
? toJsonSchemaCompat(obj, {
|
|
62
|
+
strictUnions: true,
|
|
63
|
+
pipeStrategy: 'input'
|
|
64
|
+
})
|
|
65
|
+
: EMPTY_OBJECT_JSON_SCHEMA;
|
|
66
|
+
})(),
|
|
64
67
|
annotations: tool.annotations,
|
|
65
68
|
_meta: tool._meta
|
|
66
69
|
};
|
|
67
70
|
if (tool.outputSchema) {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
71
|
+
const obj = normalizeObjectSchema(tool.outputSchema);
|
|
72
|
+
if (obj) {
|
|
73
|
+
toolDefinition.outputSchema = toJsonSchemaCompat(obj, {
|
|
74
|
+
strictUnions: true,
|
|
75
|
+
pipeStrategy: 'output'
|
|
76
|
+
});
|
|
77
|
+
}
|
|
72
78
|
}
|
|
73
79
|
return toolDefinition;
|
|
74
80
|
})
|
|
@@ -85,9 +91,13 @@ export class McpServer {
|
|
|
85
91
|
}
|
|
86
92
|
if (tool.inputSchema) {
|
|
87
93
|
const cb = tool.callback;
|
|
88
|
-
|
|
94
|
+
// Try to normalize to object schema first (for raw shapes and object schemas)
|
|
95
|
+
// If that fails, use the schema directly (for union/intersection/etc)
|
|
96
|
+
const inputObj = normalizeObjectSchema(tool.inputSchema);
|
|
97
|
+
const schemaToParse = inputObj !== null && inputObj !== void 0 ? inputObj : tool.inputSchema;
|
|
98
|
+
const parseResult = await safeParseAsync(schemaToParse, request.params.arguments);
|
|
89
99
|
if (!parseResult.success) {
|
|
90
|
-
throw new McpError(ErrorCode.InvalidParams, `Input validation error: Invalid arguments for tool ${request.params.name}: ${parseResult.error
|
|
100
|
+
throw new McpError(ErrorCode.InvalidParams, `Input validation error: Invalid arguments for tool ${request.params.name}: ${getParseErrorMessage(parseResult.error)}`);
|
|
91
101
|
}
|
|
92
102
|
const args = parseResult.data;
|
|
93
103
|
result = await Promise.resolve(cb(args, extra));
|
|
@@ -101,13 +111,19 @@ export class McpServer {
|
|
|
101
111
|
throw new McpError(ErrorCode.InvalidParams, `Output validation error: Tool ${request.params.name} has an output schema but no structured content was provided`);
|
|
102
112
|
}
|
|
103
113
|
// if the tool has an output schema, validate structured content
|
|
104
|
-
const
|
|
114
|
+
const outputObj = normalizeObjectSchema(tool.outputSchema);
|
|
115
|
+
const parseResult = await safeParseAsync(outputObj, result.structuredContent);
|
|
105
116
|
if (!parseResult.success) {
|
|
106
|
-
throw new McpError(ErrorCode.InvalidParams, `Output validation error: Invalid structured content for tool ${request.params.name}: ${parseResult.error
|
|
117
|
+
throw new McpError(ErrorCode.InvalidParams, `Output validation error: Invalid structured content for tool ${request.params.name}: ${getParseErrorMessage(parseResult.error)}`);
|
|
107
118
|
}
|
|
108
119
|
}
|
|
109
120
|
}
|
|
110
121
|
catch (error) {
|
|
122
|
+
if (error instanceof McpError) {
|
|
123
|
+
if (error.code === ErrorCode.UrlElicitationRequired) {
|
|
124
|
+
throw error; // Return the error to the caller without wrapping in CallToolResult
|
|
125
|
+
}
|
|
126
|
+
}
|
|
111
127
|
return this.createToolError(error instanceof Error ? error.message : String(error));
|
|
112
128
|
}
|
|
113
129
|
return result;
|
|
@@ -135,7 +151,7 @@ export class McpServer {
|
|
|
135
151
|
if (this._completionHandlerInitialized) {
|
|
136
152
|
return;
|
|
137
153
|
}
|
|
138
|
-
this.server.assertCanSetRequestHandler(CompleteRequestSchema
|
|
154
|
+
this.server.assertCanSetRequestHandler(getMethodValue(CompleteRequestSchema));
|
|
139
155
|
this.server.registerCapabilities({
|
|
140
156
|
completions: {}
|
|
141
157
|
});
|
|
@@ -164,12 +180,16 @@ export class McpServer {
|
|
|
164
180
|
if (!prompt.argsSchema) {
|
|
165
181
|
return EMPTY_COMPLETION_RESULT;
|
|
166
182
|
}
|
|
167
|
-
const
|
|
168
|
-
|
|
183
|
+
const promptShape = getObjectShape(prompt.argsSchema);
|
|
184
|
+
const field = promptShape === null || promptShape === void 0 ? void 0 : promptShape[request.params.argument.name];
|
|
185
|
+
if (!isCompletable(field)) {
|
|
169
186
|
return EMPTY_COMPLETION_RESULT;
|
|
170
187
|
}
|
|
171
|
-
const
|
|
172
|
-
|
|
188
|
+
const completer = getCompleter(field);
|
|
189
|
+
if (!completer) {
|
|
190
|
+
return EMPTY_COMPLETION_RESULT;
|
|
191
|
+
}
|
|
192
|
+
const suggestions = await completer(request.params.argument.value, request.params.context);
|
|
173
193
|
return createCompletionResult(suggestions);
|
|
174
194
|
}
|
|
175
195
|
async handleResourceCompletion(request, ref) {
|
|
@@ -192,9 +212,9 @@ export class McpServer {
|
|
|
192
212
|
if (this._resourceHandlersInitialized) {
|
|
193
213
|
return;
|
|
194
214
|
}
|
|
195
|
-
this.server.assertCanSetRequestHandler(ListResourcesRequestSchema
|
|
196
|
-
this.server.assertCanSetRequestHandler(ListResourceTemplatesRequestSchema
|
|
197
|
-
this.server.assertCanSetRequestHandler(ReadResourceRequestSchema
|
|
215
|
+
this.server.assertCanSetRequestHandler(getMethodValue(ListResourcesRequestSchema));
|
|
216
|
+
this.server.assertCanSetRequestHandler(getMethodValue(ListResourceTemplatesRequestSchema));
|
|
217
|
+
this.server.assertCanSetRequestHandler(getMethodValue(ReadResourceRequestSchema));
|
|
198
218
|
this.server.registerCapabilities({
|
|
199
219
|
resources: {
|
|
200
220
|
listChanged: true
|
|
@@ -258,8 +278,8 @@ export class McpServer {
|
|
|
258
278
|
if (this._promptHandlersInitialized) {
|
|
259
279
|
return;
|
|
260
280
|
}
|
|
261
|
-
this.server.assertCanSetRequestHandler(ListPromptsRequestSchema
|
|
262
|
-
this.server.assertCanSetRequestHandler(GetPromptRequestSchema
|
|
281
|
+
this.server.assertCanSetRequestHandler(getMethodValue(ListPromptsRequestSchema));
|
|
282
|
+
this.server.assertCanSetRequestHandler(getMethodValue(GetPromptRequestSchema));
|
|
263
283
|
this.server.registerCapabilities({
|
|
264
284
|
prompts: {
|
|
265
285
|
listChanged: true
|
|
@@ -286,9 +306,10 @@ export class McpServer {
|
|
|
286
306
|
throw new McpError(ErrorCode.InvalidParams, `Prompt ${request.params.name} disabled`);
|
|
287
307
|
}
|
|
288
308
|
if (prompt.argsSchema) {
|
|
289
|
-
const
|
|
309
|
+
const argsObj = normalizeObjectSchema(prompt.argsSchema);
|
|
310
|
+
const parseResult = await safeParseAsync(argsObj, request.params.arguments);
|
|
290
311
|
if (!parseResult.success) {
|
|
291
|
-
throw new McpError(ErrorCode.InvalidParams, `Invalid arguments for prompt ${request.params.name}: ${parseResult.error
|
|
312
|
+
throw new McpError(ErrorCode.InvalidParams, `Invalid arguments for prompt ${request.params.name}: ${getParseErrorMessage(parseResult.error)}`);
|
|
292
313
|
}
|
|
293
314
|
const args = parseResult.data;
|
|
294
315
|
const cb = prompt.callback;
|
|
@@ -415,7 +436,7 @@ export class McpServer {
|
|
|
415
436
|
const registeredPrompt = {
|
|
416
437
|
title,
|
|
417
438
|
description,
|
|
418
|
-
argsSchema: argsSchema === undefined ? undefined :
|
|
439
|
+
argsSchema: argsSchema === undefined ? undefined : objectFromShape(argsSchema),
|
|
419
440
|
callback,
|
|
420
441
|
enabled: true,
|
|
421
442
|
disable: () => registeredPrompt.update({ enabled: false }),
|
|
@@ -432,7 +453,7 @@ export class McpServer {
|
|
|
432
453
|
if (typeof updates.description !== 'undefined')
|
|
433
454
|
registeredPrompt.description = updates.description;
|
|
434
455
|
if (typeof updates.argsSchema !== 'undefined')
|
|
435
|
-
registeredPrompt.argsSchema =
|
|
456
|
+
registeredPrompt.argsSchema = objectFromShape(updates.argsSchema);
|
|
436
457
|
if (typeof updates.callback !== 'undefined')
|
|
437
458
|
registeredPrompt.callback = updates.callback;
|
|
438
459
|
if (typeof updates.enabled !== 'undefined')
|
|
@@ -472,7 +493,7 @@ export class McpServer {
|
|
|
472
493
|
if (typeof updates.description !== 'undefined')
|
|
473
494
|
registeredTool.description = updates.description;
|
|
474
495
|
if (typeof updates.paramsSchema !== 'undefined')
|
|
475
|
-
registeredTool.inputSchema =
|
|
496
|
+
registeredTool.inputSchema = objectFromShape(updates.paramsSchema);
|
|
476
497
|
if (typeof updates.callback !== 'undefined')
|
|
477
498
|
registeredTool.callback = updates.callback;
|
|
478
499
|
if (typeof updates.annotations !== 'undefined')
|
|
@@ -646,7 +667,7 @@ const EMPTY_OBJECT_JSON_SCHEMA = {
|
|
|
646
667
|
type: 'object',
|
|
647
668
|
properties: {}
|
|
648
669
|
};
|
|
649
|
-
// Helper to check if an object is a Zod schema (
|
|
670
|
+
// Helper to check if an object is a Zod schema (ZodRawShapeCompat)
|
|
650
671
|
function isZodRawShape(obj) {
|
|
651
672
|
if (typeof obj !== 'object' || obj === null)
|
|
652
673
|
return false;
|
|
@@ -672,16 +693,38 @@ function getZodSchemaObject(schema) {
|
|
|
672
693
|
return undefined;
|
|
673
694
|
}
|
|
674
695
|
if (isZodRawShape(schema)) {
|
|
675
|
-
return
|
|
696
|
+
return objectFromShape(schema);
|
|
676
697
|
}
|
|
677
698
|
return schema;
|
|
678
699
|
}
|
|
679
700
|
function promptArgumentsFromSchema(schema) {
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
701
|
+
const shape = getObjectShape(schema);
|
|
702
|
+
if (!shape)
|
|
703
|
+
return [];
|
|
704
|
+
return Object.entries(shape).map(([name, field]) => {
|
|
705
|
+
// Get description - works for both v3 and v4
|
|
706
|
+
const description = getSchemaDescription(field);
|
|
707
|
+
// Check if optional - works for both v3 and v4
|
|
708
|
+
const isOptional = isSchemaOptional(field);
|
|
709
|
+
return {
|
|
710
|
+
name,
|
|
711
|
+
description,
|
|
712
|
+
required: !isOptional
|
|
713
|
+
};
|
|
714
|
+
});
|
|
715
|
+
}
|
|
716
|
+
function getMethodValue(schema) {
|
|
717
|
+
const shape = getObjectShape(schema);
|
|
718
|
+
const methodSchema = shape === null || shape === void 0 ? void 0 : shape.method;
|
|
719
|
+
if (!methodSchema) {
|
|
720
|
+
throw new Error('Schema is missing a method literal');
|
|
721
|
+
}
|
|
722
|
+
// Extract literal value - works for both v3 and v4
|
|
723
|
+
const value = getLiteralValue(methodSchema);
|
|
724
|
+
if (typeof value === 'string') {
|
|
725
|
+
return value;
|
|
726
|
+
}
|
|
727
|
+
throw new Error('Schema method literal must be a string');
|
|
685
728
|
}
|
|
686
729
|
function createCompletionResult(suggestions) {
|
|
687
730
|
return {
|