@modelcontextprotocol/sdk 1.8.0 → 1.10.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 +339 -38
- package/dist/cjs/client/auth.d.ts +2 -1
- package/dist/cjs/client/auth.d.ts.map +1 -1
- package/dist/cjs/client/auth.js +3 -1
- package/dist/cjs/client/auth.js.map +1 -1
- package/dist/cjs/client/index.d.ts +49 -1
- package/dist/cjs/client/index.d.ts.map +1 -1
- package/dist/cjs/client/index.js +9 -4
- package/dist/cjs/client/index.js.map +1 -1
- package/dist/cjs/client/streamableHttp.d.ts +124 -0
- package/dist/cjs/client/streamableHttp.d.ts.map +1 -0
- package/dist/cjs/client/streamableHttp.js +353 -0
- package/dist/cjs/client/streamableHttp.js.map +1 -0
- package/dist/cjs/examples/client/simpleStreamableHttp.d.ts +2 -0
- package/dist/cjs/examples/client/simpleStreamableHttp.d.ts.map +1 -0
- package/dist/cjs/examples/client/simpleStreamableHttp.js +448 -0
- package/dist/cjs/examples/client/simpleStreamableHttp.js.map +1 -0
- package/dist/cjs/examples/client/streamableHttpWithSseFallbackClient.d.ts +2 -0
- package/dist/cjs/examples/client/streamableHttpWithSseFallbackClient.d.ts.map +1 -0
- package/dist/cjs/examples/client/streamableHttpWithSseFallbackClient.js +168 -0
- package/dist/cjs/examples/client/streamableHttpWithSseFallbackClient.js.map +1 -0
- package/dist/cjs/examples/server/jsonResponseStreamableHttp.d.ts +2 -0
- package/dist/cjs/examples/server/jsonResponseStreamableHttp.d.ts.map +1 -0
- package/dist/cjs/examples/server/jsonResponseStreamableHttp.js +139 -0
- package/dist/cjs/examples/server/jsonResponseStreamableHttp.js.map +1 -0
- package/dist/cjs/examples/server/simpleSseServer.d.ts +2 -0
- package/dist/cjs/examples/server/simpleSseServer.d.ts.map +1 -0
- package/dist/cjs/examples/server/simpleSseServer.js +148 -0
- package/dist/cjs/examples/server/simpleSseServer.js.map +1 -0
- package/dist/cjs/examples/server/simpleStreamableHttp.d.ts +2 -0
- package/dist/cjs/examples/server/simpleStreamableHttp.d.ts.map +1 -0
- package/dist/cjs/examples/server/simpleStreamableHttp.js +250 -0
- package/dist/cjs/examples/server/simpleStreamableHttp.js.map +1 -0
- package/dist/cjs/examples/server/sseAndStreamableHttpCompatibleServer.d.ts +2 -0
- package/dist/cjs/examples/server/sseAndStreamableHttpCompatibleServer.d.ts.map +1 -0
- package/dist/cjs/examples/server/sseAndStreamableHttpCompatibleServer.js +229 -0
- package/dist/cjs/examples/server/sseAndStreamableHttpCompatibleServer.js.map +1 -0
- package/dist/cjs/examples/server/standaloneSseWithGetStreamableHttp.d.ts +2 -0
- package/dist/cjs/examples/server/standaloneSseWithGetStreamableHttp.d.ts.map +1 -0
- package/dist/cjs/examples/server/standaloneSseWithGetStreamableHttp.js +112 -0
- package/dist/cjs/examples/server/standaloneSseWithGetStreamableHttp.js.map +1 -0
- package/dist/cjs/examples/shared/inMemoryEventStore.d.ts +31 -0
- package/dist/cjs/examples/shared/inMemoryEventStore.d.ts.map +1 -0
- package/dist/cjs/examples/shared/inMemoryEventStore.js +69 -0
- package/dist/cjs/examples/shared/inMemoryEventStore.js.map +1 -0
- package/dist/cjs/inMemory.d.ts +13 -3
- package/dist/cjs/inMemory.d.ts.map +1 -1
- package/dist/cjs/inMemory.js +9 -7
- package/dist/cjs/inMemory.js.map +1 -1
- package/dist/cjs/server/auth/handlers/token.d.ts.map +1 -1
- package/dist/cjs/server/auth/handlers/token.js +10 -5
- package/dist/cjs/server/auth/handlers/token.js.map +1 -1
- package/dist/cjs/server/auth/provider.d.ts +9 -1
- package/dist/cjs/server/auth/provider.d.ts.map +1 -1
- package/dist/cjs/server/auth/providers/proxyProvider.d.ts +43 -0
- package/dist/cjs/server/auth/providers/proxyProvider.d.ts.map +1 -0
- package/dist/cjs/server/auth/providers/proxyProvider.js +145 -0
- package/dist/cjs/server/auth/providers/proxyProvider.js.map +1 -0
- package/dist/cjs/server/auth/router.d.ts +6 -0
- package/dist/cjs/server/auth/router.d.ts.map +1 -1
- package/dist/cjs/server/auth/router.js +5 -4
- package/dist/cjs/server/auth/router.js.map +1 -1
- package/dist/cjs/server/auth/types.d.ts +5 -0
- package/dist/cjs/server/auth/types.d.ts.map +1 -1
- package/dist/cjs/server/index.d.ts +12 -0
- package/dist/cjs/server/index.d.ts.map +1 -1
- package/dist/cjs/server/mcp.d.ts +100 -19
- package/dist/cjs/server/mcp.d.ts.map +1 -1
- package/dist/cjs/server/mcp.js +154 -12
- package/dist/cjs/server/mcp.js.map +1 -1
- package/dist/cjs/server/sse.d.ts +10 -3
- package/dist/cjs/server/sse.d.ts.map +1 -1
- package/dist/cjs/server/sse.js +14 -5
- package/dist/cjs/server/sse.js.map +1 -1
- package/dist/cjs/server/streamableHttp.d.ts +146 -0
- package/dist/cjs/server/streamableHttp.d.ts.map +1 -0
- package/dist/cjs/server/streamableHttp.js +538 -0
- package/dist/cjs/server/streamableHttp.js.map +1 -0
- package/dist/cjs/shared/protocol.d.ts +31 -5
- package/dist/cjs/shared/protocol.d.ts.map +1 -1
- package/dist/cjs/shared/protocol.js +29 -19
- package/dist/cjs/shared/protocol.js.map +1 -1
- package/dist/cjs/shared/stdio.js +1 -1
- package/dist/cjs/shared/stdio.js.map +1 -1
- package/dist/cjs/shared/transport.d.ts +32 -3
- package/dist/cjs/shared/transport.d.ts.map +1 -1
- package/dist/cjs/shared/uriTemplate.d.ts +1 -0
- package/dist/cjs/shared/uriTemplate.d.ts.map +1 -1
- package/dist/cjs/shared/uriTemplate.js +3 -0
- package/dist/cjs/shared/uriTemplate.js.map +1 -1
- package/dist/cjs/types.d.ts +1990 -35
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/cjs/types.js +38 -4
- package/dist/cjs/types.js.map +1 -1
- package/dist/esm/client/auth.d.ts +2 -1
- package/dist/esm/client/auth.d.ts.map +1 -1
- package/dist/esm/client/auth.js +3 -1
- package/dist/esm/client/auth.js.map +1 -1
- package/dist/esm/client/index.d.ts +49 -1
- package/dist/esm/client/index.d.ts.map +1 -1
- package/dist/esm/client/index.js +9 -4
- package/dist/esm/client/index.js.map +1 -1
- package/dist/esm/client/streamableHttp.d.ts +124 -0
- package/dist/esm/client/streamableHttp.d.ts.map +1 -0
- package/dist/esm/client/streamableHttp.js +348 -0
- package/dist/esm/client/streamableHttp.js.map +1 -0
- package/dist/esm/examples/client/simpleStreamableHttp.d.ts +2 -0
- package/dist/esm/examples/client/simpleStreamableHttp.d.ts.map +1 -0
- package/dist/esm/examples/client/simpleStreamableHttp.js +446 -0
- package/dist/esm/examples/client/simpleStreamableHttp.js.map +1 -0
- package/dist/esm/examples/client/streamableHttpWithSseFallbackClient.d.ts +2 -0
- package/dist/esm/examples/client/streamableHttpWithSseFallbackClient.d.ts.map +1 -0
- package/dist/esm/examples/client/streamableHttpWithSseFallbackClient.js +166 -0
- package/dist/esm/examples/client/streamableHttpWithSseFallbackClient.js.map +1 -0
- package/dist/esm/examples/server/jsonResponseStreamableHttp.d.ts +2 -0
- package/dist/esm/examples/server/jsonResponseStreamableHttp.d.ts.map +1 -0
- package/dist/esm/examples/server/jsonResponseStreamableHttp.js +134 -0
- package/dist/esm/examples/server/jsonResponseStreamableHttp.js.map +1 -0
- package/dist/esm/examples/server/simpleSseServer.d.ts +2 -0
- package/dist/esm/examples/server/simpleSseServer.d.ts.map +1 -0
- package/dist/esm/examples/server/simpleSseServer.js +143 -0
- package/dist/esm/examples/server/simpleSseServer.js.map +1 -0
- package/dist/esm/examples/server/simpleStreamableHttp.d.ts +2 -0
- package/dist/esm/examples/server/simpleStreamableHttp.d.ts.map +1 -0
- package/dist/esm/examples/server/simpleStreamableHttp.js +245 -0
- package/dist/esm/examples/server/simpleStreamableHttp.js.map +1 -0
- package/dist/esm/examples/server/sseAndStreamableHttpCompatibleServer.d.ts +2 -0
- package/dist/esm/examples/server/sseAndStreamableHttpCompatibleServer.d.ts.map +1 -0
- package/dist/esm/examples/server/sseAndStreamableHttpCompatibleServer.js +224 -0
- package/dist/esm/examples/server/sseAndStreamableHttpCompatibleServer.js.map +1 -0
- package/dist/esm/examples/server/standaloneSseWithGetStreamableHttp.d.ts +2 -0
- package/dist/esm/examples/server/standaloneSseWithGetStreamableHttp.d.ts.map +1 -0
- package/dist/esm/examples/server/standaloneSseWithGetStreamableHttp.js +107 -0
- package/dist/esm/examples/server/standaloneSseWithGetStreamableHttp.js.map +1 -0
- package/dist/esm/examples/shared/inMemoryEventStore.d.ts +31 -0
- package/dist/esm/examples/shared/inMemoryEventStore.d.ts.map +1 -0
- package/dist/esm/examples/shared/inMemoryEventStore.js +65 -0
- package/dist/esm/examples/shared/inMemoryEventStore.js.map +1 -0
- package/dist/esm/inMemory.d.ts +13 -3
- package/dist/esm/inMemory.d.ts.map +1 -1
- package/dist/esm/inMemory.js +9 -7
- package/dist/esm/inMemory.js.map +1 -1
- package/dist/esm/server/auth/handlers/token.d.ts.map +1 -1
- package/dist/esm/server/auth/handlers/token.js +10 -5
- package/dist/esm/server/auth/handlers/token.js.map +1 -1
- package/dist/esm/server/auth/provider.d.ts +9 -1
- package/dist/esm/server/auth/provider.d.ts.map +1 -1
- package/dist/esm/server/auth/providers/proxyProvider.d.ts +43 -0
- package/dist/esm/server/auth/providers/proxyProvider.d.ts.map +1 -0
- package/dist/esm/server/auth/providers/proxyProvider.js +141 -0
- package/dist/esm/server/auth/providers/proxyProvider.js.map +1 -0
- package/dist/esm/server/auth/router.d.ts +6 -0
- package/dist/esm/server/auth/router.d.ts.map +1 -1
- package/dist/esm/server/auth/router.js +5 -4
- package/dist/esm/server/auth/router.js.map +1 -1
- package/dist/esm/server/auth/types.d.ts +5 -0
- package/dist/esm/server/auth/types.d.ts.map +1 -1
- package/dist/esm/server/index.d.ts +12 -0
- package/dist/esm/server/index.d.ts.map +1 -1
- package/dist/esm/server/mcp.d.ts +100 -19
- package/dist/esm/server/mcp.d.ts.map +1 -1
- package/dist/esm/server/mcp.js +154 -12
- package/dist/esm/server/mcp.js.map +1 -1
- package/dist/esm/server/sse.d.ts +10 -3
- package/dist/esm/server/sse.d.ts.map +1 -1
- package/dist/esm/server/sse.js +14 -5
- package/dist/esm/server/sse.js.map +1 -1
- package/dist/esm/server/streamableHttp.d.ts +146 -0
- package/dist/esm/server/streamableHttp.d.ts.map +1 -0
- package/dist/esm/server/streamableHttp.js +531 -0
- package/dist/esm/server/streamableHttp.js.map +1 -0
- package/dist/esm/shared/protocol.d.ts +31 -5
- package/dist/esm/shared/protocol.d.ts.map +1 -1
- package/dist/esm/shared/protocol.js +30 -20
- package/dist/esm/shared/protocol.js.map +1 -1
- package/dist/esm/shared/stdio.js +1 -1
- package/dist/esm/shared/stdio.js.map +1 -1
- package/dist/esm/shared/transport.d.ts +32 -3
- package/dist/esm/shared/transport.d.ts.map +1 -1
- package/dist/esm/shared/uriTemplate.d.ts +1 -0
- package/dist/esm/shared/uriTemplate.d.ts.map +1 -1
- package/dist/esm/shared/uriTemplate.js +3 -0
- package/dist/esm/shared/uriTemplate.js.map +1 -1
- package/dist/esm/types.d.ts +1990 -35
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/types.js +30 -2
- package/dist/esm/types.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
- [Prompts](#prompts)
|
|
13
13
|
- [Running Your Server](#running-your-server)
|
|
14
14
|
- [stdio](#stdio)
|
|
15
|
-
- [HTTP
|
|
15
|
+
- [Streamable HTTP](#streamable-http)
|
|
16
16
|
- [Testing and Debugging](#testing-and-debugging)
|
|
17
17
|
- [Examples](#examples)
|
|
18
18
|
- [Echo Server](#echo-server)
|
|
@@ -21,6 +21,8 @@
|
|
|
21
21
|
- [Low-Level Server](#low-level-server)
|
|
22
22
|
- [Writing MCP Clients](#writing-mcp-clients)
|
|
23
23
|
- [Server Capabilities](#server-capabilities)
|
|
24
|
+
- [Proxy OAuth Server](#proxy-authorization-requests-upstream)
|
|
25
|
+
- [Backwards Compatibility](#backwards-compatibility)
|
|
24
26
|
|
|
25
27
|
## Overview
|
|
26
28
|
|
|
@@ -28,7 +30,7 @@ The Model Context Protocol allows applications to provide context for LLMs in a
|
|
|
28
30
|
|
|
29
31
|
- Build MCP clients that can connect to any MCP server
|
|
30
32
|
- Create MCP servers that expose resources, prompts and tools
|
|
31
|
-
- Use standard transports like stdio and
|
|
33
|
+
- Use standard transports like stdio and Streamable HTTP
|
|
32
34
|
- Handle all MCP protocol messages and lifecycle events
|
|
33
35
|
|
|
34
36
|
## Installation
|
|
@@ -206,50 +208,143 @@ const transport = new StdioServerTransport();
|
|
|
206
208
|
await server.connect(transport);
|
|
207
209
|
```
|
|
208
210
|
|
|
209
|
-
### HTTP
|
|
211
|
+
### Streamable HTTP
|
|
210
212
|
|
|
211
|
-
For remote servers,
|
|
213
|
+
For remote servers, set up a Streamable HTTP transport that handles both client requests and server-to-client notifications.
|
|
214
|
+
|
|
215
|
+
#### With Session Management
|
|
216
|
+
|
|
217
|
+
In some cases, servers need to be stateful. This is achieved by [session management](https://modelcontextprotocol.io/specification/2025-03-26/basic/transports#session-management).
|
|
212
218
|
|
|
213
219
|
```typescript
|
|
214
|
-
import express
|
|
220
|
+
import express from "express";
|
|
221
|
+
import { randomUUID } from "node:crypto";
|
|
215
222
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
216
|
-
import {
|
|
223
|
+
import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
|
|
224
|
+
import { InMemoryEventStore } from "@modelcontextprotocol/sdk/inMemory.js";
|
|
225
|
+
|
|
226
|
+
|
|
227
|
+
const app = express();
|
|
228
|
+
app.use(express.json());
|
|
229
|
+
|
|
230
|
+
// Map to store transports by session ID
|
|
231
|
+
const transports: { [sessionId: string]: StreamableHTTPServerTransport } = {};
|
|
232
|
+
|
|
233
|
+
// Handle POST requests for client-to-server communication
|
|
234
|
+
app.post('/mcp', async (req, res) => {
|
|
235
|
+
// Check for existing session ID
|
|
236
|
+
const sessionId = req.headers['mcp-session-id'] as string | undefined;
|
|
237
|
+
let transport: StreamableHTTPServerTransport;
|
|
238
|
+
|
|
239
|
+
if (sessionId && transports[sessionId]) {
|
|
240
|
+
// Reuse existing transport
|
|
241
|
+
transport = transports[sessionId];
|
|
242
|
+
} else if (!sessionId && isInitializeRequest(req.body)) {
|
|
243
|
+
// New initialization request
|
|
244
|
+
const eventStore = new InMemoryEventStore();
|
|
245
|
+
transport = new StreamableHTTPServerTransport({
|
|
246
|
+
sessionIdGenerator: () => randomUUID(),
|
|
247
|
+
eventStore, // Enable resumability
|
|
248
|
+
onsessioninitialized: (sessionId) => {
|
|
249
|
+
// Store the transport by session ID
|
|
250
|
+
transports[sessionId] = transport;
|
|
251
|
+
}
|
|
252
|
+
});
|
|
253
|
+
|
|
254
|
+
// Clean up transport when closed
|
|
255
|
+
transport.onclose = () => {
|
|
256
|
+
if (transport.sessionId) {
|
|
257
|
+
delete transports[transport.sessionId];
|
|
258
|
+
}
|
|
259
|
+
};
|
|
260
|
+
const server = new McpServer({
|
|
261
|
+
name: "example-server",
|
|
262
|
+
version: "1.0.0"
|
|
263
|
+
});
|
|
264
|
+
|
|
265
|
+
// ... set up server resources, tools, and prompts ...
|
|
266
|
+
|
|
267
|
+
// Connect to the MCP server
|
|
268
|
+
await server.connect(transport);
|
|
269
|
+
} else {
|
|
270
|
+
// Invalid request
|
|
271
|
+
res.status(400).json({
|
|
272
|
+
jsonrpc: '2.0',
|
|
273
|
+
error: {
|
|
274
|
+
code: -32000,
|
|
275
|
+
message: 'Bad Request: No valid session ID provided',
|
|
276
|
+
},
|
|
277
|
+
id: null,
|
|
278
|
+
});
|
|
279
|
+
return;
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
// Handle the request
|
|
283
|
+
await transport.handleRequest(req, res, req.body);
|
|
284
|
+
});
|
|
285
|
+
|
|
286
|
+
// Reusable handler for GET and DELETE requests
|
|
287
|
+
const handleSessionRequest = async (req: express.Request, res: express.Response) => {
|
|
288
|
+
const sessionId = req.headers['mcp-session-id'] as string | undefined;
|
|
289
|
+
if (!sessionId || !transports[sessionId]) {
|
|
290
|
+
res.status(400).send('Invalid or missing session ID');
|
|
291
|
+
return;
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
const transport = transports[sessionId];
|
|
295
|
+
await transport.handleRequest(req, res);
|
|
296
|
+
};
|
|
297
|
+
|
|
298
|
+
// Handle GET requests for server-to-client notifications via SSE
|
|
299
|
+
app.get('/mcp', handleSessionRequest);
|
|
300
|
+
|
|
301
|
+
// Handle DELETE requests for session termination
|
|
302
|
+
app.delete('/mcp', handleSessionRequest);
|
|
303
|
+
|
|
304
|
+
app.listen(3000);
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
#### Without Session Management (Stateless)
|
|
308
|
+
|
|
309
|
+
For simpler use cases where session management isn't needed:
|
|
310
|
+
|
|
311
|
+
```typescript
|
|
312
|
+
import express from "express";
|
|
313
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
314
|
+
import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
|
|
217
315
|
|
|
218
316
|
const server = new McpServer({
|
|
219
|
-
name: "
|
|
317
|
+
name: "stateless-server",
|
|
220
318
|
version: "1.0.0"
|
|
221
319
|
});
|
|
222
320
|
|
|
223
321
|
// ... set up server resources, tools, and prompts ...
|
|
224
322
|
|
|
225
323
|
const app = express();
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
//
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
delete transports[transport.sessionId];
|
|
324
|
+
app.use(express.json());
|
|
325
|
+
|
|
326
|
+
// Handle all MCP requests (GET, POST, DELETE) at a single endpoint
|
|
327
|
+
app.all('/mcp', async (req, res) => {
|
|
328
|
+
// Disable session tracking by setting sessionIdGenerator to undefined
|
|
329
|
+
const transport = new StreamableHTTPServerTransport({
|
|
330
|
+
sessionIdGenerator: undefined,
|
|
331
|
+
req,
|
|
332
|
+
res
|
|
236
333
|
});
|
|
334
|
+
|
|
335
|
+
// Connect to server and handle the request
|
|
237
336
|
await server.connect(transport);
|
|
337
|
+
await transport.handleRequest(req, res);
|
|
238
338
|
});
|
|
239
339
|
|
|
240
|
-
app.
|
|
241
|
-
const sessionId = req.query.sessionId as string;
|
|
242
|
-
const transport = transports[sessionId];
|
|
243
|
-
if (transport) {
|
|
244
|
-
await transport.handlePostMessage(req, res);
|
|
245
|
-
} else {
|
|
246
|
-
res.status(400).send('No transport found for sessionId');
|
|
247
|
-
}
|
|
248
|
-
});
|
|
249
|
-
|
|
250
|
-
app.listen(3001);
|
|
340
|
+
app.listen(3000);
|
|
251
341
|
```
|
|
252
342
|
|
|
343
|
+
This stateless approach is useful for:
|
|
344
|
+
- Simple API wrappers
|
|
345
|
+
- RESTful scenarios where each request is independent
|
|
346
|
+
- Horizontally scaled deployments without shared session state
|
|
347
|
+
|
|
253
348
|
### Testing and Debugging
|
|
254
349
|
|
|
255
350
|
To test your server, you can use the [MCP Inspector](https://github.com/modelcontextprotocol/inspector). See its README for more information.
|
|
@@ -379,6 +474,68 @@ server.tool(
|
|
|
379
474
|
|
|
380
475
|
## Advanced Usage
|
|
381
476
|
|
|
477
|
+
### Dynamic Servers
|
|
478
|
+
|
|
479
|
+
If you want to offer an initial set of tools/prompts/resources, but later add additional ones based on user action or external state change, you can add/update/remove them _after_ the Server is connected. This will automatically emit the corresponding `listChanged` notificaions:
|
|
480
|
+
|
|
481
|
+
```ts
|
|
482
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
483
|
+
import { z } from "zod";
|
|
484
|
+
|
|
485
|
+
const server = new McpServer({
|
|
486
|
+
name: "Dynamic Example",
|
|
487
|
+
version: "1.0.0"
|
|
488
|
+
});
|
|
489
|
+
|
|
490
|
+
const listMessageTool = server.tool(
|
|
491
|
+
"listMessages",
|
|
492
|
+
{ channel: z.string() },
|
|
493
|
+
async ({ channel }) => ({
|
|
494
|
+
content: [{ type: "text", text: await listMessages(channel) }]
|
|
495
|
+
})
|
|
496
|
+
);
|
|
497
|
+
|
|
498
|
+
const putMessageTool = server.tool(
|
|
499
|
+
"putMessage",
|
|
500
|
+
{ channel: z.string(), message: z.string() },
|
|
501
|
+
async ({ channel, message }) => ({
|
|
502
|
+
content: [{ type: "text", text: await putMessage(channel, string) }]
|
|
503
|
+
})
|
|
504
|
+
);
|
|
505
|
+
// Until we upgrade auth, `putMessage` is disabled (won't show up in listTools)
|
|
506
|
+
putMessageTool.disable()
|
|
507
|
+
|
|
508
|
+
const upgradeAuthTool = server.tool(
|
|
509
|
+
"upgradeAuth",
|
|
510
|
+
{ permission: z.enum(["write', vadmin"])},
|
|
511
|
+
// Any mutations here will automatically emit `listChanged` notifications
|
|
512
|
+
async ({ permission }) => {
|
|
513
|
+
const { ok, err, previous } = await upgradeAuthAndStoreToken(permission)
|
|
514
|
+
if (!ok) return {content: [{ type: "text", text: `Error: ${err}` }]}
|
|
515
|
+
|
|
516
|
+
// If we previously had read-only access, 'putMessage' is now available
|
|
517
|
+
if (previous === "read") {
|
|
518
|
+
putMessageTool.enable()
|
|
519
|
+
}
|
|
520
|
+
|
|
521
|
+
if (permission === 'write') {
|
|
522
|
+
// If we've just upgraded to 'write' permissions, we can still call 'upgradeAuth'
|
|
523
|
+
// but can only upgrade to 'admin'.
|
|
524
|
+
upgradeAuthTool.update({
|
|
525
|
+
paramSchema: { permission: z.enum(["admin"]) }, // change validation rules
|
|
526
|
+
})
|
|
527
|
+
} else {
|
|
528
|
+
// If we're now an admin, we no longer have anywhere to upgrade to, so fully remove that tool
|
|
529
|
+
upgradeAuthTool.remove()
|
|
530
|
+
}
|
|
531
|
+
}
|
|
532
|
+
)
|
|
533
|
+
|
|
534
|
+
// Connect as normal
|
|
535
|
+
const transport = new StdioServerTransport();
|
|
536
|
+
await server.connect(transport);
|
|
537
|
+
```
|
|
538
|
+
|
|
382
539
|
### Low-Level Server
|
|
383
540
|
|
|
384
541
|
For more control, you can use the low-level Server class directly:
|
|
@@ -454,13 +611,6 @@ const client = new Client(
|
|
|
454
611
|
{
|
|
455
612
|
name: "example-client",
|
|
456
613
|
version: "1.0.0"
|
|
457
|
-
},
|
|
458
|
-
{
|
|
459
|
-
capabilities: {
|
|
460
|
-
prompts: {},
|
|
461
|
-
resources: {},
|
|
462
|
-
tools: {}
|
|
463
|
-
}
|
|
464
614
|
}
|
|
465
615
|
);
|
|
466
616
|
|
|
@@ -470,15 +620,20 @@ await client.connect(transport);
|
|
|
470
620
|
const prompts = await client.listPrompts();
|
|
471
621
|
|
|
472
622
|
// Get a prompt
|
|
473
|
-
const prompt = await client.getPrompt(
|
|
474
|
-
|
|
623
|
+
const prompt = await client.getPrompt({
|
|
624
|
+
name: "example-prompt",
|
|
625
|
+
arguments: {
|
|
626
|
+
arg1: "value"
|
|
627
|
+
}
|
|
475
628
|
});
|
|
476
629
|
|
|
477
630
|
// List resources
|
|
478
631
|
const resources = await client.listResources();
|
|
479
632
|
|
|
480
633
|
// Read a resource
|
|
481
|
-
const resource = await client.readResource(
|
|
634
|
+
const resource = await client.readResource({
|
|
635
|
+
uri: "file:///example.txt"
|
|
636
|
+
});
|
|
482
637
|
|
|
483
638
|
// Call a tool
|
|
484
639
|
const result = await client.callTool({
|
|
@@ -489,6 +644,152 @@ const result = await client.callTool({
|
|
|
489
644
|
});
|
|
490
645
|
```
|
|
491
646
|
|
|
647
|
+
### Proxy Authorization Requests Upstream
|
|
648
|
+
|
|
649
|
+
You can proxy OAuth requests to an external authorization provider:
|
|
650
|
+
|
|
651
|
+
```typescript
|
|
652
|
+
import express from 'express';
|
|
653
|
+
import { ProxyOAuthServerProvider, mcpAuthRouter } from '@modelcontextprotocol/sdk';
|
|
654
|
+
|
|
655
|
+
const app = express();
|
|
656
|
+
|
|
657
|
+
const proxyProvider = new ProxyOAuthServerProvider({
|
|
658
|
+
endpoints: {
|
|
659
|
+
authorizationUrl: "https://auth.external.com/oauth2/v1/authorize",
|
|
660
|
+
tokenUrl: "https://auth.external.com/oauth2/v1/token",
|
|
661
|
+
revocationUrl: "https://auth.external.com/oauth2/v1/revoke",
|
|
662
|
+
},
|
|
663
|
+
verifyAccessToken: async (token) => {
|
|
664
|
+
return {
|
|
665
|
+
token,
|
|
666
|
+
clientId: "123",
|
|
667
|
+
scopes: ["openid", "email", "profile"],
|
|
668
|
+
}
|
|
669
|
+
},
|
|
670
|
+
getClient: async (client_id) => {
|
|
671
|
+
return {
|
|
672
|
+
client_id,
|
|
673
|
+
redirect_uris: ["http://localhost:3000/callback"],
|
|
674
|
+
}
|
|
675
|
+
}
|
|
676
|
+
})
|
|
677
|
+
|
|
678
|
+
app.use(mcpAuthRouter({
|
|
679
|
+
provider: proxyProvider,
|
|
680
|
+
issuerUrl: new URL("http://auth.external.com"),
|
|
681
|
+
baseUrl: new URL("http://mcp.example.com"),
|
|
682
|
+
serviceDocumentationUrl: new URL("https://docs.example.com/"),
|
|
683
|
+
}))
|
|
684
|
+
```
|
|
685
|
+
|
|
686
|
+
This setup allows you to:
|
|
687
|
+
- Forward OAuth requests to an external provider
|
|
688
|
+
- Add custom token validation logic
|
|
689
|
+
- Manage client registrations
|
|
690
|
+
- Provide custom documentation URLs
|
|
691
|
+
- Maintain control over the OAuth flow while delegating to an external provider
|
|
692
|
+
|
|
693
|
+
### Backwards Compatibility
|
|
694
|
+
|
|
695
|
+
Clients and servers with StreamableHttp tranport can maintain [backwards compatibility](https://modelcontextprotocol.io/specification/2025-03-26/basic/transports#backwards-compatibility) with the deprecated HTTP+SSE transport (from protocol version 2024-11-05) as follows
|
|
696
|
+
|
|
697
|
+
#### Client-Side Compatibility
|
|
698
|
+
|
|
699
|
+
For clients that need to work with both Streamable HTTP and older SSE servers:
|
|
700
|
+
|
|
701
|
+
```typescript
|
|
702
|
+
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
|
|
703
|
+
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
|
|
704
|
+
import { SSEClientTransport } from "@modelcontextprotocol/sdk/client/sse.js";
|
|
705
|
+
let client: Client|undefined = undefined
|
|
706
|
+
const baseUrl = new URL(url);
|
|
707
|
+
try {
|
|
708
|
+
client = new Client({
|
|
709
|
+
name: 'streamable-http-client',
|
|
710
|
+
version: '1.0.0'
|
|
711
|
+
});
|
|
712
|
+
const transport = new StreamableHTTPClientTransport(
|
|
713
|
+
new URL(baseUrl)
|
|
714
|
+
);
|
|
715
|
+
await client.connect(transport);
|
|
716
|
+
console.log("Connected using Streamable HTTP transport");
|
|
717
|
+
} catch (error) {
|
|
718
|
+
// If that fails with a 4xx error, try the older SSE transport
|
|
719
|
+
console.log("Streamable HTTP connection failed, falling back to SSE transport");
|
|
720
|
+
client = new Client({
|
|
721
|
+
name: 'sse-client',
|
|
722
|
+
version: '1.0.0'
|
|
723
|
+
});
|
|
724
|
+
const sseTransport = new SSEClientTransport(baseUrl);
|
|
725
|
+
await client.connect(sseTransport);
|
|
726
|
+
console.log("Connected using SSE transport");
|
|
727
|
+
}
|
|
728
|
+
```
|
|
729
|
+
|
|
730
|
+
#### Server-Side Compatibility
|
|
731
|
+
|
|
732
|
+
For servers that need to support both Streamable HTTP and older clients:
|
|
733
|
+
|
|
734
|
+
```typescript
|
|
735
|
+
import express from "express";
|
|
736
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
737
|
+
import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
|
|
738
|
+
import { SSEServerTransport } from "@modelcontextprotocol/sdk/server/sse.js";
|
|
739
|
+
import { InMemoryEventStore } from "@modelcontextprotocol/sdk/inMemory.js";
|
|
740
|
+
|
|
741
|
+
const server = new McpServer({
|
|
742
|
+
name: "backwards-compatible-server",
|
|
743
|
+
version: "1.0.0"
|
|
744
|
+
});
|
|
745
|
+
|
|
746
|
+
// ... set up server resources, tools, and prompts ...
|
|
747
|
+
|
|
748
|
+
const app = express();
|
|
749
|
+
app.use(express.json());
|
|
750
|
+
|
|
751
|
+
// Store transports for each session type
|
|
752
|
+
const transports = {
|
|
753
|
+
streamable: {} as Record<string, StreamableHTTPServerTransport>,
|
|
754
|
+
sse: {} as Record<string, SSEServerTransport>
|
|
755
|
+
};
|
|
756
|
+
|
|
757
|
+
// Modern Streamable HTTP endpoint
|
|
758
|
+
app.all('/mcp', async (req, res) => {
|
|
759
|
+
// Handle Streamable HTTP transport for modern clients
|
|
760
|
+
// Implementation as shown in the "With Session Management" example
|
|
761
|
+
// ...
|
|
762
|
+
});
|
|
763
|
+
|
|
764
|
+
// Legacy SSE endpoint for older clients
|
|
765
|
+
app.get('/sse', async (req, res) => {
|
|
766
|
+
// Create SSE transport for legacy clients
|
|
767
|
+
const transport = new SSEServerTransport('/messages', res);
|
|
768
|
+
transports.sse[transport.sessionId] = transport;
|
|
769
|
+
|
|
770
|
+
res.on("close", () => {
|
|
771
|
+
delete transports.sse[transport.sessionId];
|
|
772
|
+
});
|
|
773
|
+
|
|
774
|
+
await server.connect(transport);
|
|
775
|
+
});
|
|
776
|
+
|
|
777
|
+
// Legacy message endpoint for older clients
|
|
778
|
+
app.post('/messages', async (req, res) => {
|
|
779
|
+
const sessionId = req.query.sessionId as string;
|
|
780
|
+
const transport = transports.sse[sessionId];
|
|
781
|
+
if (transport) {
|
|
782
|
+
await transport.handlePostMessage(req, res);
|
|
783
|
+
} else {
|
|
784
|
+
res.status(400).send('No transport found for sessionId');
|
|
785
|
+
}
|
|
786
|
+
});
|
|
787
|
+
|
|
788
|
+
app.listen(3000);
|
|
789
|
+
```
|
|
790
|
+
|
|
791
|
+
**Note**: The SSE transport is now deprecated in favor of Streamable HTTP. New implementations should use Streamable HTTP, and existing SSE implementations should plan to migrate.
|
|
792
|
+
|
|
492
793
|
## Documentation
|
|
493
794
|
|
|
494
795
|
- [Model Context Protocol documentation](https://modelcontextprotocol.io)
|
|
@@ -92,11 +92,12 @@ export declare function startAuthorization(serverUrl: string | URL, { metadata,
|
|
|
92
92
|
/**
|
|
93
93
|
* Exchanges an authorization code for an access token with the given server.
|
|
94
94
|
*/
|
|
95
|
-
export declare function exchangeAuthorization(serverUrl: string | URL, { metadata, clientInformation, authorizationCode, codeVerifier, }: {
|
|
95
|
+
export declare function exchangeAuthorization(serverUrl: string | URL, { metadata, clientInformation, authorizationCode, codeVerifier, redirectUri, }: {
|
|
96
96
|
metadata?: OAuthMetadata;
|
|
97
97
|
clientInformation: OAuthClientInformation;
|
|
98
98
|
authorizationCode: string;
|
|
99
99
|
codeVerifier: string;
|
|
100
|
+
redirectUri: string | URL;
|
|
100
101
|
}): Promise<OAuthTokens>;
|
|
101
102
|
/**
|
|
102
103
|
* Exchange a refresh token for an updated access token.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/client/auth.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,WAAW,EAAE,aAAa,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAG7I;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,IAAI,WAAW,IAAI,MAAM,GAAG,GAAG,CAAC;IAEhC;;OAEG;IACH,IAAI,cAAc,IAAI,mBAAmB,CAAC;IAE1C;;;;OAIG;IACH,iBAAiB,IAAI,sBAAsB,GAAG,SAAS,GAAG,OAAO,CAAC,sBAAsB,GAAG,SAAS,CAAC,CAAC;IAEtG;;;;;;;OAOG;IACH,qBAAqB,CAAC,CAAC,iBAAiB,EAAE,0BAA0B,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5F;;;OAGG;IACH,MAAM,IAAI,WAAW,GAAG,SAAS,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;IAErE;;;OAGG;IACH,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtD;;OAEG;IACH,uBAAuB,CAAC,gBAAgB,EAAE,GAAG,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErE;;;OAGG;IACH,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7D;;;OAGG;IACH,YAAY,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC1C;AAED,MAAM,MAAM,UAAU,GAAG,YAAY,GAAG,UAAU,CAAC;AAEnD,qBAAa,iBAAkB,SAAQ,KAAK;gBAC9B,OAAO,CAAC,EAAE,MAAM;CAG7B;AAED;;;;;GAKG;AACH,wBAAsB,IAAI,CACxB,QAAQ,EAAE,mBAAmB,EAC7B,EAAE,SAAS,EAAE,iBAAiB,EAAE,EAAE;IAAE,SAAS,EAAE,MAAM,GAAG,GAAG,CAAC;IAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/client/auth.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/client/auth.js
CHANGED
|
@@ -51,6 +51,7 @@ async function auth(provider, { serverUrl, authorizationCode }) {
|
|
|
51
51
|
clientInformation,
|
|
52
52
|
authorizationCode,
|
|
53
53
|
codeVerifier,
|
|
54
|
+
redirectUri: provider.redirectUrl,
|
|
54
55
|
});
|
|
55
56
|
await provider.saveTokens(tokens);
|
|
56
57
|
return "AUTHORIZED";
|
|
@@ -150,7 +151,7 @@ async function startAuthorization(serverUrl, { metadata, clientInformation, redi
|
|
|
150
151
|
/**
|
|
151
152
|
* Exchanges an authorization code for an access token with the given server.
|
|
152
153
|
*/
|
|
153
|
-
async function exchangeAuthorization(serverUrl, { metadata, clientInformation, authorizationCode, codeVerifier, }) {
|
|
154
|
+
async function exchangeAuthorization(serverUrl, { metadata, clientInformation, authorizationCode, codeVerifier, redirectUri, }) {
|
|
154
155
|
const grantType = "authorization_code";
|
|
155
156
|
let tokenUrl;
|
|
156
157
|
if (metadata) {
|
|
@@ -169,6 +170,7 @@ async function exchangeAuthorization(serverUrl, { metadata, clientInformation, a
|
|
|
169
170
|
client_id: clientInformation.client_id,
|
|
170
171
|
code: authorizationCode,
|
|
171
172
|
code_verifier: codeVerifier,
|
|
173
|
+
redirect_uri: String(redirectUri),
|
|
172
174
|
});
|
|
173
175
|
if (clientInformation.client_secret) {
|
|
174
176
|
params.set("client_secret", clientInformation.client_secret);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/client/auth.ts"],"names":[],"mappings":";;;;;;AAoFA,
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/client/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -49,7 +49,7 @@ export declare class Client<RequestT extends Request = Request, NotificationT ex
|
|
|
49
49
|
*/
|
|
50
50
|
registerCapabilities(capabilities: ClientCapabilities): void;
|
|
51
51
|
protected assertCapability(capability: keyof ServerCapabilities, method: string): void;
|
|
52
|
-
connect(transport: Transport): Promise<void>;
|
|
52
|
+
connect(transport: Transport, options?: RequestOptions): Promise<void>;
|
|
53
53
|
/**
|
|
54
54
|
* After initialization has completed, this will be populated with the server's reported capabilities.
|
|
55
55
|
*/
|
|
@@ -115,6 +115,18 @@ export declare class Client<RequestT extends Request = Request, NotificationT ex
|
|
|
115
115
|
type: import("zod").ZodLiteral<"image">;
|
|
116
116
|
data: import("zod").ZodString;
|
|
117
117
|
mimeType: import("zod").ZodString;
|
|
118
|
+
}, import("zod").ZodTypeAny, "passthrough">>, import("zod").ZodObject<{
|
|
119
|
+
type: import("zod").ZodLiteral<"audio">;
|
|
120
|
+
data: import("zod").ZodString;
|
|
121
|
+
mimeType: import("zod").ZodString;
|
|
122
|
+
}, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{
|
|
123
|
+
type: import("zod").ZodLiteral<"audio">;
|
|
124
|
+
data: import("zod").ZodString;
|
|
125
|
+
mimeType: import("zod").ZodString;
|
|
126
|
+
}, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{
|
|
127
|
+
type: import("zod").ZodLiteral<"audio">;
|
|
128
|
+
data: import("zod").ZodString;
|
|
129
|
+
mimeType: import("zod").ZodString;
|
|
118
130
|
}, import("zod").ZodTypeAny, "passthrough">>, import("zod").ZodObject<{
|
|
119
131
|
type: import("zod").ZodLiteral<"resource">;
|
|
120
132
|
resource: import("zod").ZodUnion<[import("zod").ZodObject<import("zod").objectUtil.extendShape<{
|
|
@@ -238,6 +250,18 @@ export declare class Client<RequestT extends Request = Request, NotificationT ex
|
|
|
238
250
|
type: import("zod").ZodLiteral<"image">;
|
|
239
251
|
data: import("zod").ZodString;
|
|
240
252
|
mimeType: import("zod").ZodString;
|
|
253
|
+
}, import("zod").ZodTypeAny, "passthrough">>, import("zod").ZodObject<{
|
|
254
|
+
type: import("zod").ZodLiteral<"audio">;
|
|
255
|
+
data: import("zod").ZodString;
|
|
256
|
+
mimeType: import("zod").ZodString;
|
|
257
|
+
}, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{
|
|
258
|
+
type: import("zod").ZodLiteral<"audio">;
|
|
259
|
+
data: import("zod").ZodString;
|
|
260
|
+
mimeType: import("zod").ZodString;
|
|
261
|
+
}, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{
|
|
262
|
+
type: import("zod").ZodLiteral<"audio">;
|
|
263
|
+
data: import("zod").ZodString;
|
|
264
|
+
mimeType: import("zod").ZodString;
|
|
241
265
|
}, import("zod").ZodTypeAny, "passthrough">>, import("zod").ZodObject<{
|
|
242
266
|
type: import("zod").ZodLiteral<"resource">;
|
|
243
267
|
resource: import("zod").ZodUnion<[import("zod").ZodObject<import("zod").objectUtil.extendShape<{
|
|
@@ -361,6 +385,18 @@ export declare class Client<RequestT extends Request = Request, NotificationT ex
|
|
|
361
385
|
type: import("zod").ZodLiteral<"image">;
|
|
362
386
|
data: import("zod").ZodString;
|
|
363
387
|
mimeType: import("zod").ZodString;
|
|
388
|
+
}, import("zod").ZodTypeAny, "passthrough">>, import("zod").ZodObject<{
|
|
389
|
+
type: import("zod").ZodLiteral<"audio">;
|
|
390
|
+
data: import("zod").ZodString;
|
|
391
|
+
mimeType: import("zod").ZodString;
|
|
392
|
+
}, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{
|
|
393
|
+
type: import("zod").ZodLiteral<"audio">;
|
|
394
|
+
data: import("zod").ZodString;
|
|
395
|
+
mimeType: import("zod").ZodString;
|
|
396
|
+
}, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{
|
|
397
|
+
type: import("zod").ZodLiteral<"audio">;
|
|
398
|
+
data: import("zod").ZodString;
|
|
399
|
+
mimeType: import("zod").ZodString;
|
|
364
400
|
}, import("zod").ZodTypeAny, "passthrough">>, import("zod").ZodObject<{
|
|
365
401
|
type: import("zod").ZodLiteral<"resource">;
|
|
366
402
|
resource: import("zod").ZodUnion<[import("zod").ZodObject<import("zod").objectUtil.extendShape<{
|
|
@@ -627,6 +663,18 @@ export declare class Client<RequestT extends Request = Request, NotificationT ex
|
|
|
627
663
|
type: import("zod").ZodLiteral<"image">;
|
|
628
664
|
data: import("zod").ZodString;
|
|
629
665
|
mimeType: import("zod").ZodString;
|
|
666
|
+
}, import("zod").ZodTypeAny, "passthrough">>, import("zod").ZodObject<{
|
|
667
|
+
type: import("zod").ZodLiteral<"audio">;
|
|
668
|
+
data: import("zod").ZodString;
|
|
669
|
+
mimeType: import("zod").ZodString;
|
|
670
|
+
}, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{
|
|
671
|
+
type: import("zod").ZodLiteral<"audio">;
|
|
672
|
+
data: import("zod").ZodString;
|
|
673
|
+
mimeType: import("zod").ZodString;
|
|
674
|
+
}, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{
|
|
675
|
+
type: import("zod").ZodLiteral<"audio">;
|
|
676
|
+
data: import("zod").ZodString;
|
|
677
|
+
mimeType: import("zod").ZodString;
|
|
630
678
|
}, import("zod").ZodTypeAny, "passthrough">>, import("zod").ZodObject<{
|
|
631
679
|
type: import("zod").ZodLiteral<"resource">;
|
|
632
680
|
resource: import("zod").ZodUnion<[import("zod").ZodObject<import("zod").objectUtil.extendShape<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,QAAQ,EACR,eAAe,EACf,cAAc,EACf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,iCAAiC,EACjC,eAAe,EAGf,gBAAgB,EAEhB,cAAc,EAGd,kBAAkB,EAElB,oBAAoB,EAEpB,4BAA4B,EAE5B,gBAAgB,EAEhB,YAAY,EACZ,YAAY,EACZ,mBAAmB,EAEnB,OAAO,EACP,MAAM,EACN,kBAAkB,EAClB,gBAAgB,EAEhB,kBAAkB,EACnB,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,aAAa,GAAG,eAAe,GAAG;IAC5C;;OAEG;IACH,YAAY,CAAC,EAAE,kBAAkB,CAAC;CACnC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,MAAM,CACjB,QAAQ,SAAS,OAAO,GAAG,OAAO,EAClC,aAAa,SAAS,YAAY,GAAG,YAAY,EACjD,OAAO,SAAS,MAAM,GAAG,MAAM,CAC/B,SAAQ,QAAQ,CAChB,aAAa,GAAG,QAAQ,EACxB,kBAAkB,GAAG,aAAa,EAClC,YAAY,GAAG,OAAO,CACvB;IAUG,OAAO,CAAC,WAAW;IATrB,OAAO,CAAC,mBAAmB,CAAC,CAAqB;IACjD,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,aAAa,CAAC,CAAS;IAE/B;;OAEG;gBAEO,WAAW,EAAE,cAAc,EACnC,OAAO,CAAC,EAAE,aAAa;IAMzB;;;;OAIG;IACI,oBAAoB,CAAC,YAAY,EAAE,kBAAkB,GAAG,IAAI;IAUnE,SAAS,CAAC,gBAAgB,CACxB,UAAU,EAAE,MAAM,kBAAkB,EACpC,MAAM,EAAE,MAAM,GACb,IAAI;IAQQ,OAAO,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"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"}
|