@modelcontextprotocol/sdk 1.20.1 → 1.21.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/dist/cjs/client/auth.d.ts +21 -6
- package/dist/cjs/client/auth.d.ts.map +1 -1
- package/dist/cjs/client/auth.js +11 -0
- package/dist/cjs/client/auth.js.map +1 -1
- package/dist/cjs/client/index.d.ts +42 -4
- package/dist/cjs/client/index.d.ts.map +1 -1
- package/dist/cjs/client/index.js +17 -18
- package/dist/cjs/client/index.js.map +1 -1
- package/dist/cjs/examples/client/simpleOAuthClient.js.map +1 -1
- package/dist/cjs/examples/client/simpleStreamableHttp.js +3 -6
- package/dist/cjs/examples/client/simpleStreamableHttp.js.map +1 -1
- package/dist/cjs/examples/server/elicitationExample.d.ts +2 -0
- package/dist/cjs/examples/server/elicitationExample.d.ts.map +1 -0
- package/dist/cjs/examples/server/elicitationExample.js +437 -0
- package/dist/cjs/examples/server/elicitationExample.js.map +1 -0
- package/dist/cjs/server/auth/handlers/metadata.js +1 -1
- package/dist/cjs/server/auth/handlers/metadata.js.map +1 -1
- package/dist/cjs/server/index.d.ts +34 -2
- package/dist/cjs/server/index.d.ts.map +1 -1
- package/dist/cjs/server/index.js +9 -12
- package/dist/cjs/server/index.js.map +1 -1
- package/dist/cjs/server/mcp.d.ts +7 -0
- package/dist/cjs/server/mcp.d.ts.map +1 -1
- package/dist/cjs/server/mcp.js +47 -49
- package/dist/cjs/server/mcp.js.map +1 -1
- package/dist/cjs/shared/auth.d.ts +1 -0
- package/dist/cjs/shared/auth.d.ts.map +1 -1
- package/dist/cjs/validation/ajv-provider.d.ts +53 -0
- package/dist/cjs/validation/ajv-provider.d.ts.map +1 -0
- package/dist/cjs/validation/ajv-provider.js +95 -0
- package/dist/cjs/validation/ajv-provider.js.map +1 -0
- package/dist/cjs/validation/cfworker-provider.d.ts +52 -0
- package/dist/cjs/validation/cfworker-provider.d.ts.map +1 -0
- package/dist/cjs/validation/cfworker-provider.js +71 -0
- package/dist/cjs/validation/cfworker-provider.js.map +1 -0
- package/dist/cjs/validation/index.d.ts +29 -0
- package/dist/cjs/validation/index.d.ts.map +1 -0
- package/dist/cjs/validation/index.js +30 -0
- package/dist/cjs/validation/index.js.map +1 -0
- package/dist/cjs/validation/types.d.ts +55 -0
- package/dist/cjs/validation/types.d.ts.map +1 -0
- package/dist/cjs/validation/types.js +3 -0
- package/dist/cjs/validation/types.js.map +1 -0
- package/dist/esm/client/auth.d.ts +21 -6
- package/dist/esm/client/auth.d.ts.map +1 -1
- package/dist/esm/client/auth.js +11 -1
- package/dist/esm/client/auth.js.map +1 -1
- package/dist/esm/client/index.d.ts +42 -4
- package/dist/esm/client/index.d.ts.map +1 -1
- package/dist/esm/client/index.js +18 -16
- package/dist/esm/client/index.js.map +1 -1
- package/dist/esm/examples/client/simpleOAuthClient.js.map +1 -1
- package/dist/esm/examples/client/simpleStreamableHttp.js +2 -2
- package/dist/esm/examples/client/simpleStreamableHttp.js.map +1 -1
- package/dist/esm/examples/server/elicitationExample.d.ts +2 -0
- package/dist/esm/examples/server/elicitationExample.d.ts.map +1 -0
- package/dist/esm/examples/server/elicitationExample.js +432 -0
- package/dist/esm/examples/server/elicitationExample.js.map +1 -0
- package/dist/esm/server/auth/handlers/metadata.js +1 -1
- package/dist/esm/server/auth/handlers/metadata.js.map +1 -1
- package/dist/esm/server/index.d.ts +34 -2
- package/dist/esm/server/index.d.ts.map +1 -1
- package/dist/esm/server/index.js +10 -10
- package/dist/esm/server/index.js.map +1 -1
- package/dist/esm/server/mcp.d.ts +7 -0
- package/dist/esm/server/mcp.d.ts.map +1 -1
- package/dist/esm/server/mcp.js +47 -49
- package/dist/esm/server/mcp.js.map +1 -1
- package/dist/esm/shared/auth.d.ts +1 -0
- package/dist/esm/shared/auth.d.ts.map +1 -1
- package/dist/esm/validation/ajv-provider.d.ts +53 -0
- package/dist/esm/validation/ajv-provider.d.ts.map +1 -0
- package/dist/esm/validation/ajv-provider.js +88 -0
- package/dist/esm/validation/ajv-provider.js.map +1 -0
- package/dist/esm/validation/cfworker-provider.d.ts +52 -0
- package/dist/esm/validation/cfworker-provider.d.ts.map +1 -0
- package/dist/esm/validation/cfworker-provider.js +67 -0
- package/dist/esm/validation/cfworker-provider.js.map +1 -0
- package/dist/esm/validation/index.d.ts +29 -0
- package/dist/esm/validation/index.d.ts.map +1 -0
- package/dist/esm/validation/index.js +29 -0
- package/dist/esm/validation/index.js.map +1 -0
- package/dist/esm/validation/types.d.ts +55 -0
- package/dist/esm/validation/types.d.ts.map +1 -0
- package/dist/esm/validation/types.js +2 -0
- package/dist/esm/validation/types.js.map +1 -0
- package/package.json +25 -3
|
@@ -0,0 +1,432 @@
|
|
|
1
|
+
// Run with: npx tsx src/examples/server/elicitationExample.ts
|
|
2
|
+
//
|
|
3
|
+
// This example demonstrates how to use elicitation to collect structured user input
|
|
4
|
+
// with JSON Schema validation via a local HTTP server with SSE streaming.
|
|
5
|
+
// Elicitation allows servers to request user input through the client interface
|
|
6
|
+
// with schema-based validation.
|
|
7
|
+
import { randomUUID } from 'node:crypto';
|
|
8
|
+
import cors from 'cors';
|
|
9
|
+
import express from 'express';
|
|
10
|
+
import { McpServer } from '../../server/mcp.js';
|
|
11
|
+
import { StreamableHTTPServerTransport } from '../../server/streamableHttp.js';
|
|
12
|
+
import { isInitializeRequest } from '../../types.js';
|
|
13
|
+
// Create MCP server - it will automatically use AjvJsonSchemaValidator with sensible defaults
|
|
14
|
+
// The validator supports format validation (email, date, etc.) if ajv-formats is installed
|
|
15
|
+
const mcpServer = new McpServer({
|
|
16
|
+
name: 'elicitation-example-server',
|
|
17
|
+
version: '1.0.0'
|
|
18
|
+
}, {
|
|
19
|
+
capabilities: {}
|
|
20
|
+
});
|
|
21
|
+
/**
|
|
22
|
+
* Example 1: Simple user registration tool
|
|
23
|
+
* Collects username, email, and password from the user
|
|
24
|
+
*/
|
|
25
|
+
mcpServer.registerTool('register_user', {
|
|
26
|
+
description: 'Register a new user account by collecting their information',
|
|
27
|
+
inputSchema: {}
|
|
28
|
+
}, async () => {
|
|
29
|
+
try {
|
|
30
|
+
// Request user information through elicitation
|
|
31
|
+
const result = await mcpServer.server.elicitInput({
|
|
32
|
+
message: 'Please provide your registration information:',
|
|
33
|
+
requestedSchema: {
|
|
34
|
+
type: 'object',
|
|
35
|
+
properties: {
|
|
36
|
+
username: {
|
|
37
|
+
type: 'string',
|
|
38
|
+
title: 'Username',
|
|
39
|
+
description: 'Your desired username (3-20 characters)',
|
|
40
|
+
minLength: 3,
|
|
41
|
+
maxLength: 20
|
|
42
|
+
},
|
|
43
|
+
email: {
|
|
44
|
+
type: 'string',
|
|
45
|
+
title: 'Email',
|
|
46
|
+
description: 'Your email address',
|
|
47
|
+
format: 'email'
|
|
48
|
+
},
|
|
49
|
+
password: {
|
|
50
|
+
type: 'string',
|
|
51
|
+
title: 'Password',
|
|
52
|
+
description: 'Your password (min 8 characters)',
|
|
53
|
+
minLength: 8
|
|
54
|
+
},
|
|
55
|
+
newsletter: {
|
|
56
|
+
type: 'boolean',
|
|
57
|
+
title: 'Newsletter',
|
|
58
|
+
description: 'Subscribe to newsletter?',
|
|
59
|
+
default: false
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
required: ['username', 'email', 'password']
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
// Handle the different possible actions
|
|
66
|
+
if (result.action === 'accept' && result.content) {
|
|
67
|
+
const { username, email, newsletter } = result.content;
|
|
68
|
+
return {
|
|
69
|
+
content: [
|
|
70
|
+
{
|
|
71
|
+
type: 'text',
|
|
72
|
+
text: `Registration successful!\n\nUsername: ${username}\nEmail: ${email}\nNewsletter: ${newsletter ? 'Yes' : 'No'}`
|
|
73
|
+
}
|
|
74
|
+
]
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
else if (result.action === 'decline') {
|
|
78
|
+
return {
|
|
79
|
+
content: [
|
|
80
|
+
{
|
|
81
|
+
type: 'text',
|
|
82
|
+
text: 'Registration cancelled by user.'
|
|
83
|
+
}
|
|
84
|
+
]
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
return {
|
|
89
|
+
content: [
|
|
90
|
+
{
|
|
91
|
+
type: 'text',
|
|
92
|
+
text: 'Registration was cancelled.'
|
|
93
|
+
}
|
|
94
|
+
]
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
catch (error) {
|
|
99
|
+
return {
|
|
100
|
+
content: [
|
|
101
|
+
{
|
|
102
|
+
type: 'text',
|
|
103
|
+
text: `Registration failed: ${error instanceof Error ? error.message : String(error)}`
|
|
104
|
+
}
|
|
105
|
+
],
|
|
106
|
+
isError: true
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
/**
|
|
111
|
+
* Example 2: Multi-step workflow with multiple elicitation requests
|
|
112
|
+
* Demonstrates how to collect information in multiple steps
|
|
113
|
+
*/
|
|
114
|
+
mcpServer.registerTool('create_event', {
|
|
115
|
+
description: 'Create a calendar event by collecting event details',
|
|
116
|
+
inputSchema: {}
|
|
117
|
+
}, async () => {
|
|
118
|
+
try {
|
|
119
|
+
// Step 1: Collect basic event information
|
|
120
|
+
const basicInfo = await mcpServer.server.elicitInput({
|
|
121
|
+
message: 'Step 1: Enter basic event information',
|
|
122
|
+
requestedSchema: {
|
|
123
|
+
type: 'object',
|
|
124
|
+
properties: {
|
|
125
|
+
title: {
|
|
126
|
+
type: 'string',
|
|
127
|
+
title: 'Event Title',
|
|
128
|
+
description: 'Name of the event',
|
|
129
|
+
minLength: 1
|
|
130
|
+
},
|
|
131
|
+
description: {
|
|
132
|
+
type: 'string',
|
|
133
|
+
title: 'Description',
|
|
134
|
+
description: 'Event description (optional)'
|
|
135
|
+
}
|
|
136
|
+
},
|
|
137
|
+
required: ['title']
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
if (basicInfo.action !== 'accept' || !basicInfo.content) {
|
|
141
|
+
return {
|
|
142
|
+
content: [{ type: 'text', text: 'Event creation cancelled.' }]
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
// Step 2: Collect date and time
|
|
146
|
+
const dateTime = await mcpServer.server.elicitInput({
|
|
147
|
+
message: 'Step 2: Enter date and time',
|
|
148
|
+
requestedSchema: {
|
|
149
|
+
type: 'object',
|
|
150
|
+
properties: {
|
|
151
|
+
date: {
|
|
152
|
+
type: 'string',
|
|
153
|
+
title: 'Date',
|
|
154
|
+
description: 'Event date',
|
|
155
|
+
format: 'date'
|
|
156
|
+
},
|
|
157
|
+
startTime: {
|
|
158
|
+
type: 'string',
|
|
159
|
+
title: 'Start Time',
|
|
160
|
+
description: 'Event start time (HH:MM)',
|
|
161
|
+
pattern: '^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$'
|
|
162
|
+
},
|
|
163
|
+
duration: {
|
|
164
|
+
type: 'integer',
|
|
165
|
+
title: 'Duration',
|
|
166
|
+
description: 'Duration in minutes',
|
|
167
|
+
minimum: 15,
|
|
168
|
+
maximum: 480
|
|
169
|
+
}
|
|
170
|
+
},
|
|
171
|
+
required: ['date', 'startTime', 'duration']
|
|
172
|
+
}
|
|
173
|
+
});
|
|
174
|
+
if (dateTime.action !== 'accept' || !dateTime.content) {
|
|
175
|
+
return {
|
|
176
|
+
content: [{ type: 'text', text: 'Event creation cancelled.' }]
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
// Combine all collected information
|
|
180
|
+
const event = {
|
|
181
|
+
...basicInfo.content,
|
|
182
|
+
...dateTime.content
|
|
183
|
+
};
|
|
184
|
+
return {
|
|
185
|
+
content: [
|
|
186
|
+
{
|
|
187
|
+
type: 'text',
|
|
188
|
+
text: `Event created successfully!\n\n${JSON.stringify(event, null, 2)}`
|
|
189
|
+
}
|
|
190
|
+
]
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
catch (error) {
|
|
194
|
+
return {
|
|
195
|
+
content: [
|
|
196
|
+
{
|
|
197
|
+
type: 'text',
|
|
198
|
+
text: `Event creation failed: ${error instanceof Error ? error.message : String(error)}`
|
|
199
|
+
}
|
|
200
|
+
],
|
|
201
|
+
isError: true
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
});
|
|
205
|
+
/**
|
|
206
|
+
* Example 3: Collecting address information
|
|
207
|
+
* Demonstrates validation with patterns and optional fields
|
|
208
|
+
*/
|
|
209
|
+
mcpServer.registerTool('update_shipping_address', {
|
|
210
|
+
description: 'Update shipping address with validation',
|
|
211
|
+
inputSchema: {}
|
|
212
|
+
}, async () => {
|
|
213
|
+
try {
|
|
214
|
+
const result = await mcpServer.server.elicitInput({
|
|
215
|
+
message: 'Please provide your shipping address:',
|
|
216
|
+
requestedSchema: {
|
|
217
|
+
type: 'object',
|
|
218
|
+
properties: {
|
|
219
|
+
name: {
|
|
220
|
+
type: 'string',
|
|
221
|
+
title: 'Full Name',
|
|
222
|
+
description: 'Recipient name',
|
|
223
|
+
minLength: 1
|
|
224
|
+
},
|
|
225
|
+
street: {
|
|
226
|
+
type: 'string',
|
|
227
|
+
title: 'Street Address',
|
|
228
|
+
minLength: 1
|
|
229
|
+
},
|
|
230
|
+
city: {
|
|
231
|
+
type: 'string',
|
|
232
|
+
title: 'City',
|
|
233
|
+
minLength: 1
|
|
234
|
+
},
|
|
235
|
+
state: {
|
|
236
|
+
type: 'string',
|
|
237
|
+
title: 'State/Province',
|
|
238
|
+
minLength: 2,
|
|
239
|
+
maxLength: 2
|
|
240
|
+
},
|
|
241
|
+
zipCode: {
|
|
242
|
+
type: 'string',
|
|
243
|
+
title: 'ZIP/Postal Code',
|
|
244
|
+
description: '5-digit ZIP code',
|
|
245
|
+
pattern: '^[0-9]{5}$'
|
|
246
|
+
},
|
|
247
|
+
phone: {
|
|
248
|
+
type: 'string',
|
|
249
|
+
title: 'Phone Number (optional)',
|
|
250
|
+
description: 'Contact phone number'
|
|
251
|
+
}
|
|
252
|
+
},
|
|
253
|
+
required: ['name', 'street', 'city', 'state', 'zipCode']
|
|
254
|
+
}
|
|
255
|
+
});
|
|
256
|
+
if (result.action === 'accept' && result.content) {
|
|
257
|
+
return {
|
|
258
|
+
content: [
|
|
259
|
+
{
|
|
260
|
+
type: 'text',
|
|
261
|
+
text: `Address updated successfully!\n\n${JSON.stringify(result.content, null, 2)}`
|
|
262
|
+
}
|
|
263
|
+
]
|
|
264
|
+
};
|
|
265
|
+
}
|
|
266
|
+
else if (result.action === 'decline') {
|
|
267
|
+
return {
|
|
268
|
+
content: [{ type: 'text', text: 'Address update cancelled by user.' }]
|
|
269
|
+
};
|
|
270
|
+
}
|
|
271
|
+
else {
|
|
272
|
+
return {
|
|
273
|
+
content: [{ type: 'text', text: 'Address update was cancelled.' }]
|
|
274
|
+
};
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
catch (error) {
|
|
278
|
+
return {
|
|
279
|
+
content: [
|
|
280
|
+
{
|
|
281
|
+
type: 'text',
|
|
282
|
+
text: `Address update failed: ${error instanceof Error ? error.message : String(error)}`
|
|
283
|
+
}
|
|
284
|
+
],
|
|
285
|
+
isError: true
|
|
286
|
+
};
|
|
287
|
+
}
|
|
288
|
+
});
|
|
289
|
+
async function main() {
|
|
290
|
+
const PORT = process.env.PORT ? parseInt(process.env.PORT, 10) : 3000;
|
|
291
|
+
const app = express();
|
|
292
|
+
app.use(express.json());
|
|
293
|
+
// Allow CORS for all domains, expose the Mcp-Session-Id header
|
|
294
|
+
app.use(cors({
|
|
295
|
+
origin: '*',
|
|
296
|
+
exposedHeaders: ['Mcp-Session-Id']
|
|
297
|
+
}));
|
|
298
|
+
// Map to store transports by session ID
|
|
299
|
+
const transports = {};
|
|
300
|
+
// MCP POST endpoint
|
|
301
|
+
const mcpPostHandler = async (req, res) => {
|
|
302
|
+
const sessionId = req.headers['mcp-session-id'];
|
|
303
|
+
if (sessionId) {
|
|
304
|
+
console.log(`Received MCP request for session: ${sessionId}`);
|
|
305
|
+
}
|
|
306
|
+
try {
|
|
307
|
+
let transport;
|
|
308
|
+
if (sessionId && transports[sessionId]) {
|
|
309
|
+
// Reuse existing transport for this session
|
|
310
|
+
transport = transports[sessionId];
|
|
311
|
+
}
|
|
312
|
+
else if (!sessionId && isInitializeRequest(req.body)) {
|
|
313
|
+
// New initialization request - create new transport
|
|
314
|
+
transport = new StreamableHTTPServerTransport({
|
|
315
|
+
sessionIdGenerator: () => randomUUID(),
|
|
316
|
+
onsessioninitialized: sessionId => {
|
|
317
|
+
// Store the transport by session ID when session is initialized
|
|
318
|
+
console.log(`Session initialized with ID: ${sessionId}`);
|
|
319
|
+
transports[sessionId] = transport;
|
|
320
|
+
}
|
|
321
|
+
});
|
|
322
|
+
// Set up onclose handler to clean up transport when closed
|
|
323
|
+
transport.onclose = () => {
|
|
324
|
+
const sid = transport.sessionId;
|
|
325
|
+
if (sid && transports[sid]) {
|
|
326
|
+
console.log(`Transport closed for session ${sid}, removing from transports map`);
|
|
327
|
+
delete transports[sid];
|
|
328
|
+
}
|
|
329
|
+
};
|
|
330
|
+
// Connect the transport to the MCP server BEFORE handling the request
|
|
331
|
+
await mcpServer.connect(transport);
|
|
332
|
+
await transport.handleRequest(req, res, req.body);
|
|
333
|
+
return;
|
|
334
|
+
}
|
|
335
|
+
else {
|
|
336
|
+
// Invalid request - no session ID or not initialization request
|
|
337
|
+
res.status(400).json({
|
|
338
|
+
jsonrpc: '2.0',
|
|
339
|
+
error: {
|
|
340
|
+
code: -32000,
|
|
341
|
+
message: 'Bad Request: No valid session ID provided'
|
|
342
|
+
},
|
|
343
|
+
id: null
|
|
344
|
+
});
|
|
345
|
+
return;
|
|
346
|
+
}
|
|
347
|
+
// Handle the request with existing transport
|
|
348
|
+
await transport.handleRequest(req, res, req.body);
|
|
349
|
+
}
|
|
350
|
+
catch (error) {
|
|
351
|
+
console.error('Error handling MCP request:', error);
|
|
352
|
+
if (!res.headersSent) {
|
|
353
|
+
res.status(500).json({
|
|
354
|
+
jsonrpc: '2.0',
|
|
355
|
+
error: {
|
|
356
|
+
code: -32603,
|
|
357
|
+
message: 'Internal server error'
|
|
358
|
+
},
|
|
359
|
+
id: null
|
|
360
|
+
});
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
};
|
|
364
|
+
app.post('/mcp', mcpPostHandler);
|
|
365
|
+
// Handle GET requests for SSE streams
|
|
366
|
+
const mcpGetHandler = async (req, res) => {
|
|
367
|
+
const sessionId = req.headers['mcp-session-id'];
|
|
368
|
+
if (!sessionId || !transports[sessionId]) {
|
|
369
|
+
res.status(400).send('Invalid or missing session ID');
|
|
370
|
+
return;
|
|
371
|
+
}
|
|
372
|
+
console.log(`Establishing SSE stream for session ${sessionId}`);
|
|
373
|
+
const transport = transports[sessionId];
|
|
374
|
+
await transport.handleRequest(req, res);
|
|
375
|
+
};
|
|
376
|
+
app.get('/mcp', mcpGetHandler);
|
|
377
|
+
// Handle DELETE requests for session termination
|
|
378
|
+
const mcpDeleteHandler = async (req, res) => {
|
|
379
|
+
const sessionId = req.headers['mcp-session-id'];
|
|
380
|
+
if (!sessionId || !transports[sessionId]) {
|
|
381
|
+
res.status(400).send('Invalid or missing session ID');
|
|
382
|
+
return;
|
|
383
|
+
}
|
|
384
|
+
console.log(`Received session termination request for session ${sessionId}`);
|
|
385
|
+
try {
|
|
386
|
+
const transport = transports[sessionId];
|
|
387
|
+
await transport.handleRequest(req, res);
|
|
388
|
+
}
|
|
389
|
+
catch (error) {
|
|
390
|
+
console.error('Error handling session termination:', error);
|
|
391
|
+
if (!res.headersSent) {
|
|
392
|
+
res.status(500).send('Error processing session termination');
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
};
|
|
396
|
+
app.delete('/mcp', mcpDeleteHandler);
|
|
397
|
+
// Start listening
|
|
398
|
+
app.listen(PORT, error => {
|
|
399
|
+
if (error) {
|
|
400
|
+
console.error('Failed to start server:', error);
|
|
401
|
+
process.exit(1);
|
|
402
|
+
}
|
|
403
|
+
console.log(`Elicitation example server is running on http://localhost:${PORT}/mcp`);
|
|
404
|
+
console.log('Available tools:');
|
|
405
|
+
console.log(' - register_user: Collect user registration information');
|
|
406
|
+
console.log(' - create_event: Multi-step event creation');
|
|
407
|
+
console.log(' - update_shipping_address: Collect and validate address');
|
|
408
|
+
console.log('\nConnect your MCP client to this server using the HTTP transport.');
|
|
409
|
+
});
|
|
410
|
+
// Handle server shutdown
|
|
411
|
+
process.on('SIGINT', async () => {
|
|
412
|
+
console.log('Shutting down server...');
|
|
413
|
+
// Close all active transports to properly clean up resources
|
|
414
|
+
for (const sessionId in transports) {
|
|
415
|
+
try {
|
|
416
|
+
console.log(`Closing transport for session ${sessionId}`);
|
|
417
|
+
await transports[sessionId].close();
|
|
418
|
+
delete transports[sessionId];
|
|
419
|
+
}
|
|
420
|
+
catch (error) {
|
|
421
|
+
console.error(`Error closing transport for session ${sessionId}:`, error);
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
console.log('Server shutdown complete');
|
|
425
|
+
process.exit(0);
|
|
426
|
+
});
|
|
427
|
+
}
|
|
428
|
+
main().catch(error => {
|
|
429
|
+
console.error('Server error:', error);
|
|
430
|
+
process.exit(1);
|
|
431
|
+
});
|
|
432
|
+
//# sourceMappingURL=elicitationExample.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"elicitationExample.js","sourceRoot":"","sources":["../../../../src/examples/server/elicitationExample.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ export function metadataHandler(metadata) {
|
|
|
6
6
|
const router = express.Router();
|
|
7
7
|
// Configure CORS to allow any origin, to make accessible to web-based MCP clients
|
|
8
8
|
router.use(cors());
|
|
9
|
-
router.use(allowedMethods(['GET']));
|
|
9
|
+
router.use(allowedMethods(['GET', 'OPTIONS']));
|
|
10
10
|
router.get('/', (req, res) => {
|
|
11
11
|
res.status(200).json(metadata);
|
|
12
12
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../../../../src/server/auth/handlers/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,OAA2B,MAAM,SAAS,CAAC;AAElD,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEjE,MAAM,UAAU,eAAe,CAAC,QAAwD;IACpF,wEAAwE;IACxE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAEhC,kFAAkF;IAClF,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IAEnB,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../../../../src/server/auth/handlers/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,OAA2B,MAAM,SAAS,CAAC;AAElD,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEjE,MAAM,UAAU,eAAe,CAAC,QAAwD;IACpF,wEAAwE;IACxE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAEhC,kFAAkF;IAClF,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IAEnB,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACzB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAClB,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { Protocol, ProtocolOptions, RequestOptions } from '../shared/protocol.js';
|
|
2
|
-
import { ClientCapabilities, CreateMessageRequest, ElicitRequest, ElicitResult, Implementation, ListRootsRequest, LoggingMessageNotification, Notification, Request, ResourceUpdatedNotification, Result, ServerCapabilities, ServerNotification, ServerRequest, ServerResult } from '../types.js';
|
|
1
|
+
import { Protocol, type ProtocolOptions, type RequestOptions } from '../shared/protocol.js';
|
|
2
|
+
import { type ClientCapabilities, type CreateMessageRequest, type ElicitRequest, type ElicitResult, type Implementation, type ListRootsRequest, type LoggingMessageNotification, type Notification, type Request, type ResourceUpdatedNotification, type Result, type ServerCapabilities, type ServerNotification, type ServerRequest, type ServerResult } from '../types.js';
|
|
3
|
+
import type { jsonSchemaValidator } from '../validation/types.js';
|
|
3
4
|
export type ServerOptions = ProtocolOptions & {
|
|
4
5
|
/**
|
|
5
6
|
* Capabilities to advertise as being supported by this server.
|
|
@@ -9,6 +10,36 @@ export type ServerOptions = ProtocolOptions & {
|
|
|
9
10
|
* Optional instructions describing how to use the server and its features.
|
|
10
11
|
*/
|
|
11
12
|
instructions?: string;
|
|
13
|
+
/**
|
|
14
|
+
* JSON Schema validator for elicitation response validation.
|
|
15
|
+
*
|
|
16
|
+
* The validator is used to validate user input returned from elicitation
|
|
17
|
+
* requests against the requested schema.
|
|
18
|
+
*
|
|
19
|
+
* @default AjvJsonSchemaValidator
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```typescript
|
|
23
|
+
* // ajv (default)
|
|
24
|
+
* const server = new Server(
|
|
25
|
+
* { name: 'my-server', version: '1.0.0' },
|
|
26
|
+
* {
|
|
27
|
+
* capabilities: {}
|
|
28
|
+
* jsonSchemaValidator: new AjvJsonSchemaValidator()
|
|
29
|
+
* }
|
|
30
|
+
* );
|
|
31
|
+
*
|
|
32
|
+
* // @cfworker/json-schema
|
|
33
|
+
* const server = new Server(
|
|
34
|
+
* { name: 'my-server', version: '1.0.0' },
|
|
35
|
+
* {
|
|
36
|
+
* capabilities: {},
|
|
37
|
+
* jsonSchemaValidator: new CfWorkerJsonSchemaValidator()
|
|
38
|
+
* }
|
|
39
|
+
* );
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
jsonSchemaValidator?: jsonSchemaValidator;
|
|
12
43
|
};
|
|
13
44
|
/**
|
|
14
45
|
* An MCP server on top of a pluggable transport.
|
|
@@ -41,6 +72,7 @@ export declare class Server<RequestT extends Request = Request, NotificationT ex
|
|
|
41
72
|
private _clientVersion?;
|
|
42
73
|
private _capabilities;
|
|
43
74
|
private _instructions?;
|
|
75
|
+
private _jsonSchemaValidator;
|
|
44
76
|
/**
|
|
45
77
|
* Callback for when initialization has fully completed (i.e., the client has sent an `initialized` notification).
|
|
46
78
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,QAAQ,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/index.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/server/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { mergeCapabilities, Protocol } from '../shared/protocol.js';
|
|
2
|
-
import { CreateMessageResultSchema, ElicitResultSchema, EmptyResultSchema, InitializedNotificationSchema, InitializeRequestSchema, LATEST_PROTOCOL_VERSION, ListRootsResultSchema,
|
|
3
|
-
import
|
|
2
|
+
import { CreateMessageResultSchema, ElicitResultSchema, EmptyResultSchema, ErrorCode, InitializedNotificationSchema, InitializeRequestSchema, LATEST_PROTOCOL_VERSION, ListRootsResultSchema, LoggingLevelSchema, McpError, SetLevelRequestSchema, SUPPORTED_PROTOCOL_VERSIONS } from '../types.js';
|
|
3
|
+
import { AjvJsonSchemaValidator } from '../validation/ajv-provider.js';
|
|
4
4
|
/**
|
|
5
5
|
* An MCP server on top of a pluggable transport.
|
|
6
6
|
*
|
|
@@ -31,7 +31,7 @@ export class Server extends Protocol {
|
|
|
31
31
|
* Initializes this server with the given name and version information.
|
|
32
32
|
*/
|
|
33
33
|
constructor(_serverInfo, options) {
|
|
34
|
-
var _a;
|
|
34
|
+
var _a, _b;
|
|
35
35
|
super(options);
|
|
36
36
|
this._serverInfo = _serverInfo;
|
|
37
37
|
// Map log levels by session id
|
|
@@ -45,6 +45,7 @@ export class Server extends Protocol {
|
|
|
45
45
|
};
|
|
46
46
|
this._capabilities = (_a = options === null || options === void 0 ? void 0 : options.capabilities) !== null && _a !== void 0 ? _a : {};
|
|
47
47
|
this._instructions = options === null || options === void 0 ? void 0 : options.instructions;
|
|
48
|
+
this._jsonSchemaValidator = (_b = options === null || options === void 0 ? void 0 : options.jsonSchemaValidator) !== null && _b !== void 0 ? _b : new AjvJsonSchemaValidator();
|
|
48
49
|
this.setRequestHandler(InitializeRequestSchema, request => this._oninitialize(request));
|
|
49
50
|
this.setNotificationHandler(InitializedNotificationSchema, () => { var _a; return (_a = this.oninitialized) === null || _a === void 0 ? void 0 : _a.call(this); });
|
|
50
51
|
if (this._capabilities.logging) {
|
|
@@ -198,20 +199,19 @@ export class Server extends Protocol {
|
|
|
198
199
|
async elicitInput(params, options) {
|
|
199
200
|
const result = await this.request({ method: 'elicitation/create', params }, ElicitResultSchema, options);
|
|
200
201
|
// Validate the response content against the requested schema if action is "accept"
|
|
201
|
-
if (result.action === 'accept' && result.content) {
|
|
202
|
+
if (result.action === 'accept' && result.content && params.requestedSchema) {
|
|
202
203
|
try {
|
|
203
|
-
const
|
|
204
|
-
const
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
throw new McpError(ErrorCode.InvalidParams, `Elicitation response content does not match requested schema: ${ajv.errorsText(validate.errors)}`);
|
|
204
|
+
const validator = this._jsonSchemaValidator.getValidator(params.requestedSchema);
|
|
205
|
+
const validationResult = validator(result.content);
|
|
206
|
+
if (!validationResult.valid) {
|
|
207
|
+
throw new McpError(ErrorCode.InvalidParams, `Elicitation response content does not match requested schema: ${validationResult.errorMessage}`);
|
|
208
208
|
}
|
|
209
209
|
}
|
|
210
210
|
catch (error) {
|
|
211
211
|
if (error instanceof McpError) {
|
|
212
212
|
throw error;
|
|
213
213
|
}
|
|
214
|
-
throw new McpError(ErrorCode.InternalError, `Error validating elicitation response: ${error}`);
|
|
214
|
+
throw new McpError(ErrorCode.InternalError, `Error validating elicitation response: ${error instanceof Error ? error.message : String(error)}`);
|
|
215
215
|
}
|
|
216
216
|
}
|
|
217
217
|
return result;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,QAAQ,
|
|
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;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;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,wBAAwB;gBACzB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;oBAC/B,MAAM,IAAI,KAAK,CAAC,kDAAkD,MAAM,GAAG,CAAC,CAAC;gBACjF,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"}
|
package/dist/esm/server/mcp.d.ts
CHANGED
|
@@ -31,6 +31,13 @@ export declare class McpServer {
|
|
|
31
31
|
close(): Promise<void>;
|
|
32
32
|
private _toolHandlersInitialized;
|
|
33
33
|
private setToolRequestHandlers;
|
|
34
|
+
/**
|
|
35
|
+
* Creates a tool error result.
|
|
36
|
+
*
|
|
37
|
+
* @param errorMessage - The error message.
|
|
38
|
+
* @returns The tool error result.
|
|
39
|
+
*/
|
|
40
|
+
private createToolError;
|
|
34
41
|
private _completionHandlerInitialized;
|
|
35
42
|
private setCompletionRequestHandler;
|
|
36
43
|
private handlePromptCompletion;
|