@ai-sdk/mcp 1.0.33 → 1.0.35
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 +12 -0
- package/dist/index.d.mts +6 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +22 -11
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +22 -11
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/tool/mcp-client.ts +4 -0
- package/src/tool/mcp-http-transport.ts +10 -3
- package/src/tool/mcp-sse-transport.ts +9 -2
- package/src/tool/mcp-transport.ts +8 -0
package/dist/index.mjs
CHANGED
|
@@ -1053,13 +1053,15 @@ var SseMCPTransport = class {
|
|
|
1053
1053
|
url,
|
|
1054
1054
|
headers,
|
|
1055
1055
|
authProvider,
|
|
1056
|
-
redirect = "follow"
|
|
1056
|
+
redirect = "follow",
|
|
1057
|
+
fetch: fetchFn
|
|
1057
1058
|
}) {
|
|
1058
1059
|
this.connected = false;
|
|
1059
1060
|
this.url = new URL(url);
|
|
1060
1061
|
this.headers = headers;
|
|
1061
1062
|
this.authProvider = authProvider;
|
|
1062
1063
|
this.redirectMode = redirect;
|
|
1064
|
+
this.fetchFn = fetchFn != null ? fetchFn : globalThis.fetch;
|
|
1063
1065
|
}
|
|
1064
1066
|
async commonHeaders(base) {
|
|
1065
1067
|
const headers = {
|
|
@@ -1091,7 +1093,7 @@ var SseMCPTransport = class {
|
|
|
1091
1093
|
const headers = await this.commonHeaders({
|
|
1092
1094
|
Accept: "text/event-stream"
|
|
1093
1095
|
});
|
|
1094
|
-
const response = await
|
|
1096
|
+
const response = await this.fetchFn(this.url.href, {
|
|
1095
1097
|
headers,
|
|
1096
1098
|
signal: (_a3 = this.abortController) == null ? void 0 : _a3.signal,
|
|
1097
1099
|
redirect: this.redirectMode
|
|
@@ -1101,7 +1103,8 @@ var SseMCPTransport = class {
|
|
|
1101
1103
|
try {
|
|
1102
1104
|
const result = await auth(this.authProvider, {
|
|
1103
1105
|
serverUrl: this.url,
|
|
1104
|
-
resourceMetadataUrl: this.resourceMetadataUrl
|
|
1106
|
+
resourceMetadataUrl: this.resourceMetadataUrl,
|
|
1107
|
+
fetchFn: this.fetchFn
|
|
1105
1108
|
});
|
|
1106
1109
|
if (result !== "AUTHORIZED") {
|
|
1107
1110
|
const error = new UnauthorizedError();
|
|
@@ -1216,13 +1219,14 @@ var SseMCPTransport = class {
|
|
|
1216
1219
|
signal: (_a3 = this.abortController) == null ? void 0 : _a3.signal,
|
|
1217
1220
|
redirect: this.redirectMode
|
|
1218
1221
|
};
|
|
1219
|
-
const response = await
|
|
1222
|
+
const response = await this.fetchFn(endpoint.href, init);
|
|
1220
1223
|
if (response.status === 401 && this.authProvider && !triedAuth) {
|
|
1221
1224
|
this.resourceMetadataUrl = extractResourceMetadataUrl(response);
|
|
1222
1225
|
try {
|
|
1223
1226
|
const result = await auth(this.authProvider, {
|
|
1224
1227
|
serverUrl: this.url,
|
|
1225
|
-
resourceMetadataUrl: this.resourceMetadataUrl
|
|
1228
|
+
resourceMetadataUrl: this.resourceMetadataUrl,
|
|
1229
|
+
fetchFn: this.fetchFn
|
|
1226
1230
|
});
|
|
1227
1231
|
if (result !== "AUTHORIZED") {
|
|
1228
1232
|
const error = new UnauthorizedError();
|
|
@@ -1263,7 +1267,8 @@ var HttpMCPTransport = class {
|
|
|
1263
1267
|
url,
|
|
1264
1268
|
headers,
|
|
1265
1269
|
authProvider,
|
|
1266
|
-
redirect = "follow"
|
|
1270
|
+
redirect = "follow",
|
|
1271
|
+
fetch: fetchFn
|
|
1267
1272
|
}) {
|
|
1268
1273
|
this.inboundReconnectAttempts = 0;
|
|
1269
1274
|
this.reconnectionOptions = {
|
|
@@ -1276,6 +1281,7 @@ var HttpMCPTransport = class {
|
|
|
1276
1281
|
this.headers = headers;
|
|
1277
1282
|
this.authProvider = authProvider;
|
|
1278
1283
|
this.redirectMode = redirect;
|
|
1284
|
+
this.fetchFn = fetchFn != null ? fetchFn : globalThis.fetch;
|
|
1279
1285
|
}
|
|
1280
1286
|
async commonHeaders(base) {
|
|
1281
1287
|
const headers = {
|
|
@@ -1313,7 +1319,7 @@ var HttpMCPTransport = class {
|
|
|
1313
1319
|
try {
|
|
1314
1320
|
if (this.sessionId && this.abortController && !this.abortController.signal.aborted) {
|
|
1315
1321
|
const headers = await this.commonHeaders({});
|
|
1316
|
-
await
|
|
1322
|
+
await this.fetchFn(this.url.href, {
|
|
1317
1323
|
method: "DELETE",
|
|
1318
1324
|
headers,
|
|
1319
1325
|
signal: this.abortController.signal,
|
|
@@ -1340,7 +1346,7 @@ var HttpMCPTransport = class {
|
|
|
1340
1346
|
signal: (_a3 = this.abortController) == null ? void 0 : _a3.signal,
|
|
1341
1347
|
redirect: this.redirectMode
|
|
1342
1348
|
};
|
|
1343
|
-
const response = await
|
|
1349
|
+
const response = await this.fetchFn(this.url.href, init);
|
|
1344
1350
|
const sessionId = response.headers.get("mcp-session-id");
|
|
1345
1351
|
if (sessionId) {
|
|
1346
1352
|
this.sessionId = sessionId;
|
|
@@ -1350,7 +1356,8 @@ var HttpMCPTransport = class {
|
|
|
1350
1356
|
try {
|
|
1351
1357
|
const result = await auth(this.authProvider, {
|
|
1352
1358
|
serverUrl: this.url,
|
|
1353
|
-
resourceMetadataUrl: this.resourceMetadataUrl
|
|
1359
|
+
resourceMetadataUrl: this.resourceMetadataUrl,
|
|
1360
|
+
fetchFn: this.fetchFn
|
|
1354
1361
|
});
|
|
1355
1362
|
if (result !== "AUTHORIZED") {
|
|
1356
1363
|
const error2 = new UnauthorizedError();
|
|
@@ -1484,7 +1491,7 @@ var HttpMCPTransport = class {
|
|
|
1484
1491
|
if (resumeToken) {
|
|
1485
1492
|
headers["last-event-id"] = resumeToken;
|
|
1486
1493
|
}
|
|
1487
|
-
const response = await
|
|
1494
|
+
const response = await this.fetchFn(this.url.href, {
|
|
1488
1495
|
method: "GET",
|
|
1489
1496
|
headers,
|
|
1490
1497
|
signal: (_a3 = this.abortController) == null ? void 0 : _a3.signal,
|
|
@@ -1499,7 +1506,8 @@ var HttpMCPTransport = class {
|
|
|
1499
1506
|
try {
|
|
1500
1507
|
const result = await auth(this.authProvider, {
|
|
1501
1508
|
serverUrl: this.url,
|
|
1502
|
-
resourceMetadataUrl: this.resourceMetadataUrl
|
|
1509
|
+
resourceMetadataUrl: this.resourceMetadataUrl,
|
|
1510
|
+
fetchFn: this.fetchFn
|
|
1503
1511
|
});
|
|
1504
1512
|
if (result !== "AUTHORIZED") {
|
|
1505
1513
|
const error = new UnauthorizedError();
|
|
@@ -1934,6 +1942,9 @@ var DefaultMCPClient = class {
|
|
|
1934
1942
|
var _a4;
|
|
1935
1943
|
(_a4 = options == null ? void 0 : options.abortSignal) == null ? void 0 : _a4.throwIfAborted();
|
|
1936
1944
|
const result = await self.callTool({ name: name3, args, options });
|
|
1945
|
+
if (result.isError) {
|
|
1946
|
+
return result;
|
|
1947
|
+
}
|
|
1937
1948
|
if (outputSchema != null) {
|
|
1938
1949
|
return self.extractStructuredContent(result, outputSchema, name3);
|
|
1939
1950
|
}
|