@ai-sdk/mcp 1.0.42 → 1.0.43
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 +6 -0
- package/README.md +134 -0
- package/dist/index.js +20 -10
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +20 -10
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/tool/mcp-http-transport.ts +25 -10
package/dist/index.mjs
CHANGED
|
@@ -1325,6 +1325,24 @@ var HttpMCPTransport = class {
|
|
|
1325
1325
|
getRuntimeEnvironmentUserAgent2()
|
|
1326
1326
|
);
|
|
1327
1327
|
}
|
|
1328
|
+
/**
|
|
1329
|
+
* Runs a single OAuth recovery flow for concurrent 401 responses.
|
|
1330
|
+
*/
|
|
1331
|
+
authorizeOnce(resourceMetadataUrl) {
|
|
1332
|
+
if (!this.authProvider) {
|
|
1333
|
+
return Promise.resolve("REDIRECT");
|
|
1334
|
+
}
|
|
1335
|
+
if (!this.authPromise) {
|
|
1336
|
+
this.authPromise = auth(this.authProvider, {
|
|
1337
|
+
serverUrl: this.url,
|
|
1338
|
+
resourceMetadataUrl,
|
|
1339
|
+
fetchFn: this.fetchFn
|
|
1340
|
+
}).finally(() => {
|
|
1341
|
+
this.authPromise = void 0;
|
|
1342
|
+
});
|
|
1343
|
+
}
|
|
1344
|
+
return this.authPromise;
|
|
1345
|
+
}
|
|
1328
1346
|
async start() {
|
|
1329
1347
|
if (this.abortController) {
|
|
1330
1348
|
throw new MCPClientError({
|
|
@@ -1375,11 +1393,7 @@ var HttpMCPTransport = class {
|
|
|
1375
1393
|
if (response.status === 401 && this.authProvider && !triedAuth) {
|
|
1376
1394
|
this.resourceMetadataUrl = extractResourceMetadataUrl(response);
|
|
1377
1395
|
try {
|
|
1378
|
-
const result = await
|
|
1379
|
-
serverUrl: this.url,
|
|
1380
|
-
resourceMetadataUrl: this.resourceMetadataUrl,
|
|
1381
|
-
fetchFn: this.fetchFn
|
|
1382
|
-
});
|
|
1396
|
+
const result = await this.authorizeOnce(this.resourceMetadataUrl);
|
|
1383
1397
|
if (result !== "AUTHORIZED") {
|
|
1384
1398
|
const error2 = new UnauthorizedError();
|
|
1385
1399
|
throw error2;
|
|
@@ -1525,11 +1539,7 @@ var HttpMCPTransport = class {
|
|
|
1525
1539
|
if (response.status === 401 && this.authProvider && !triedAuth) {
|
|
1526
1540
|
this.resourceMetadataUrl = extractResourceMetadataUrl(response);
|
|
1527
1541
|
try {
|
|
1528
|
-
const result = await
|
|
1529
|
-
serverUrl: this.url,
|
|
1530
|
-
resourceMetadataUrl: this.resourceMetadataUrl,
|
|
1531
|
-
fetchFn: this.fetchFn
|
|
1532
|
-
});
|
|
1542
|
+
const result = await this.authorizeOnce(this.resourceMetadataUrl);
|
|
1533
1543
|
if (result !== "AUTHORIZED") {
|
|
1534
1544
|
const error = new UnauthorizedError();
|
|
1535
1545
|
(_b3 = this.onerror) == null ? void 0 : _b3.call(this, error);
|