@ai-sdk/mcp 2.0.0-beta.4 → 2.0.0-beta.6
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 +14 -0
- package/dist/index.d.mts +7 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +16 -7
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +16 -7
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -3
- package/src/tool/mcp-http-transport.ts +7 -0
- package/src/tool/mcp-sse-transport.ts +6 -0
- package/src/tool/mcp-transport.ts +8 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# @ai-sdk/mcp
|
|
2
2
|
|
|
3
|
+
## 2.0.0-beta.6
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 58c9eb1: feat(mcp): add `redirect` option to `MCPTransportConfig` for controlling HTTP redirect behavior
|
|
8
|
+
|
|
9
|
+
## 2.0.0-beta.5
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- Updated dependencies [f7d4f01]
|
|
14
|
+
- @ai-sdk/provider-utils@5.0.0-beta.3
|
|
15
|
+
- @ai-sdk/provider@4.0.0-beta.2
|
|
16
|
+
|
|
3
17
|
## 2.0.0-beta.4
|
|
4
18
|
|
|
5
19
|
### Patch Changes
|
package/dist/index.d.mts
CHANGED
|
@@ -243,6 +243,13 @@ type MCPTransportConfig = {
|
|
|
243
243
|
* An optional OAuth client provider to use for authentication for MCP servers.
|
|
244
244
|
*/
|
|
245
245
|
authProvider?: OAuthClientProvider;
|
|
246
|
+
/**
|
|
247
|
+
* Controls how HTTP redirects are handled for transport requests.
|
|
248
|
+
* - `'follow'`: Follow redirects automatically (standard fetch behavior).
|
|
249
|
+
* - `'error'`: Reject any redirect response with an error.
|
|
250
|
+
* @default 'follow'
|
|
251
|
+
*/
|
|
252
|
+
redirect?: 'follow' | 'error';
|
|
246
253
|
};
|
|
247
254
|
|
|
248
255
|
/** MCP tool metadata - keys should follow MCP _meta key format specification */
|
package/dist/index.d.ts
CHANGED
|
@@ -243,6 +243,13 @@ type MCPTransportConfig = {
|
|
|
243
243
|
* An optional OAuth client provider to use for authentication for MCP servers.
|
|
244
244
|
*/
|
|
245
245
|
authProvider?: OAuthClientProvider;
|
|
246
|
+
/**
|
|
247
|
+
* Controls how HTTP redirects are handled for transport requests.
|
|
248
|
+
* - `'follow'`: Follow redirects automatically (standard fetch behavior).
|
|
249
|
+
* - `'error'`: Reject any redirect response with an error.
|
|
250
|
+
* @default 'follow'
|
|
251
|
+
*/
|
|
252
|
+
redirect?: 'follow' | 'error';
|
|
246
253
|
};
|
|
247
254
|
|
|
248
255
|
/** MCP tool metadata - keys should follow MCP _meta key format specification */
|
package/dist/index.js
CHANGED
|
@@ -1072,12 +1072,14 @@ var SseMCPTransport = class {
|
|
|
1072
1072
|
constructor({
|
|
1073
1073
|
url,
|
|
1074
1074
|
headers,
|
|
1075
|
-
authProvider
|
|
1075
|
+
authProvider,
|
|
1076
|
+
redirect = "follow"
|
|
1076
1077
|
}) {
|
|
1077
1078
|
this.connected = false;
|
|
1078
1079
|
this.url = new URL(url);
|
|
1079
1080
|
this.headers = headers;
|
|
1080
1081
|
this.authProvider = authProvider;
|
|
1082
|
+
this.redirectMode = redirect;
|
|
1081
1083
|
}
|
|
1082
1084
|
async commonHeaders(base) {
|
|
1083
1085
|
const headers = {
|
|
@@ -1111,7 +1113,8 @@ var SseMCPTransport = class {
|
|
|
1111
1113
|
});
|
|
1112
1114
|
const response = await fetch(this.url.href, {
|
|
1113
1115
|
headers,
|
|
1114
|
-
signal: (_a3 = this.abortController) == null ? void 0 : _a3.signal
|
|
1116
|
+
signal: (_a3 = this.abortController) == null ? void 0 : _a3.signal,
|
|
1117
|
+
redirect: this.redirectMode
|
|
1115
1118
|
});
|
|
1116
1119
|
if (response.status === 401 && this.authProvider && !triedAuth) {
|
|
1117
1120
|
this.resourceMetadataUrl = extractResourceMetadataUrl(response);
|
|
@@ -1230,7 +1233,8 @@ var SseMCPTransport = class {
|
|
|
1230
1233
|
method: "POST",
|
|
1231
1234
|
headers,
|
|
1232
1235
|
body: JSON.stringify(message),
|
|
1233
|
-
signal: (_a3 = this.abortController) == null ? void 0 : _a3.signal
|
|
1236
|
+
signal: (_a3 = this.abortController) == null ? void 0 : _a3.signal,
|
|
1237
|
+
redirect: this.redirectMode
|
|
1234
1238
|
};
|
|
1235
1239
|
const response = await fetch(endpoint, init);
|
|
1236
1240
|
if (response.status === 401 && this.authProvider && !triedAuth) {
|
|
@@ -1274,7 +1278,8 @@ var HttpMCPTransport = class {
|
|
|
1274
1278
|
constructor({
|
|
1275
1279
|
url,
|
|
1276
1280
|
headers,
|
|
1277
|
-
authProvider
|
|
1281
|
+
authProvider,
|
|
1282
|
+
redirect = "follow"
|
|
1278
1283
|
}) {
|
|
1279
1284
|
this.inboundReconnectAttempts = 0;
|
|
1280
1285
|
this.reconnectionOptions = {
|
|
@@ -1286,6 +1291,7 @@ var HttpMCPTransport = class {
|
|
|
1286
1291
|
this.url = new URL(url);
|
|
1287
1292
|
this.headers = headers;
|
|
1288
1293
|
this.authProvider = authProvider;
|
|
1294
|
+
this.redirectMode = redirect;
|
|
1289
1295
|
}
|
|
1290
1296
|
async commonHeaders(base) {
|
|
1291
1297
|
const headers = {
|
|
@@ -1326,7 +1332,8 @@ var HttpMCPTransport = class {
|
|
|
1326
1332
|
await fetch(this.url, {
|
|
1327
1333
|
method: "DELETE",
|
|
1328
1334
|
headers,
|
|
1329
|
-
signal: this.abortController.signal
|
|
1335
|
+
signal: this.abortController.signal,
|
|
1336
|
+
redirect: this.redirectMode
|
|
1330
1337
|
}).catch(() => void 0);
|
|
1331
1338
|
}
|
|
1332
1339
|
} catch (e) {
|
|
@@ -1346,7 +1353,8 @@ var HttpMCPTransport = class {
|
|
|
1346
1353
|
method: "POST",
|
|
1347
1354
|
headers,
|
|
1348
1355
|
body: JSON.stringify(message),
|
|
1349
|
-
signal: (_a3 = this.abortController) == null ? void 0 : _a3.signal
|
|
1356
|
+
signal: (_a3 = this.abortController) == null ? void 0 : _a3.signal,
|
|
1357
|
+
redirect: this.redirectMode
|
|
1350
1358
|
};
|
|
1351
1359
|
const response = await fetch(this.url, init);
|
|
1352
1360
|
const sessionId = response.headers.get("mcp-session-id");
|
|
@@ -1495,7 +1503,8 @@ var HttpMCPTransport = class {
|
|
|
1495
1503
|
const response = await fetch(this.url.href, {
|
|
1496
1504
|
method: "GET",
|
|
1497
1505
|
headers,
|
|
1498
|
-
signal: (_a3 = this.abortController) == null ? void 0 : _a3.signal
|
|
1506
|
+
signal: (_a3 = this.abortController) == null ? void 0 : _a3.signal,
|
|
1507
|
+
redirect: this.redirectMode
|
|
1499
1508
|
});
|
|
1500
1509
|
const sessionId = response.headers.get("mcp-session-id");
|
|
1501
1510
|
if (sessionId) {
|