@ai-sdk/mcp 2.0.0-beta.3 → 2.0.0-beta.30
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/CHANGELOG.md +216 -9
- package/dist/index.d.ts +25 -1
- package/dist/index.js +288 -279
- package/dist/index.js.map +1 -1
- package/dist/mcp-stdio/index.js +134 -160
- package/dist/mcp-stdio/index.js.map +1 -1
- package/package.json +10 -13
- package/src/index.ts +1 -0
- package/src/tool/mcp-client.ts +20 -3
- package/src/tool/mcp-http-transport.ts +17 -3
- package/src/tool/mcp-sse-transport.ts +15 -2
- package/src/tool/mcp-transport.ts +16 -0
- package/src/tool/mock-mcp-transport.ts +0 -1
- package/src/tool/oauth.ts +7 -3
- package/src/tool/types.ts +2 -0
- package/src/util/oauth-util.ts +13 -0
- package/dist/index.d.mts +0 -509
- package/dist/index.mjs +0 -2128
- package/dist/index.mjs.map +0 -1
- package/dist/mcp-stdio/index.d.mts +0 -89
- package/dist/mcp-stdio/index.mjs +0 -426
- package/dist/mcp-stdio/index.mjs.map +0 -1
package/dist/mcp-stdio/index.js
CHANGED
|
@@ -1,257 +1,232 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name2 in all)
|
|
8
|
-
__defProp(target, name2, { get: all[name2], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
|
|
20
|
-
// src/tool/mcp-stdio/index.ts
|
|
21
|
-
var mcp_stdio_exports = {};
|
|
22
|
-
__export(mcp_stdio_exports, {
|
|
23
|
-
Experimental_StdioMCPTransport: () => StdioMCPTransport
|
|
24
|
-
});
|
|
25
|
-
module.exports = __toCommonJS(mcp_stdio_exports);
|
|
26
|
-
|
|
27
1
|
// src/tool/json-rpc-message.ts
|
|
28
|
-
|
|
2
|
+
import { z as z2 } from "zod/v4";
|
|
29
3
|
|
|
30
4
|
// src/tool/types.ts
|
|
31
|
-
|
|
32
|
-
var ToolMetaSchema =
|
|
33
|
-
var ClientOrServerImplementationSchema =
|
|
34
|
-
name:
|
|
35
|
-
version:
|
|
5
|
+
import { z } from "zod/v4";
|
|
6
|
+
var ToolMetaSchema = z.optional(z.record(z.string(), z.unknown()));
|
|
7
|
+
var ClientOrServerImplementationSchema = z.looseObject({
|
|
8
|
+
name: z.string(),
|
|
9
|
+
version: z.string(),
|
|
10
|
+
title: z.optional(z.string())
|
|
36
11
|
});
|
|
37
|
-
var BaseParamsSchema =
|
|
38
|
-
_meta:
|
|
12
|
+
var BaseParamsSchema = z.looseObject({
|
|
13
|
+
_meta: z.optional(z.object({}).loose())
|
|
39
14
|
});
|
|
40
15
|
var ResultSchema = BaseParamsSchema;
|
|
41
|
-
var RequestSchema =
|
|
42
|
-
method:
|
|
43
|
-
params:
|
|
16
|
+
var RequestSchema = z.object({
|
|
17
|
+
method: z.string(),
|
|
18
|
+
params: z.optional(BaseParamsSchema)
|
|
44
19
|
});
|
|
45
|
-
var ElicitationCapabilitySchema =
|
|
46
|
-
applyDefaults:
|
|
20
|
+
var ElicitationCapabilitySchema = z.object({
|
|
21
|
+
applyDefaults: z.optional(z.boolean())
|
|
47
22
|
}).loose();
|
|
48
|
-
var ServerCapabilitiesSchema =
|
|
49
|
-
experimental:
|
|
50
|
-
logging:
|
|
51
|
-
prompts:
|
|
52
|
-
|
|
53
|
-
listChanged:
|
|
23
|
+
var ServerCapabilitiesSchema = z.looseObject({
|
|
24
|
+
experimental: z.optional(z.object({}).loose()),
|
|
25
|
+
logging: z.optional(z.object({}).loose()),
|
|
26
|
+
prompts: z.optional(
|
|
27
|
+
z.looseObject({
|
|
28
|
+
listChanged: z.optional(z.boolean())
|
|
54
29
|
})
|
|
55
30
|
),
|
|
56
|
-
resources:
|
|
57
|
-
|
|
58
|
-
subscribe:
|
|
59
|
-
listChanged:
|
|
31
|
+
resources: z.optional(
|
|
32
|
+
z.looseObject({
|
|
33
|
+
subscribe: z.optional(z.boolean()),
|
|
34
|
+
listChanged: z.optional(z.boolean())
|
|
60
35
|
})
|
|
61
36
|
),
|
|
62
|
-
tools:
|
|
63
|
-
|
|
64
|
-
listChanged:
|
|
37
|
+
tools: z.optional(
|
|
38
|
+
z.looseObject({
|
|
39
|
+
listChanged: z.optional(z.boolean())
|
|
65
40
|
})
|
|
66
41
|
),
|
|
67
|
-
elicitation:
|
|
42
|
+
elicitation: z.optional(ElicitationCapabilitySchema)
|
|
68
43
|
});
|
|
69
|
-
var ClientCapabilitiesSchema =
|
|
70
|
-
elicitation:
|
|
44
|
+
var ClientCapabilitiesSchema = z.object({
|
|
45
|
+
elicitation: z.optional(ElicitationCapabilitySchema)
|
|
71
46
|
}).loose();
|
|
72
47
|
var InitializeResultSchema = ResultSchema.extend({
|
|
73
|
-
protocolVersion:
|
|
48
|
+
protocolVersion: z.string(),
|
|
74
49
|
capabilities: ServerCapabilitiesSchema,
|
|
75
50
|
serverInfo: ClientOrServerImplementationSchema,
|
|
76
|
-
instructions:
|
|
51
|
+
instructions: z.optional(z.string())
|
|
77
52
|
});
|
|
78
53
|
var PaginatedResultSchema = ResultSchema.extend({
|
|
79
|
-
nextCursor:
|
|
54
|
+
nextCursor: z.optional(z.string())
|
|
80
55
|
});
|
|
81
|
-
var ToolSchema =
|
|
82
|
-
name:
|
|
56
|
+
var ToolSchema = z.object({
|
|
57
|
+
name: z.string(),
|
|
83
58
|
/**
|
|
84
59
|
* @see https://modelcontextprotocol.io/specification/2025-11-25/server/tools#tool
|
|
85
60
|
*/
|
|
86
|
-
title:
|
|
87
|
-
description:
|
|
88
|
-
inputSchema:
|
|
89
|
-
type:
|
|
90
|
-
properties:
|
|
61
|
+
title: z.optional(z.string()),
|
|
62
|
+
description: z.optional(z.string()),
|
|
63
|
+
inputSchema: z.object({
|
|
64
|
+
type: z.literal("object"),
|
|
65
|
+
properties: z.optional(z.object({}).loose())
|
|
91
66
|
}).loose(),
|
|
92
67
|
/**
|
|
93
68
|
* @see https://modelcontextprotocol.io/specification/2025-06-18/server/tools#output-schema
|
|
94
69
|
*/
|
|
95
|
-
outputSchema:
|
|
96
|
-
annotations:
|
|
97
|
-
|
|
98
|
-
title:
|
|
70
|
+
outputSchema: z.optional(z.object({}).loose()),
|
|
71
|
+
annotations: z.optional(
|
|
72
|
+
z.object({
|
|
73
|
+
title: z.optional(z.string())
|
|
99
74
|
}).loose()
|
|
100
75
|
),
|
|
101
76
|
_meta: ToolMetaSchema
|
|
102
77
|
}).loose();
|
|
103
78
|
var ListToolsResultSchema = PaginatedResultSchema.extend({
|
|
104
|
-
tools:
|
|
79
|
+
tools: z.array(ToolSchema)
|
|
105
80
|
});
|
|
106
|
-
var TextContentSchema =
|
|
107
|
-
type:
|
|
108
|
-
text:
|
|
81
|
+
var TextContentSchema = z.object({
|
|
82
|
+
type: z.literal("text"),
|
|
83
|
+
text: z.string()
|
|
109
84
|
}).loose();
|
|
110
|
-
var ImageContentSchema =
|
|
111
|
-
type:
|
|
112
|
-
data:
|
|
113
|
-
mimeType:
|
|
85
|
+
var ImageContentSchema = z.object({
|
|
86
|
+
type: z.literal("image"),
|
|
87
|
+
data: z.base64(),
|
|
88
|
+
mimeType: z.string()
|
|
114
89
|
}).loose();
|
|
115
|
-
var ResourceSchema =
|
|
116
|
-
uri:
|
|
117
|
-
name:
|
|
118
|
-
title:
|
|
119
|
-
description:
|
|
120
|
-
mimeType:
|
|
121
|
-
size:
|
|
90
|
+
var ResourceSchema = z.object({
|
|
91
|
+
uri: z.string(),
|
|
92
|
+
name: z.string(),
|
|
93
|
+
title: z.optional(z.string()),
|
|
94
|
+
description: z.optional(z.string()),
|
|
95
|
+
mimeType: z.optional(z.string()),
|
|
96
|
+
size: z.optional(z.number())
|
|
122
97
|
}).loose();
|
|
123
98
|
var ListResourcesResultSchema = PaginatedResultSchema.extend({
|
|
124
|
-
resources:
|
|
99
|
+
resources: z.array(ResourceSchema)
|
|
125
100
|
});
|
|
126
|
-
var ResourceContentsSchema =
|
|
101
|
+
var ResourceContentsSchema = z.object({
|
|
127
102
|
/**
|
|
128
103
|
* The URI of this resource.
|
|
129
104
|
*/
|
|
130
|
-
uri:
|
|
105
|
+
uri: z.string(),
|
|
131
106
|
/**
|
|
132
107
|
* Optional display name of the resource content.
|
|
133
108
|
*/
|
|
134
|
-
name:
|
|
109
|
+
name: z.optional(z.string()),
|
|
135
110
|
/**
|
|
136
111
|
* Optional human readable title.
|
|
137
112
|
*/
|
|
138
|
-
title:
|
|
113
|
+
title: z.optional(z.string()),
|
|
139
114
|
/**
|
|
140
115
|
* The MIME type of this resource, if known.
|
|
141
116
|
*/
|
|
142
|
-
mimeType:
|
|
117
|
+
mimeType: z.optional(z.string())
|
|
143
118
|
}).loose();
|
|
144
119
|
var TextResourceContentsSchema = ResourceContentsSchema.extend({
|
|
145
|
-
text:
|
|
120
|
+
text: z.string()
|
|
146
121
|
});
|
|
147
122
|
var BlobResourceContentsSchema = ResourceContentsSchema.extend({
|
|
148
|
-
blob:
|
|
123
|
+
blob: z.base64()
|
|
149
124
|
});
|
|
150
|
-
var EmbeddedResourceSchema =
|
|
151
|
-
type:
|
|
152
|
-
resource:
|
|
125
|
+
var EmbeddedResourceSchema = z.object({
|
|
126
|
+
type: z.literal("resource"),
|
|
127
|
+
resource: z.union([TextResourceContentsSchema, BlobResourceContentsSchema])
|
|
153
128
|
}).loose();
|
|
154
129
|
var CallToolResultSchema = ResultSchema.extend({
|
|
155
|
-
content:
|
|
156
|
-
|
|
130
|
+
content: z.array(
|
|
131
|
+
z.union([TextContentSchema, ImageContentSchema, EmbeddedResourceSchema])
|
|
157
132
|
),
|
|
158
133
|
/**
|
|
159
134
|
* @see https://modelcontextprotocol.io/specification/2025-06-18/server/tools#structured-content
|
|
160
135
|
*/
|
|
161
|
-
structuredContent:
|
|
162
|
-
isError:
|
|
136
|
+
structuredContent: z.optional(z.unknown()),
|
|
137
|
+
isError: z.boolean().default(false).optional()
|
|
163
138
|
}).or(
|
|
164
139
|
ResultSchema.extend({
|
|
165
|
-
toolResult:
|
|
140
|
+
toolResult: z.unknown()
|
|
166
141
|
})
|
|
167
142
|
);
|
|
168
|
-
var ResourceTemplateSchema =
|
|
169
|
-
uriTemplate:
|
|
170
|
-
name:
|
|
171
|
-
title:
|
|
172
|
-
description:
|
|
173
|
-
mimeType:
|
|
143
|
+
var ResourceTemplateSchema = z.object({
|
|
144
|
+
uriTemplate: z.string(),
|
|
145
|
+
name: z.string(),
|
|
146
|
+
title: z.optional(z.string()),
|
|
147
|
+
description: z.optional(z.string()),
|
|
148
|
+
mimeType: z.optional(z.string())
|
|
174
149
|
}).loose();
|
|
175
150
|
var ListResourceTemplatesResultSchema = ResultSchema.extend({
|
|
176
|
-
resourceTemplates:
|
|
151
|
+
resourceTemplates: z.array(ResourceTemplateSchema)
|
|
177
152
|
});
|
|
178
153
|
var ReadResourceResultSchema = ResultSchema.extend({
|
|
179
|
-
contents:
|
|
180
|
-
|
|
154
|
+
contents: z.array(
|
|
155
|
+
z.union([TextResourceContentsSchema, BlobResourceContentsSchema])
|
|
181
156
|
)
|
|
182
157
|
});
|
|
183
|
-
var PromptArgumentSchema =
|
|
184
|
-
name:
|
|
185
|
-
description:
|
|
186
|
-
required:
|
|
158
|
+
var PromptArgumentSchema = z.object({
|
|
159
|
+
name: z.string(),
|
|
160
|
+
description: z.optional(z.string()),
|
|
161
|
+
required: z.optional(z.boolean())
|
|
187
162
|
}).loose();
|
|
188
|
-
var PromptSchema =
|
|
189
|
-
name:
|
|
190
|
-
title:
|
|
191
|
-
description:
|
|
192
|
-
arguments:
|
|
163
|
+
var PromptSchema = z.object({
|
|
164
|
+
name: z.string(),
|
|
165
|
+
title: z.optional(z.string()),
|
|
166
|
+
description: z.optional(z.string()),
|
|
167
|
+
arguments: z.optional(z.array(PromptArgumentSchema))
|
|
193
168
|
}).loose();
|
|
194
169
|
var ListPromptsResultSchema = PaginatedResultSchema.extend({
|
|
195
|
-
prompts:
|
|
170
|
+
prompts: z.array(PromptSchema)
|
|
196
171
|
});
|
|
197
|
-
var PromptMessageSchema =
|
|
198
|
-
role:
|
|
199
|
-
content:
|
|
172
|
+
var PromptMessageSchema = z.object({
|
|
173
|
+
role: z.union([z.literal("user"), z.literal("assistant")]),
|
|
174
|
+
content: z.union([
|
|
200
175
|
TextContentSchema,
|
|
201
176
|
ImageContentSchema,
|
|
202
177
|
EmbeddedResourceSchema
|
|
203
178
|
])
|
|
204
179
|
}).loose();
|
|
205
180
|
var GetPromptResultSchema = ResultSchema.extend({
|
|
206
|
-
description:
|
|
207
|
-
messages:
|
|
181
|
+
description: z.optional(z.string()),
|
|
182
|
+
messages: z.array(PromptMessageSchema)
|
|
208
183
|
});
|
|
209
184
|
var ElicitationRequestParamsSchema = BaseParamsSchema.extend({
|
|
210
|
-
message:
|
|
211
|
-
requestedSchema:
|
|
185
|
+
message: z.string(),
|
|
186
|
+
requestedSchema: z.unknown()
|
|
212
187
|
});
|
|
213
188
|
var ElicitationRequestSchema = RequestSchema.extend({
|
|
214
|
-
method:
|
|
189
|
+
method: z.literal("elicitation/create"),
|
|
215
190
|
params: ElicitationRequestParamsSchema
|
|
216
191
|
});
|
|
217
192
|
var ElicitResultSchema = ResultSchema.extend({
|
|
218
|
-
action:
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
193
|
+
action: z.union([
|
|
194
|
+
z.literal("accept"),
|
|
195
|
+
z.literal("decline"),
|
|
196
|
+
z.literal("cancel")
|
|
222
197
|
]),
|
|
223
|
-
content:
|
|
198
|
+
content: z.optional(z.record(z.string(), z.unknown()))
|
|
224
199
|
});
|
|
225
200
|
|
|
226
201
|
// src/tool/json-rpc-message.ts
|
|
227
202
|
var JSONRPC_VERSION = "2.0";
|
|
228
|
-
var JSONRPCRequestSchema =
|
|
229
|
-
jsonrpc:
|
|
230
|
-
id:
|
|
203
|
+
var JSONRPCRequestSchema = z2.object({
|
|
204
|
+
jsonrpc: z2.literal(JSONRPC_VERSION),
|
|
205
|
+
id: z2.union([z2.string(), z2.number().int()])
|
|
231
206
|
}).merge(RequestSchema).strict();
|
|
232
|
-
var JSONRPCResponseSchema =
|
|
233
|
-
jsonrpc:
|
|
234
|
-
id:
|
|
207
|
+
var JSONRPCResponseSchema = z2.object({
|
|
208
|
+
jsonrpc: z2.literal(JSONRPC_VERSION),
|
|
209
|
+
id: z2.union([z2.string(), z2.number().int()]),
|
|
235
210
|
result: ResultSchema
|
|
236
211
|
}).strict();
|
|
237
|
-
var JSONRPCErrorSchema =
|
|
238
|
-
jsonrpc:
|
|
239
|
-
id:
|
|
240
|
-
error:
|
|
241
|
-
code:
|
|
242
|
-
message:
|
|
243
|
-
data:
|
|
212
|
+
var JSONRPCErrorSchema = z2.object({
|
|
213
|
+
jsonrpc: z2.literal(JSONRPC_VERSION),
|
|
214
|
+
id: z2.union([z2.string(), z2.number().int()]),
|
|
215
|
+
error: z2.object({
|
|
216
|
+
code: z2.number().int(),
|
|
217
|
+
message: z2.string(),
|
|
218
|
+
data: z2.optional(z2.unknown())
|
|
244
219
|
})
|
|
245
220
|
}).strict();
|
|
246
|
-
var JSONRPCNotificationSchema =
|
|
247
|
-
jsonrpc:
|
|
221
|
+
var JSONRPCNotificationSchema = z2.object({
|
|
222
|
+
jsonrpc: z2.literal(JSONRPC_VERSION)
|
|
248
223
|
}).merge(
|
|
249
|
-
|
|
250
|
-
method:
|
|
251
|
-
params:
|
|
224
|
+
z2.object({
|
|
225
|
+
method: z2.string(),
|
|
226
|
+
params: z2.optional(BaseParamsSchema)
|
|
252
227
|
})
|
|
253
228
|
).strict();
|
|
254
|
-
var JSONRPCMessageSchema =
|
|
229
|
+
var JSONRPCMessageSchema = z2.union([
|
|
255
230
|
JSONRPCRequestSchema,
|
|
256
231
|
JSONRPCNotificationSchema,
|
|
257
232
|
JSONRPCResponseSchema,
|
|
@@ -259,12 +234,12 @@ var JSONRPCMessageSchema = import_v42.z.union([
|
|
|
259
234
|
]);
|
|
260
235
|
|
|
261
236
|
// src/error/mcp-client-error.ts
|
|
262
|
-
|
|
237
|
+
import { AISDKError } from "@ai-sdk/provider";
|
|
263
238
|
var name = "AI_MCPClientError";
|
|
264
239
|
var marker = `vercel.ai.error.${name}`;
|
|
265
240
|
var symbol = Symbol.for(marker);
|
|
266
241
|
var _a, _b;
|
|
267
|
-
var MCPClientError = class extends (_b =
|
|
242
|
+
var MCPClientError = class extends (_b = AISDKError, _a = symbol, _b) {
|
|
268
243
|
constructor({
|
|
269
244
|
name: name2 = "MCPClientError",
|
|
270
245
|
message,
|
|
@@ -278,12 +253,12 @@ var MCPClientError = class extends (_b = import_provider.AISDKError, _a = symbol
|
|
|
278
253
|
this.code = code;
|
|
279
254
|
}
|
|
280
255
|
static isInstance(error) {
|
|
281
|
-
return
|
|
256
|
+
return AISDKError.hasMarker(error, marker);
|
|
282
257
|
}
|
|
283
258
|
};
|
|
284
259
|
|
|
285
260
|
// src/tool/mcp-stdio/create-child-process.ts
|
|
286
|
-
|
|
261
|
+
import { spawn } from "child_process";
|
|
287
262
|
|
|
288
263
|
// src/tool/mcp-stdio/get-environment.ts
|
|
289
264
|
function getEnvironment(customEnv) {
|
|
@@ -317,7 +292,7 @@ function getEnvironment(customEnv) {
|
|
|
317
292
|
// src/tool/mcp-stdio/create-child-process.ts
|
|
318
293
|
function createChildProcess(config, signal) {
|
|
319
294
|
var _a2, _b2;
|
|
320
|
-
return
|
|
295
|
+
return spawn(config.command, (_a2 = config.args) != null ? _a2 : [], {
|
|
321
296
|
env: getEnvironment(config.env),
|
|
322
297
|
stdio: ["pipe", "pipe", (_b2 = config.stderr) != null ? _b2 : "inherit"],
|
|
323
298
|
shell: false,
|
|
@@ -446,8 +421,7 @@ function serializeMessage(message) {
|
|
|
446
421
|
function deserializeMessage(line) {
|
|
447
422
|
return JSONRPCMessageSchema.parse(JSON.parse(line));
|
|
448
423
|
}
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
});
|
|
424
|
+
export {
|
|
425
|
+
StdioMCPTransport as Experimental_StdioMCPTransport
|
|
426
|
+
};
|
|
453
427
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/tool/mcp-stdio/index.ts","../../src/tool/json-rpc-message.ts","../../src/tool/types.ts","../../src/error/mcp-client-error.ts","../../src/tool/mcp-stdio/create-child-process.ts","../../src/tool/mcp-stdio/get-environment.ts","../../src/tool/mcp-stdio/mcp-stdio-transport.ts"],"sourcesContent":["export {\n StdioMCPTransport as Experimental_StdioMCPTransport,\n type StdioConfig,\n} from './mcp-stdio-transport';\n","import { z } from 'zod/v4';\nimport { BaseParamsSchema, RequestSchema, ResultSchema } from './types';\n\nconst JSONRPC_VERSION = '2.0';\n\nconst JSONRPCRequestSchema = z\n .object({\n jsonrpc: z.literal(JSONRPC_VERSION),\n id: z.union([z.string(), z.number().int()]),\n })\n .merge(RequestSchema)\n .strict();\n\nexport type JSONRPCRequest = z.infer<typeof JSONRPCRequestSchema>;\n\nconst JSONRPCResponseSchema = z\n .object({\n jsonrpc: z.literal(JSONRPC_VERSION),\n id: z.union([z.string(), z.number().int()]),\n result: ResultSchema,\n })\n .strict();\n\nexport type JSONRPCResponse = z.infer<typeof JSONRPCResponseSchema>;\n\nconst JSONRPCErrorSchema = z\n .object({\n jsonrpc: z.literal(JSONRPC_VERSION),\n id: z.union([z.string(), z.number().int()]),\n error: z.object({\n code: z.number().int(),\n message: z.string(),\n data: z.optional(z.unknown()),\n }),\n })\n .strict();\n\nexport type JSONRPCError = z.infer<typeof JSONRPCErrorSchema>;\n\nconst JSONRPCNotificationSchema = z\n .object({\n jsonrpc: z.literal(JSONRPC_VERSION),\n })\n .merge(\n z.object({\n method: z.string(),\n params: z.optional(BaseParamsSchema),\n }),\n )\n .strict();\n\nexport type JSONRPCNotification = z.infer<typeof JSONRPCNotificationSchema>;\n\nexport const JSONRPCMessageSchema = z.union([\n JSONRPCRequestSchema,\n JSONRPCNotificationSchema,\n JSONRPCResponseSchema,\n JSONRPCErrorSchema,\n]);\n\nexport type JSONRPCMessage = z.infer<typeof JSONRPCMessageSchema>;\n","import { z } from 'zod/v4';\nimport { JSONObject } from '@ai-sdk/provider';\nimport { FlexibleSchema, Tool } from '@ai-sdk/provider-utils';\n\nexport const LATEST_PROTOCOL_VERSION = '2025-11-25';\nexport const SUPPORTED_PROTOCOL_VERSIONS = [\n LATEST_PROTOCOL_VERSION,\n '2025-06-18',\n '2025-03-26',\n '2024-11-05',\n];\n\n/** MCP tool metadata - keys should follow MCP _meta key format specification */\nconst ToolMetaSchema = z.optional(z.record(z.string(), z.unknown()));\nexport type ToolMeta = z.infer<typeof ToolMetaSchema>;\n\nexport type ToolSchemas =\n | Record<\n string,\n {\n inputSchema: FlexibleSchema<JSONObject | unknown>;\n outputSchema?: FlexibleSchema<JSONObject | unknown>;\n }\n >\n | 'automatic'\n | undefined;\n\n/** Base MCP tool type with execute and _meta */\ntype McpToolBase<INPUT = unknown, OUTPUT = CallToolResult> = Tool<\n INPUT,\n OUTPUT\n> &\n Required<Pick<Tool<INPUT, OUTPUT>, 'execute'>> & {\n _meta?: ToolMeta;\n };\n\nexport type McpToolSet<TOOL_SCHEMAS extends ToolSchemas = 'automatic'> =\n TOOL_SCHEMAS extends Record<\n string,\n { inputSchema: FlexibleSchema<any>; outputSchema?: FlexibleSchema<any> }\n >\n ? {\n [K in keyof TOOL_SCHEMAS]: TOOL_SCHEMAS[K] extends {\n inputSchema: FlexibleSchema<infer INPUT>;\n outputSchema: FlexibleSchema<infer OUTPUT>;\n }\n ? McpToolBase<INPUT, OUTPUT>\n : TOOL_SCHEMAS[K] extends {\n inputSchema: FlexibleSchema<infer INPUT>;\n }\n ? McpToolBase<INPUT, CallToolResult>\n : never;\n }\n : Record<string, McpToolBase<unknown, CallToolResult>>;\n\nconst ClientOrServerImplementationSchema = z.looseObject({\n name: z.string(),\n version: z.string(),\n});\n\nexport type Configuration = z.infer<typeof ClientOrServerImplementationSchema>;\n\nexport const BaseParamsSchema = z.looseObject({\n _meta: z.optional(z.object({}).loose()),\n});\ntype BaseParams = z.infer<typeof BaseParamsSchema>;\nexport const ResultSchema = BaseParamsSchema;\n\nexport const RequestSchema = z.object({\n method: z.string(),\n params: z.optional(BaseParamsSchema),\n});\nexport type Request = z.infer<typeof RequestSchema>;\nexport type RequestOptions = {\n signal?: AbortSignal;\n timeout?: number;\n maxTotalTimeout?: number;\n};\n\nexport type Notification = z.infer<typeof RequestSchema>;\n\n/** @see https://modelcontextprotocol.io/specification/2025-06-18/client/elicitation */\nconst ElicitationCapabilitySchema = z\n .object({\n applyDefaults: z.optional(z.boolean()),\n })\n .loose();\n\nconst ServerCapabilitiesSchema = z.looseObject({\n experimental: z.optional(z.object({}).loose()),\n logging: z.optional(z.object({}).loose()),\n prompts: z.optional(\n z.looseObject({\n listChanged: z.optional(z.boolean()),\n }),\n ),\n resources: z.optional(\n z.looseObject({\n subscribe: z.optional(z.boolean()),\n listChanged: z.optional(z.boolean()),\n }),\n ),\n tools: z.optional(\n z.looseObject({\n listChanged: z.optional(z.boolean()),\n }),\n ),\n elicitation: z.optional(ElicitationCapabilitySchema),\n});\n\nexport type ServerCapabilities = z.infer<typeof ServerCapabilitiesSchema>;\nexport const ClientCapabilitiesSchema = z\n .object({\n elicitation: z.optional(ElicitationCapabilitySchema),\n })\n .loose();\n\nexport type ClientCapabilities = z.infer<typeof ClientCapabilitiesSchema>;\nexport type ElicitationCapability = z.infer<typeof ElicitationCapabilitySchema>;\n\nexport const InitializeResultSchema = ResultSchema.extend({\n protocolVersion: z.string(),\n capabilities: ServerCapabilitiesSchema,\n serverInfo: ClientOrServerImplementationSchema,\n instructions: z.optional(z.string()),\n});\nexport type InitializeResult = z.infer<typeof InitializeResultSchema>;\n\nexport type PaginatedRequest = Request & {\n params?: BaseParams & {\n cursor?: string;\n };\n};\n\nconst PaginatedResultSchema = ResultSchema.extend({\n nextCursor: z.optional(z.string()),\n});\n\nconst ToolSchema = z\n .object({\n name: z.string(),\n /**\n * @see https://modelcontextprotocol.io/specification/2025-11-25/server/tools#tool\n */\n title: z.optional(z.string()),\n description: z.optional(z.string()),\n inputSchema: z\n .object({\n type: z.literal('object'),\n properties: z.optional(z.object({}).loose()),\n })\n .loose(),\n /**\n * @see https://modelcontextprotocol.io/specification/2025-06-18/server/tools#output-schema\n */\n outputSchema: z.optional(z.object({}).loose()),\n annotations: z.optional(\n z\n .object({\n title: z.optional(z.string()),\n })\n .loose(),\n ),\n _meta: ToolMetaSchema,\n })\n .loose();\nexport type MCPTool = z.infer<typeof ToolSchema>;\nexport const ListToolsResultSchema = PaginatedResultSchema.extend({\n tools: z.array(ToolSchema),\n});\nexport type ListToolsResult = z.infer<typeof ListToolsResultSchema>;\n\nconst TextContentSchema = z\n .object({\n type: z.literal('text'),\n text: z.string(),\n })\n .loose();\nconst ImageContentSchema = z\n .object({\n type: z.literal('image'),\n data: z.base64(),\n mimeType: z.string(),\n })\n .loose();\nexport const ResourceSchema = z\n .object({\n uri: z.string(),\n name: z.string(),\n title: z.optional(z.string()),\n description: z.optional(z.string()),\n mimeType: z.optional(z.string()),\n size: z.optional(z.number()),\n })\n .loose();\nexport type MCPResource = z.infer<typeof ResourceSchema>;\n\nexport const ListResourcesResultSchema = PaginatedResultSchema.extend({\n resources: z.array(ResourceSchema),\n});\nexport type ListResourcesResult = z.infer<typeof ListResourcesResultSchema>;\n\nconst ResourceContentsSchema = z\n .object({\n /**\n * The URI of this resource.\n */\n uri: z.string(),\n /**\n * Optional display name of the resource content.\n */\n name: z.optional(z.string()),\n /**\n * Optional human readable title.\n */\n title: z.optional(z.string()),\n /**\n * The MIME type of this resource, if known.\n */\n mimeType: z.optional(z.string()),\n })\n .loose();\nconst TextResourceContentsSchema = ResourceContentsSchema.extend({\n text: z.string(),\n});\nconst BlobResourceContentsSchema = ResourceContentsSchema.extend({\n blob: z.base64(),\n});\nconst EmbeddedResourceSchema = z\n .object({\n type: z.literal('resource'),\n resource: z.union([TextResourceContentsSchema, BlobResourceContentsSchema]),\n })\n .loose();\n\nexport const CallToolResultSchema = ResultSchema.extend({\n content: z.array(\n z.union([TextContentSchema, ImageContentSchema, EmbeddedResourceSchema]),\n ),\n /**\n * @see https://modelcontextprotocol.io/specification/2025-06-18/server/tools#structured-content\n */\n structuredContent: z.optional(z.unknown()),\n isError: z.boolean().default(false).optional(),\n}).or(\n ResultSchema.extend({\n toolResult: z.unknown(),\n }),\n);\nexport type CallToolResult = z.infer<typeof CallToolResultSchema>;\n\nconst ResourceTemplateSchema = z\n .object({\n uriTemplate: z.string(),\n name: z.string(),\n title: z.optional(z.string()),\n description: z.optional(z.string()),\n mimeType: z.optional(z.string()),\n })\n .loose();\n\nexport const ListResourceTemplatesResultSchema = ResultSchema.extend({\n resourceTemplates: z.array(ResourceTemplateSchema),\n});\nexport type ListResourceTemplatesResult = z.infer<\n typeof ListResourceTemplatesResultSchema\n>;\n\nexport const ReadResourceResultSchema = ResultSchema.extend({\n contents: z.array(\n z.union([TextResourceContentsSchema, BlobResourceContentsSchema]),\n ),\n});\nexport type ReadResourceResult = z.infer<typeof ReadResourceResultSchema>;\n\n// Prompts\nconst PromptArgumentSchema = z\n .object({\n name: z.string(),\n description: z.optional(z.string()),\n required: z.optional(z.boolean()),\n })\n .loose();\n\nexport const PromptSchema = z\n .object({\n name: z.string(),\n title: z.optional(z.string()),\n description: z.optional(z.string()),\n arguments: z.optional(z.array(PromptArgumentSchema)),\n })\n .loose();\nexport type MCPPrompt = z.infer<typeof PromptSchema>;\n\nexport const ListPromptsResultSchema = PaginatedResultSchema.extend({\n prompts: z.array(PromptSchema),\n});\nexport type ListPromptsResult = z.infer<typeof ListPromptsResultSchema>;\n\nconst PromptMessageSchema = z\n .object({\n role: z.union([z.literal('user'), z.literal('assistant')]),\n content: z.union([\n TextContentSchema,\n ImageContentSchema,\n EmbeddedResourceSchema,\n ]),\n })\n .loose();\nexport type MCPPromptMessage = z.infer<typeof PromptMessageSchema>;\n\nexport const GetPromptResultSchema = ResultSchema.extend({\n description: z.optional(z.string()),\n messages: z.array(PromptMessageSchema),\n});\nexport type GetPromptResult = z.infer<typeof GetPromptResultSchema>;\n\nconst ElicitationRequestParamsSchema = BaseParamsSchema.extend({\n message: z.string(),\n requestedSchema: z.unknown(),\n});\n\nexport const ElicitationRequestSchema = RequestSchema.extend({\n method: z.literal('elicitation/create'),\n params: ElicitationRequestParamsSchema,\n});\n\nexport type ElicitationRequest = z.infer<typeof ElicitationRequestSchema>;\n\nexport const ElicitResultSchema = ResultSchema.extend({\n action: z.union([\n z.literal('accept'),\n z.literal('decline'),\n z.literal('cancel'),\n ]),\n content: z.optional(z.record(z.string(), z.unknown())),\n});\n\nexport type ElicitResult = z.infer<typeof ElicitResultSchema>;\n","import { AISDKError } from '@ai-sdk/provider';\n\nconst name = 'AI_MCPClientError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\n/**\n * An error occurred with the MCP client.\n */\nexport class MCPClientError extends AISDKError {\n private readonly [symbol] = true;\n readonly data?: unknown;\n readonly code?: number;\n\n constructor({\n name = 'MCPClientError',\n message,\n cause,\n data,\n code,\n }: {\n name?: string;\n message: string;\n cause?: unknown;\n data?: unknown;\n code?: number;\n }) {\n super({ name, message, cause });\n this.data = data;\n this.code = code;\n }\n\n static isInstance(error: unknown): error is MCPClientError {\n return AISDKError.hasMarker(error, marker);\n }\n}\n","import { ChildProcess, spawn } from 'node:child_process';\nimport { getEnvironment } from './get-environment';\nimport { StdioConfig } from './mcp-stdio-transport';\n\nexport function createChildProcess(\n config: StdioConfig,\n signal: AbortSignal,\n): ChildProcess {\n return spawn(config.command, config.args ?? [], {\n env: getEnvironment(config.env),\n stdio: ['pipe', 'pipe', config.stderr ?? 'inherit'],\n shell: false,\n signal,\n windowsHide: globalThis.process.platform === 'win32' && isElectron(),\n cwd: config.cwd,\n });\n}\n\nfunction isElectron() {\n return 'type' in globalThis.process;\n}\n","/**\n * Constructs the environment variables for the child process.\n *\n * @param customEnv - Custom environment variables to merge with default environment variables.\n * @returns The environment variables for the child process.\n */\nexport function getEnvironment(\n customEnv?: Record<string, string>,\n): Record<string, string> {\n const DEFAULT_INHERITED_ENV_VARS =\n globalThis.process.platform === 'win32'\n ? [\n 'APPDATA',\n 'HOMEDRIVE',\n 'HOMEPATH',\n 'LOCALAPPDATA',\n 'PATH',\n 'PROCESSOR_ARCHITECTURE',\n 'SYSTEMDRIVE',\n 'SYSTEMROOT',\n 'TEMP',\n 'USERNAME',\n 'USERPROFILE',\n ]\n : ['HOME', 'LOGNAME', 'PATH', 'SHELL', 'TERM', 'USER'];\n\n const env: Record<string, string> = customEnv ? { ...customEnv } : {};\n\n for (const key of DEFAULT_INHERITED_ENV_VARS) {\n const value = globalThis.process.env[key];\n if (value === undefined) {\n continue;\n }\n\n if (value.startsWith('()')) {\n continue;\n }\n\n env[key] = value;\n }\n\n return env;\n}\n","import type { ChildProcess, IOType } from 'node:child_process';\nimport { Stream } from 'node:stream';\nimport { JSONRPCMessage, JSONRPCMessageSchema } from '../json-rpc-message';\nimport { MCPTransport } from '../mcp-transport';\nimport { MCPClientError } from '../../error/mcp-client-error';\nimport { createChildProcess } from './create-child-process';\n\nexport interface StdioConfig {\n command: string;\n args?: string[];\n env?: Record<string, string>;\n stderr?: IOType | Stream | number;\n cwd?: string;\n}\n\nexport class StdioMCPTransport implements MCPTransport {\n private process?: ChildProcess;\n private abortController: AbortController = new AbortController();\n private readBuffer: ReadBuffer = new ReadBuffer();\n private serverParams: StdioConfig;\n\n onclose?: () => void;\n onerror?: (error: unknown) => void;\n onmessage?: (message: JSONRPCMessage) => void;\n\n constructor(server: StdioConfig) {\n this.serverParams = server;\n }\n\n async start(): Promise<void> {\n if (this.process) {\n throw new MCPClientError({\n message: 'StdioMCPTransport already started.',\n });\n }\n\n return new Promise((resolve, reject) => {\n try {\n const process = createChildProcess(\n this.serverParams,\n this.abortController.signal,\n );\n\n this.process = process;\n\n this.process.on('error', error => {\n if (error.name === 'AbortError') {\n this.onclose?.();\n return;\n }\n\n reject(error);\n this.onerror?.(error);\n });\n\n this.process.on('spawn', () => {\n resolve();\n });\n\n this.process.on('close', _code => {\n this.process = undefined;\n this.onclose?.();\n });\n\n this.process.stdin?.on('error', error => {\n this.onerror?.(error);\n });\n\n this.process.stdout?.on('data', chunk => {\n this.readBuffer.append(chunk);\n this.processReadBuffer();\n });\n\n this.process.stdout?.on('error', error => {\n this.onerror?.(error);\n });\n } catch (error) {\n reject(error);\n this.onerror?.(error);\n }\n });\n }\n\n private processReadBuffer() {\n while (true) {\n try {\n const message = this.readBuffer.readMessage();\n if (message === null) {\n break;\n }\n\n this.onmessage?.(message);\n } catch (error) {\n this.onerror?.(error as Error);\n }\n }\n }\n\n async close(): Promise<void> {\n this.abortController.abort();\n this.process = undefined;\n this.readBuffer.clear();\n }\n\n send(message: JSONRPCMessage): Promise<void> {\n return new Promise(resolve => {\n if (!this.process?.stdin) {\n throw new MCPClientError({\n message: 'StdioClientTransport not connected',\n });\n }\n\n const json = serializeMessage(message);\n if (this.process.stdin.write(json)) {\n resolve();\n } else {\n this.process.stdin.once('drain', resolve);\n }\n });\n }\n}\n\nclass ReadBuffer {\n private buffer?: Buffer;\n\n append(chunk: Buffer): void {\n this.buffer = this.buffer ? Buffer.concat([this.buffer, chunk]) : chunk;\n }\n\n readMessage(): JSONRPCMessage | null {\n if (!this.buffer) return null;\n\n const index = this.buffer.indexOf('\\n');\n if (index === -1) {\n return null;\n }\n\n const line = this.buffer.toString('utf8', 0, index);\n this.buffer = this.buffer.subarray(index + 1);\n return deserializeMessage(line);\n }\n\n clear(): void {\n this.buffer = undefined;\n }\n}\n\nfunction serializeMessage(message: JSONRPCMessage): string {\n return JSON.stringify(message) + '\\n';\n}\n\nexport function deserializeMessage(line: string): JSONRPCMessage {\n return JSONRPCMessageSchema.parse(JSON.parse(line));\n}\n"],"mappings":"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","names":["import_v4","name","_a","_b","_a","_b"]}
|
|
1
|
+
{"version":3,"sources":["../../src/tool/json-rpc-message.ts","../../src/tool/types.ts","../../src/error/mcp-client-error.ts","../../src/tool/mcp-stdio/create-child-process.ts","../../src/tool/mcp-stdio/get-environment.ts","../../src/tool/mcp-stdio/mcp-stdio-transport.ts"],"sourcesContent":["import { z } from 'zod/v4';\nimport { BaseParamsSchema, RequestSchema, ResultSchema } from './types';\n\nconst JSONRPC_VERSION = '2.0';\n\nconst JSONRPCRequestSchema = z\n .object({\n jsonrpc: z.literal(JSONRPC_VERSION),\n id: z.union([z.string(), z.number().int()]),\n })\n .merge(RequestSchema)\n .strict();\n\nexport type JSONRPCRequest = z.infer<typeof JSONRPCRequestSchema>;\n\nconst JSONRPCResponseSchema = z\n .object({\n jsonrpc: z.literal(JSONRPC_VERSION),\n id: z.union([z.string(), z.number().int()]),\n result: ResultSchema,\n })\n .strict();\n\nexport type JSONRPCResponse = z.infer<typeof JSONRPCResponseSchema>;\n\nconst JSONRPCErrorSchema = z\n .object({\n jsonrpc: z.literal(JSONRPC_VERSION),\n id: z.union([z.string(), z.number().int()]),\n error: z.object({\n code: z.number().int(),\n message: z.string(),\n data: z.optional(z.unknown()),\n }),\n })\n .strict();\n\nexport type JSONRPCError = z.infer<typeof JSONRPCErrorSchema>;\n\nconst JSONRPCNotificationSchema = z\n .object({\n jsonrpc: z.literal(JSONRPC_VERSION),\n })\n .merge(\n z.object({\n method: z.string(),\n params: z.optional(BaseParamsSchema),\n }),\n )\n .strict();\n\nexport type JSONRPCNotification = z.infer<typeof JSONRPCNotificationSchema>;\n\nexport const JSONRPCMessageSchema = z.union([\n JSONRPCRequestSchema,\n JSONRPCNotificationSchema,\n JSONRPCResponseSchema,\n JSONRPCErrorSchema,\n]);\n\nexport type JSONRPCMessage = z.infer<typeof JSONRPCMessageSchema>;\n","import { z } from 'zod/v4';\nimport { JSONObject } from '@ai-sdk/provider';\nimport { FlexibleSchema, Tool } from '@ai-sdk/provider-utils';\n\nexport const LATEST_PROTOCOL_VERSION = '2025-11-25';\nexport const SUPPORTED_PROTOCOL_VERSIONS = [\n LATEST_PROTOCOL_VERSION,\n '2025-06-18',\n '2025-03-26',\n '2024-11-05',\n];\n\n/** MCP tool metadata - keys should follow MCP _meta key format specification */\nconst ToolMetaSchema = z.optional(z.record(z.string(), z.unknown()));\nexport type ToolMeta = z.infer<typeof ToolMetaSchema>;\n\nexport type ToolSchemas =\n | Record<\n string,\n {\n inputSchema: FlexibleSchema<JSONObject | unknown>;\n outputSchema?: FlexibleSchema<JSONObject | unknown>;\n }\n >\n | 'automatic'\n | undefined;\n\n/** Base MCP tool type with execute and _meta */\ntype McpToolBase<INPUT = unknown, OUTPUT = CallToolResult> = Tool<\n INPUT,\n OUTPUT\n> &\n Required<Pick<Tool<INPUT, OUTPUT>, 'execute'>> & {\n _meta?: ToolMeta;\n };\n\nexport type McpToolSet<TOOL_SCHEMAS extends ToolSchemas = 'automatic'> =\n TOOL_SCHEMAS extends Record<\n string,\n { inputSchema: FlexibleSchema<any>; outputSchema?: FlexibleSchema<any> }\n >\n ? {\n [K in keyof TOOL_SCHEMAS]: TOOL_SCHEMAS[K] extends {\n inputSchema: FlexibleSchema<infer INPUT>;\n outputSchema: FlexibleSchema<infer OUTPUT>;\n }\n ? McpToolBase<INPUT, OUTPUT>\n : TOOL_SCHEMAS[K] extends {\n inputSchema: FlexibleSchema<infer INPUT>;\n }\n ? McpToolBase<INPUT, CallToolResult>\n : never;\n }\n : Record<string, McpToolBase<unknown, CallToolResult>>;\n\nconst ClientOrServerImplementationSchema = z.looseObject({\n name: z.string(),\n version: z.string(),\n title: z.optional(z.string()),\n});\n\n// Maps to `Implementation` in the MCP specification\nexport type Configuration = z.infer<typeof ClientOrServerImplementationSchema>;\n\nexport const BaseParamsSchema = z.looseObject({\n _meta: z.optional(z.object({}).loose()),\n});\ntype BaseParams = z.infer<typeof BaseParamsSchema>;\nexport const ResultSchema = BaseParamsSchema;\n\nexport const RequestSchema = z.object({\n method: z.string(),\n params: z.optional(BaseParamsSchema),\n});\nexport type Request = z.infer<typeof RequestSchema>;\nexport type RequestOptions = {\n signal?: AbortSignal;\n timeout?: number;\n maxTotalTimeout?: number;\n};\n\nexport type Notification = z.infer<typeof RequestSchema>;\n\n/** @see https://modelcontextprotocol.io/specification/2025-06-18/client/elicitation */\nconst ElicitationCapabilitySchema = z\n .object({\n applyDefaults: z.optional(z.boolean()),\n })\n .loose();\n\nconst ServerCapabilitiesSchema = z.looseObject({\n experimental: z.optional(z.object({}).loose()),\n logging: z.optional(z.object({}).loose()),\n prompts: z.optional(\n z.looseObject({\n listChanged: z.optional(z.boolean()),\n }),\n ),\n resources: z.optional(\n z.looseObject({\n subscribe: z.optional(z.boolean()),\n listChanged: z.optional(z.boolean()),\n }),\n ),\n tools: z.optional(\n z.looseObject({\n listChanged: z.optional(z.boolean()),\n }),\n ),\n elicitation: z.optional(ElicitationCapabilitySchema),\n});\n\nexport type ServerCapabilities = z.infer<typeof ServerCapabilitiesSchema>;\nexport const ClientCapabilitiesSchema = z\n .object({\n elicitation: z.optional(ElicitationCapabilitySchema),\n })\n .loose();\n\nexport type ClientCapabilities = z.infer<typeof ClientCapabilitiesSchema>;\nexport type ElicitationCapability = z.infer<typeof ElicitationCapabilitySchema>;\n\nexport const InitializeResultSchema = ResultSchema.extend({\n protocolVersion: z.string(),\n capabilities: ServerCapabilitiesSchema,\n serverInfo: ClientOrServerImplementationSchema,\n instructions: z.optional(z.string()),\n});\nexport type InitializeResult = z.infer<typeof InitializeResultSchema>;\n\nexport type PaginatedRequest = Request & {\n params?: BaseParams & {\n cursor?: string;\n };\n};\n\nconst PaginatedResultSchema = ResultSchema.extend({\n nextCursor: z.optional(z.string()),\n});\n\nconst ToolSchema = z\n .object({\n name: z.string(),\n /**\n * @see https://modelcontextprotocol.io/specification/2025-11-25/server/tools#tool\n */\n title: z.optional(z.string()),\n description: z.optional(z.string()),\n inputSchema: z\n .object({\n type: z.literal('object'),\n properties: z.optional(z.object({}).loose()),\n })\n .loose(),\n /**\n * @see https://modelcontextprotocol.io/specification/2025-06-18/server/tools#output-schema\n */\n outputSchema: z.optional(z.object({}).loose()),\n annotations: z.optional(\n z\n .object({\n title: z.optional(z.string()),\n })\n .loose(),\n ),\n _meta: ToolMetaSchema,\n })\n .loose();\nexport type MCPTool = z.infer<typeof ToolSchema>;\nexport const ListToolsResultSchema = PaginatedResultSchema.extend({\n tools: z.array(ToolSchema),\n});\nexport type ListToolsResult = z.infer<typeof ListToolsResultSchema>;\n\nconst TextContentSchema = z\n .object({\n type: z.literal('text'),\n text: z.string(),\n })\n .loose();\nconst ImageContentSchema = z\n .object({\n type: z.literal('image'),\n data: z.base64(),\n mimeType: z.string(),\n })\n .loose();\nexport const ResourceSchema = z\n .object({\n uri: z.string(),\n name: z.string(),\n title: z.optional(z.string()),\n description: z.optional(z.string()),\n mimeType: z.optional(z.string()),\n size: z.optional(z.number()),\n })\n .loose();\nexport type MCPResource = z.infer<typeof ResourceSchema>;\n\nexport const ListResourcesResultSchema = PaginatedResultSchema.extend({\n resources: z.array(ResourceSchema),\n});\nexport type ListResourcesResult = z.infer<typeof ListResourcesResultSchema>;\n\nconst ResourceContentsSchema = z\n .object({\n /**\n * The URI of this resource.\n */\n uri: z.string(),\n /**\n * Optional display name of the resource content.\n */\n name: z.optional(z.string()),\n /**\n * Optional human readable title.\n */\n title: z.optional(z.string()),\n /**\n * The MIME type of this resource, if known.\n */\n mimeType: z.optional(z.string()),\n })\n .loose();\nconst TextResourceContentsSchema = ResourceContentsSchema.extend({\n text: z.string(),\n});\nconst BlobResourceContentsSchema = ResourceContentsSchema.extend({\n blob: z.base64(),\n});\nconst EmbeddedResourceSchema = z\n .object({\n type: z.literal('resource'),\n resource: z.union([TextResourceContentsSchema, BlobResourceContentsSchema]),\n })\n .loose();\n\nexport const CallToolResultSchema = ResultSchema.extend({\n content: z.array(\n z.union([TextContentSchema, ImageContentSchema, EmbeddedResourceSchema]),\n ),\n /**\n * @see https://modelcontextprotocol.io/specification/2025-06-18/server/tools#structured-content\n */\n structuredContent: z.optional(z.unknown()),\n isError: z.boolean().default(false).optional(),\n}).or(\n ResultSchema.extend({\n toolResult: z.unknown(),\n }),\n);\nexport type CallToolResult = z.infer<typeof CallToolResultSchema>;\n\nconst ResourceTemplateSchema = z\n .object({\n uriTemplate: z.string(),\n name: z.string(),\n title: z.optional(z.string()),\n description: z.optional(z.string()),\n mimeType: z.optional(z.string()),\n })\n .loose();\n\nexport const ListResourceTemplatesResultSchema = ResultSchema.extend({\n resourceTemplates: z.array(ResourceTemplateSchema),\n});\nexport type ListResourceTemplatesResult = z.infer<\n typeof ListResourceTemplatesResultSchema\n>;\n\nexport const ReadResourceResultSchema = ResultSchema.extend({\n contents: z.array(\n z.union([TextResourceContentsSchema, BlobResourceContentsSchema]),\n ),\n});\nexport type ReadResourceResult = z.infer<typeof ReadResourceResultSchema>;\n\n// Prompts\nconst PromptArgumentSchema = z\n .object({\n name: z.string(),\n description: z.optional(z.string()),\n required: z.optional(z.boolean()),\n })\n .loose();\n\nexport const PromptSchema = z\n .object({\n name: z.string(),\n title: z.optional(z.string()),\n description: z.optional(z.string()),\n arguments: z.optional(z.array(PromptArgumentSchema)),\n })\n .loose();\nexport type MCPPrompt = z.infer<typeof PromptSchema>;\n\nexport const ListPromptsResultSchema = PaginatedResultSchema.extend({\n prompts: z.array(PromptSchema),\n});\nexport type ListPromptsResult = z.infer<typeof ListPromptsResultSchema>;\n\nconst PromptMessageSchema = z\n .object({\n role: z.union([z.literal('user'), z.literal('assistant')]),\n content: z.union([\n TextContentSchema,\n ImageContentSchema,\n EmbeddedResourceSchema,\n ]),\n })\n .loose();\nexport type MCPPromptMessage = z.infer<typeof PromptMessageSchema>;\n\nexport const GetPromptResultSchema = ResultSchema.extend({\n description: z.optional(z.string()),\n messages: z.array(PromptMessageSchema),\n});\nexport type GetPromptResult = z.infer<typeof GetPromptResultSchema>;\n\nconst ElicitationRequestParamsSchema = BaseParamsSchema.extend({\n message: z.string(),\n requestedSchema: z.unknown(),\n});\n\nexport const ElicitationRequestSchema = RequestSchema.extend({\n method: z.literal('elicitation/create'),\n params: ElicitationRequestParamsSchema,\n});\n\nexport type ElicitationRequest = z.infer<typeof ElicitationRequestSchema>;\n\nexport const ElicitResultSchema = ResultSchema.extend({\n action: z.union([\n z.literal('accept'),\n z.literal('decline'),\n z.literal('cancel'),\n ]),\n content: z.optional(z.record(z.string(), z.unknown())),\n});\n\nexport type ElicitResult = z.infer<typeof ElicitResultSchema>;\n","import { AISDKError } from '@ai-sdk/provider';\n\nconst name = 'AI_MCPClientError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\n/**\n * An error occurred with the MCP client.\n */\nexport class MCPClientError extends AISDKError {\n private readonly [symbol] = true;\n readonly data?: unknown;\n readonly code?: number;\n\n constructor({\n name = 'MCPClientError',\n message,\n cause,\n data,\n code,\n }: {\n name?: string;\n message: string;\n cause?: unknown;\n data?: unknown;\n code?: number;\n }) {\n super({ name, message, cause });\n this.data = data;\n this.code = code;\n }\n\n static isInstance(error: unknown): error is MCPClientError {\n return AISDKError.hasMarker(error, marker);\n }\n}\n","import { ChildProcess, spawn } from 'node:child_process';\nimport { getEnvironment } from './get-environment';\nimport { StdioConfig } from './mcp-stdio-transport';\n\nexport function createChildProcess(\n config: StdioConfig,\n signal: AbortSignal,\n): ChildProcess {\n return spawn(config.command, config.args ?? [], {\n env: getEnvironment(config.env),\n stdio: ['pipe', 'pipe', config.stderr ?? 'inherit'],\n shell: false,\n signal,\n windowsHide: globalThis.process.platform === 'win32' && isElectron(),\n cwd: config.cwd,\n });\n}\n\nfunction isElectron() {\n return 'type' in globalThis.process;\n}\n","/**\n * Constructs the environment variables for the child process.\n *\n * @param customEnv - Custom environment variables to merge with default environment variables.\n * @returns The environment variables for the child process.\n */\nexport function getEnvironment(\n customEnv?: Record<string, string>,\n): Record<string, string> {\n const DEFAULT_INHERITED_ENV_VARS =\n globalThis.process.platform === 'win32'\n ? [\n 'APPDATA',\n 'HOMEDRIVE',\n 'HOMEPATH',\n 'LOCALAPPDATA',\n 'PATH',\n 'PROCESSOR_ARCHITECTURE',\n 'SYSTEMDRIVE',\n 'SYSTEMROOT',\n 'TEMP',\n 'USERNAME',\n 'USERPROFILE',\n ]\n : ['HOME', 'LOGNAME', 'PATH', 'SHELL', 'TERM', 'USER'];\n\n const env: Record<string, string> = customEnv ? { ...customEnv } : {};\n\n for (const key of DEFAULT_INHERITED_ENV_VARS) {\n const value = globalThis.process.env[key];\n if (value === undefined) {\n continue;\n }\n\n if (value.startsWith('()')) {\n continue;\n }\n\n env[key] = value;\n }\n\n return env;\n}\n","import type { ChildProcess, IOType } from 'node:child_process';\nimport { Stream } from 'node:stream';\nimport { JSONRPCMessage, JSONRPCMessageSchema } from '../json-rpc-message';\nimport { MCPTransport } from '../mcp-transport';\nimport { MCPClientError } from '../../error/mcp-client-error';\nimport { createChildProcess } from './create-child-process';\n\nexport interface StdioConfig {\n command: string;\n args?: string[];\n env?: Record<string, string>;\n stderr?: IOType | Stream | number;\n cwd?: string;\n}\n\nexport class StdioMCPTransport implements MCPTransport {\n private process?: ChildProcess;\n private abortController: AbortController = new AbortController();\n private readBuffer: ReadBuffer = new ReadBuffer();\n private serverParams: StdioConfig;\n\n onclose?: () => void;\n onerror?: (error: unknown) => void;\n onmessage?: (message: JSONRPCMessage) => void;\n\n constructor(server: StdioConfig) {\n this.serverParams = server;\n }\n\n async start(): Promise<void> {\n if (this.process) {\n throw new MCPClientError({\n message: 'StdioMCPTransport already started.',\n });\n }\n\n return new Promise((resolve, reject) => {\n try {\n const process = createChildProcess(\n this.serverParams,\n this.abortController.signal,\n );\n\n this.process = process;\n\n this.process.on('error', error => {\n if (error.name === 'AbortError') {\n this.onclose?.();\n return;\n }\n\n reject(error);\n this.onerror?.(error);\n });\n\n this.process.on('spawn', () => {\n resolve();\n });\n\n this.process.on('close', _code => {\n this.process = undefined;\n this.onclose?.();\n });\n\n this.process.stdin?.on('error', error => {\n this.onerror?.(error);\n });\n\n this.process.stdout?.on('data', chunk => {\n this.readBuffer.append(chunk);\n this.processReadBuffer();\n });\n\n this.process.stdout?.on('error', error => {\n this.onerror?.(error);\n });\n } catch (error) {\n reject(error);\n this.onerror?.(error);\n }\n });\n }\n\n private processReadBuffer() {\n while (true) {\n try {\n const message = this.readBuffer.readMessage();\n if (message === null) {\n break;\n }\n\n this.onmessage?.(message);\n } catch (error) {\n this.onerror?.(error as Error);\n }\n }\n }\n\n async close(): Promise<void> {\n this.abortController.abort();\n this.process = undefined;\n this.readBuffer.clear();\n }\n\n send(message: JSONRPCMessage): Promise<void> {\n return new Promise(resolve => {\n if (!this.process?.stdin) {\n throw new MCPClientError({\n message: 'StdioClientTransport not connected',\n });\n }\n\n const json = serializeMessage(message);\n if (this.process.stdin.write(json)) {\n resolve();\n } else {\n this.process.stdin.once('drain', resolve);\n }\n });\n }\n}\n\nclass ReadBuffer {\n private buffer?: Buffer;\n\n append(chunk: Buffer): void {\n this.buffer = this.buffer ? Buffer.concat([this.buffer, chunk]) : chunk;\n }\n\n readMessage(): JSONRPCMessage | null {\n if (!this.buffer) return null;\n\n const index = this.buffer.indexOf('\\n');\n if (index === -1) {\n return null;\n }\n\n const line = this.buffer.toString('utf8', 0, index);\n this.buffer = this.buffer.subarray(index + 1);\n return deserializeMessage(line);\n }\n\n clear(): void {\n this.buffer = undefined;\n }\n}\n\nfunction serializeMessage(message: JSONRPCMessage): string {\n return JSON.stringify(message) + '\\n';\n}\n\nexport function deserializeMessage(line: string): JSONRPCMessage {\n return JSONRPCMessageSchema.parse(JSON.parse(line));\n}\n"],"mappings":"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","names":["z","z","name","_a","_b","_a","_b"]}
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ai-sdk/mcp",
|
|
3
|
-
"version": "2.0.0-beta.
|
|
3
|
+
"version": "2.0.0-beta.30",
|
|
4
|
+
"type": "module",
|
|
4
5
|
"license": "Apache-2.0",
|
|
5
6
|
"sideEffects": false,
|
|
6
7
|
"main": "./dist/index.js",
|
|
7
|
-
"module": "./dist/index.mjs",
|
|
8
8
|
"types": "./dist/index.d.ts",
|
|
9
9
|
"files": [
|
|
10
10
|
"dist/**/*",
|
|
@@ -21,28 +21,27 @@
|
|
|
21
21
|
"./package.json": "./package.json",
|
|
22
22
|
".": {
|
|
23
23
|
"types": "./dist/index.d.ts",
|
|
24
|
-
"import": "./dist/index.
|
|
25
|
-
"
|
|
24
|
+
"import": "./dist/index.js",
|
|
25
|
+
"default": "./dist/index.js"
|
|
26
26
|
},
|
|
27
27
|
"./mcp-stdio": {
|
|
28
28
|
"types": "./dist/mcp-stdio/index.d.ts",
|
|
29
|
-
"import": "./dist/mcp-stdio/index.
|
|
30
|
-
"
|
|
31
|
-
"require": "./dist/mcp-stdio/index.js"
|
|
29
|
+
"import": "./dist/mcp-stdio/index.js",
|
|
30
|
+
"default": "./dist/mcp-stdio/index.js"
|
|
32
31
|
}
|
|
33
32
|
},
|
|
34
33
|
"dependencies": {
|
|
35
34
|
"pkce-challenge": "^5.0.0",
|
|
36
|
-
"@ai-sdk/provider": "4.0.0-beta.
|
|
37
|
-
"@ai-sdk/provider-utils": "5.0.0-beta.
|
|
35
|
+
"@ai-sdk/provider": "4.0.0-beta.12",
|
|
36
|
+
"@ai-sdk/provider-utils": "5.0.0-beta.23"
|
|
38
37
|
},
|
|
39
38
|
"devDependencies": {
|
|
40
39
|
"@types/node": "20.17.24",
|
|
41
40
|
"tsup": "^8",
|
|
42
41
|
"typescript": "5.8.3",
|
|
43
|
-
"vitest": "
|
|
42
|
+
"vitest": "^4.1.0",
|
|
44
43
|
"zod": "3.25.76",
|
|
45
|
-
"@ai-sdk/test-server": "2.0.0-beta.
|
|
44
|
+
"@ai-sdk/test-server": "2.0.0-beta.1",
|
|
46
45
|
"@vercel/ai-tsconfig": "0.0.0"
|
|
47
46
|
},
|
|
48
47
|
"peerDependencies": {
|
|
@@ -70,9 +69,7 @@
|
|
|
70
69
|
"build": "pnpm clean && tsup --tsconfig tsconfig.build.json",
|
|
71
70
|
"build:watch": "pnpm clean && tsup --watch",
|
|
72
71
|
"clean": "rm -rf dist *.tsbuildinfo",
|
|
73
|
-
"lint": "eslint \"./**/*.ts*\"",
|
|
74
72
|
"type-check": "tsc --build",
|
|
75
|
-
"prettier-check": "prettier --check \"./**/*.ts*\"",
|
|
76
73
|
"test": "pnpm test:node && pnpm test:edge",
|
|
77
74
|
"test:update": "pnpm test:node -u",
|
|
78
75
|
"test:watch": "vitest --config vitest.node.config.js",
|