mcp-use 1.11.0-canary.9 → 1.11.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/dist/.tsbuildinfo +1 -1
- package/dist/{chunk-N3DO4P2L.js → chunk-A4QJRN7Z.js} +2 -2
- package/dist/{chunk-UCPSHMNO.js → chunk-B7AGEK7F.js} +1 -1
- package/dist/{chunk-HU2DGJ5J.js → chunk-GN5HOAV3.js} +491 -5
- package/dist/{chunk-D3CNYAYE.js → chunk-QPIDKGV4.js} +199 -8
- package/dist/{chunk-ZFZPZ4GE.js → chunk-V77WS6CS.js} +9 -0
- package/dist/{chunk-5QFJZ7H3.js → chunk-VRHAF2WT.js} +10 -4
- package/dist/{chunk-F3BZFJCD.js → chunk-Y2HHHJQB.js} +10 -5
- package/dist/{chunk-Q5LZL6BH.js → chunk-ZLZOOXMJ.js} +96 -43
- package/dist/index.cjs +122 -47
- package/dist/index.js +15 -19
- package/dist/src/agents/index.cjs +108 -44
- package/dist/src/agents/index.d.ts +1 -1
- package/dist/src/agents/index.d.ts.map +1 -1
- package/dist/src/agents/index.js +7 -11
- package/dist/src/agents/mcp_agent.d.ts.map +1 -1
- package/dist/src/{client/prompts.d.ts → agents/prompts/index.d.ts} +3 -3
- package/dist/src/agents/prompts/index.d.ts.map +1 -0
- package/dist/src/browser.cjs +115 -45
- package/dist/src/browser.js +10 -13
- package/dist/src/client/browser.d.ts.map +1 -1
- package/dist/src/client.cjs +108 -43
- package/dist/src/client.d.ts +2 -0
- package/dist/src/client.d.ts.map +1 -1
- package/dist/src/client.js +6 -5
- package/dist/src/config.d.ts.map +1 -1
- package/dist/src/connectors/http.d.ts +2 -0
- package/dist/src/connectors/http.d.ts.map +1 -1
- package/dist/src/react/index.cjs +119 -46
- package/dist/src/react/index.js +7 -8
- package/dist/src/react/useMcp.d.ts.map +1 -1
- package/dist/src/server/index.cjs +178 -113
- package/dist/src/server/index.js +92 -80
- package/dist/src/server/types/widget.d.ts +2 -2
- package/dist/src/server/types/widget.d.ts.map +1 -1
- package/dist/src/server/widgets/mount-widgets-dev.d.ts.map +1 -1
- package/dist/src/server/widgets/ui-resource-registration.d.ts.map +1 -1
- package/dist/src/telemetry/telemetry.d.ts +1 -0
- package/dist/src/telemetry/telemetry.d.ts.map +1 -1
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.d.ts.map +1 -1
- package/dist/{tool-execution-helpers-MXVN6YNU.js → tool-execution-helpers-ZUA5D5IO.js} +2 -2
- package/package.json +49 -52
- package/dist/chunk-ESMOFYJ6.js +0 -2638
- package/dist/chunk-M7WATKYM.js +0 -204
- package/dist/chunk-OWPXM4QQ.js +0 -12
- package/dist/chunk-WW3A2EKQ.js +0 -1055
- package/dist/chunk-XEFWIBQF.js +0 -491
- package/dist/src/client/prompts.cjs +0 -407
- package/dist/src/client/prompts.d.ts.map +0 -1
- package/dist/src/client/prompts.js +0 -11
package/dist/src/client.cjs
CHANGED
|
@@ -34,6 +34,7 @@ __export(client_exports, {
|
|
|
34
34
|
BaseCodeExecutor: () => BaseCodeExecutor,
|
|
35
35
|
E2BCodeExecutor: () => E2BCodeExecutor,
|
|
36
36
|
MCPClient: () => MCPClient,
|
|
37
|
+
MCPSession: () => MCPSession,
|
|
37
38
|
VMCodeExecutor: () => VMCodeExecutor,
|
|
38
39
|
isVMAvailable: () => isVMAvailable
|
|
39
40
|
});
|
|
@@ -941,13 +942,27 @@ function generateUUID() {
|
|
|
941
942
|
__name(generateUUID, "generateUUID");
|
|
942
943
|
|
|
943
944
|
// src/version.ts
|
|
944
|
-
var VERSION = "1.11.0
|
|
945
|
+
var VERSION = "1.11.0";
|
|
945
946
|
function getPackageVersion() {
|
|
946
947
|
return VERSION;
|
|
947
948
|
}
|
|
948
949
|
__name(getPackageVersion, "getPackageVersion");
|
|
949
950
|
|
|
950
951
|
// src/telemetry/telemetry.ts
|
|
952
|
+
function secureRandomString() {
|
|
953
|
+
if (typeof window !== "undefined" && window.crypto && typeof window.crypto.getRandomValues === "function") {
|
|
954
|
+
const array = new Uint8Array(8);
|
|
955
|
+
window.crypto.getRandomValues(array);
|
|
956
|
+
return Array.from(array, (v) => v.toString(16).padStart(2, "0")).join("");
|
|
957
|
+
}
|
|
958
|
+
try {
|
|
959
|
+
const crypto = require("crypto");
|
|
960
|
+
return crypto.randomBytes(8).toString("hex");
|
|
961
|
+
} catch (e) {
|
|
962
|
+
return Math.random().toString(36).substring(2, 15);
|
|
963
|
+
}
|
|
964
|
+
}
|
|
965
|
+
__name(secureRandomString, "secureRandomString");
|
|
951
966
|
var USER_ID_STORAGE_KEY = "mcp_use_user_id";
|
|
952
967
|
function detectRuntimeEnvironment() {
|
|
953
968
|
try {
|
|
@@ -1079,12 +1094,26 @@ var Telemetry = class _Telemetry {
|
|
|
1079
1094
|
"Anonymized telemetry enabled. Set MCP_USE_ANONYMIZED_TELEMETRY=false to disable."
|
|
1080
1095
|
);
|
|
1081
1096
|
this._posthogLoading = this._initPostHog();
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1097
|
+
if (this._runtimeEnvironment !== "browser") {
|
|
1098
|
+
try {
|
|
1099
|
+
this._scarfClient = new ScarfEventLogger(
|
|
1100
|
+
this.SCARF_GATEWAY_URL,
|
|
1101
|
+
3e3
|
|
1102
|
+
);
|
|
1103
|
+
} catch (e) {
|
|
1104
|
+
logger.warn(`Failed to initialize Scarf telemetry: ${e}`);
|
|
1105
|
+
this._scarfClient = null;
|
|
1106
|
+
}
|
|
1107
|
+
} else {
|
|
1086
1108
|
this._scarfClient = null;
|
|
1087
1109
|
}
|
|
1110
|
+
if (this._storageCapability === "filesystem" && this._scarfClient) {
|
|
1111
|
+
setTimeout(() => {
|
|
1112
|
+
this.trackPackageDownload({ triggered_by: "initialization" }).catch(
|
|
1113
|
+
(e) => logger.debug(`Failed to track package download: ${e}`)
|
|
1114
|
+
);
|
|
1115
|
+
}, 0);
|
|
1116
|
+
}
|
|
1088
1117
|
}
|
|
1089
1118
|
}
|
|
1090
1119
|
_checkTelemetryDisabled() {
|
|
@@ -1209,47 +1238,65 @@ var Telemetry = class _Telemetry {
|
|
|
1209
1238
|
break;
|
|
1210
1239
|
case "session-only":
|
|
1211
1240
|
default:
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1241
|
+
try {
|
|
1242
|
+
this._currUserId = `session-${generateUUID()}`;
|
|
1243
|
+
} catch (uuidError) {
|
|
1244
|
+
this._currUserId = `session-${Date.now()}-${Math.random().toString(36).substring(2, 15)}`;
|
|
1245
|
+
}
|
|
1216
1246
|
break;
|
|
1217
1247
|
}
|
|
1218
|
-
if (this._storageCapability === "filesystem" && this._currUserId) {
|
|
1219
|
-
this._trackPackageDownloadInternal(this._currUserId, {
|
|
1220
|
-
triggered_by: "user_id_property"
|
|
1221
|
-
}).catch((e) => logger.debug(`Failed to track package download: ${e}`));
|
|
1222
|
-
}
|
|
1223
1248
|
} catch (e) {
|
|
1224
|
-
logger.debug(`Failed to get/create user ID: ${e}`);
|
|
1225
1249
|
this._currUserId = this.UNKNOWN_USER_ID;
|
|
1226
1250
|
}
|
|
1227
1251
|
return this._currUserId;
|
|
1228
1252
|
}
|
|
1229
1253
|
/**
|
|
1230
1254
|
* Get or create user ID from filesystem (Node.js/Bun)
|
|
1255
|
+
* Falls back to session ID if filesystem operations fail
|
|
1231
1256
|
*/
|
|
1232
1257
|
_getUserIdFromFilesystem() {
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1258
|
+
try {
|
|
1259
|
+
let fs2, os, path2;
|
|
1260
|
+
try {
|
|
1261
|
+
fs2 = require("fs");
|
|
1262
|
+
os = require("os");
|
|
1263
|
+
path2 = require("path");
|
|
1264
|
+
} catch (requireError) {
|
|
1265
|
+
try {
|
|
1266
|
+
const sessionId = `session-${generateUUID()}`;
|
|
1267
|
+
return sessionId;
|
|
1268
|
+
} catch (uuidError) {
|
|
1269
|
+
return `session-${Date.now()}-${Math.random().toString(36).substring(2, 15)}`;
|
|
1270
|
+
}
|
|
1271
|
+
}
|
|
1272
|
+
if (!this._userIdPath) {
|
|
1273
|
+
this._userIdPath = path2.join(
|
|
1274
|
+
this._getCacheHome(os, path2),
|
|
1275
|
+
"mcp_use_3",
|
|
1276
|
+
"telemetry_user_id"
|
|
1277
|
+
);
|
|
1278
|
+
}
|
|
1279
|
+
const isFirstTime = !fs2.existsSync(this._userIdPath);
|
|
1280
|
+
if (isFirstTime) {
|
|
1281
|
+
fs2.mkdirSync(path2.dirname(this._userIdPath), { recursive: true });
|
|
1282
|
+
let newUserId;
|
|
1283
|
+
try {
|
|
1284
|
+
newUserId = generateUUID();
|
|
1285
|
+
} catch (uuidError) {
|
|
1286
|
+
newUserId = `${Date.now()}-${Math.random().toString(36).substring(2, 15)}`;
|
|
1287
|
+
}
|
|
1288
|
+
fs2.writeFileSync(this._userIdPath, newUserId);
|
|
1289
|
+
return newUserId;
|
|
1290
|
+
}
|
|
1291
|
+
const userId = fs2.readFileSync(this._userIdPath, "utf-8").trim();
|
|
1292
|
+
return userId;
|
|
1293
|
+
} catch (e) {
|
|
1294
|
+
try {
|
|
1295
|
+
return `session-${generateUUID()}`;
|
|
1296
|
+
} catch (uuidError) {
|
|
1297
|
+
return `session-${Date.now()}-${secureRandomString()}`;
|
|
1298
|
+
}
|
|
1251
1299
|
}
|
|
1252
|
-
return fs2.readFileSync(this._userIdPath, "utf-8").trim();
|
|
1253
1300
|
}
|
|
1254
1301
|
/**
|
|
1255
1302
|
* Get or create user ID from localStorage (Browser)
|
|
@@ -1258,14 +1305,22 @@ var Telemetry = class _Telemetry {
|
|
|
1258
1305
|
try {
|
|
1259
1306
|
let userId = localStorage.getItem(USER_ID_STORAGE_KEY);
|
|
1260
1307
|
if (!userId) {
|
|
1261
|
-
|
|
1308
|
+
try {
|
|
1309
|
+
userId = generateUUID();
|
|
1310
|
+
} catch (uuidError) {
|
|
1311
|
+
userId = `${Date.now()}-${secureRandomString()}`;
|
|
1312
|
+
}
|
|
1262
1313
|
localStorage.setItem(USER_ID_STORAGE_KEY, userId);
|
|
1263
|
-
logger.debug(`Created new browser user ID`);
|
|
1264
1314
|
}
|
|
1265
1315
|
return userId;
|
|
1266
1316
|
} catch (e) {
|
|
1267
|
-
|
|
1268
|
-
|
|
1317
|
+
let sessionId;
|
|
1318
|
+
try {
|
|
1319
|
+
sessionId = `session-${generateUUID()}`;
|
|
1320
|
+
} catch (uuidError) {
|
|
1321
|
+
sessionId = `session-${Date.now()}-${secureRandomString()}`;
|
|
1322
|
+
}
|
|
1323
|
+
return sessionId;
|
|
1269
1324
|
}
|
|
1270
1325
|
}
|
|
1271
1326
|
_getCacheHome(os, path2) {
|
|
@@ -1294,6 +1349,7 @@ var Telemetry = class _Telemetry {
|
|
|
1294
1349
|
if (!this._posthogNodeClient && !this._posthogBrowserClient && !this._scarfClient) {
|
|
1295
1350
|
return;
|
|
1296
1351
|
}
|
|
1352
|
+
const currentUserId = this.userId;
|
|
1297
1353
|
const properties = { ...event.properties };
|
|
1298
1354
|
properties.mcp_use_version = getPackageVersion();
|
|
1299
1355
|
properties.language = "typescript";
|
|
@@ -1301,9 +1357,8 @@ var Telemetry = class _Telemetry {
|
|
|
1301
1357
|
properties.runtime = this._runtimeEnvironment;
|
|
1302
1358
|
if (this._posthogNodeClient) {
|
|
1303
1359
|
try {
|
|
1304
|
-
logger.debug(`CAPTURE: PostHog Node Event ${event.name}`);
|
|
1305
1360
|
this._posthogNodeClient.capture({
|
|
1306
|
-
distinctId:
|
|
1361
|
+
distinctId: currentUserId,
|
|
1307
1362
|
event: event.name,
|
|
1308
1363
|
properties
|
|
1309
1364
|
});
|
|
@@ -1313,10 +1368,9 @@ var Telemetry = class _Telemetry {
|
|
|
1313
1368
|
}
|
|
1314
1369
|
if (this._posthogBrowserClient) {
|
|
1315
1370
|
try {
|
|
1316
|
-
logger.debug(`CAPTURE: PostHog Browser Event ${event.name}`);
|
|
1317
1371
|
this._posthogBrowserClient.capture(event.name, {
|
|
1318
1372
|
...properties,
|
|
1319
|
-
distinct_id:
|
|
1373
|
+
distinct_id: currentUserId
|
|
1320
1374
|
});
|
|
1321
1375
|
} catch (e) {
|
|
1322
1376
|
logger.debug(
|
|
@@ -1328,7 +1382,7 @@ var Telemetry = class _Telemetry {
|
|
|
1328
1382
|
try {
|
|
1329
1383
|
const scarfProperties = {
|
|
1330
1384
|
...properties,
|
|
1331
|
-
user_id:
|
|
1385
|
+
user_id: currentUserId,
|
|
1332
1386
|
event: event.name
|
|
1333
1387
|
};
|
|
1334
1388
|
await this._scarfClient.logEvent(scarfProperties);
|
|
@@ -3142,6 +3196,7 @@ var HttpConnector = class extends BaseConnector {
|
|
|
3142
3196
|
sseReadTimeout;
|
|
3143
3197
|
clientInfo;
|
|
3144
3198
|
preferSse;
|
|
3199
|
+
disableSseFallback;
|
|
3145
3200
|
transportType = null;
|
|
3146
3201
|
streamableTransport = null;
|
|
3147
3202
|
constructor(baseUrl, opts = {}) {
|
|
@@ -3158,6 +3213,7 @@ var HttpConnector = class extends BaseConnector {
|
|
|
3158
3213
|
version: "1.0.0"
|
|
3159
3214
|
};
|
|
3160
3215
|
this.preferSse = opts.preferSse ?? false;
|
|
3216
|
+
this.disableSseFallback = opts.disableSseFallback ?? false;
|
|
3161
3217
|
}
|
|
3162
3218
|
/** Establish connection to the MCP implementation via HTTP (streamable or SSE). */
|
|
3163
3219
|
async connect() {
|
|
@@ -3214,6 +3270,13 @@ var HttpConnector = class extends BaseConnector {
|
|
|
3214
3270
|
authError.code = 401;
|
|
3215
3271
|
throw authError;
|
|
3216
3272
|
}
|
|
3273
|
+
if (this.disableSseFallback) {
|
|
3274
|
+
logger.info("SSE fallback disabled - failing connection");
|
|
3275
|
+
await this.cleanupResources();
|
|
3276
|
+
throw new Error(
|
|
3277
|
+
`Streamable HTTP connection failed: ${fallbackReason}. SSE fallback is disabled.`
|
|
3278
|
+
);
|
|
3279
|
+
}
|
|
3217
3280
|
logger.info("\u{1F504} Falling back to SSE transport...");
|
|
3218
3281
|
try {
|
|
3219
3282
|
await this.connectWithSse(baseUrl);
|
|
@@ -3578,6 +3641,8 @@ function createConnectorFromConfig(serverConfig, connectorOptions) {
|
|
|
3578
3641
|
authToken: serverConfig.auth_token || serverConfig.authToken,
|
|
3579
3642
|
// Only force SSE if explicitly requested
|
|
3580
3643
|
preferSse: serverConfig.preferSse || transport === "sse",
|
|
3644
|
+
// Disable SSE fallback if explicitly disabled in config
|
|
3645
|
+
disableSseFallback: serverConfig.disableSseFallback,
|
|
3581
3646
|
...connectorOptions
|
|
3582
3647
|
});
|
|
3583
3648
|
}
|
package/dist/src/client.d.ts
CHANGED
|
@@ -39,6 +39,8 @@ export interface MCPClientOptions {
|
|
|
39
39
|
elicitationCallback?: (params: ElicitRequestFormParams | ElicitRequestURLParams) => Promise<ElicitResult>;
|
|
40
40
|
}
|
|
41
41
|
export { BaseCodeExecutor, E2BCodeExecutor, isVMAvailable, VMCodeExecutor, } from "./client/codeExecutor.js";
|
|
42
|
+
export { MCPSession } from "./session.js";
|
|
43
|
+
export type { CallToolResult, Notification, Root, Tool } from "./session.js";
|
|
42
44
|
/**
|
|
43
45
|
* Node.js-specific MCPClient implementation
|
|
44
46
|
*
|
package/dist/src/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,oBAAoB,EACpB,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EACtB,YAAY,EACb,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EACL,gBAAgB,EAGjB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAM1D,MAAM,MAAM,oBAAoB,GAAG,CACjC,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,KACb,OAAO,CAAC,eAAe,CAAC,CAAC;AAC9B,MAAM,MAAM,gBAAgB,GAAG,IAAI,GAAG,KAAK,CAAC;AAG5C,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAGD,MAAM,MAAM,eAAe,GAAG,iBAAiB,GAAG,kBAAkB,CAAC;AAErE,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,gBAAgB,GAAG,oBAAoB,GAAG,gBAAgB,CAAC;IACtE,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,OAAO,GAAG,cAAc,CAAC;IACpC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,CACjB,MAAM,EAAE,oBAAoB,CAAC,QAAQ,CAAC,KACnC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAClC;;;;;;;;OAQG;IACH,mBAAmB,CAAC,EAAE,CACpB,MAAM,EAAE,uBAAuB,GAAG,sBAAsB,KACrD,OAAO,CAAC,YAAY,CAAC,CAAC;CAC5B;AAGD,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,cAAc,GACf,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/src/client.js
CHANGED
|
@@ -4,17 +4,18 @@ import {
|
|
|
4
4
|
MCPClient,
|
|
5
5
|
VMCodeExecutor,
|
|
6
6
|
isVMAvailable
|
|
7
|
-
} from "../chunk-
|
|
8
|
-
import
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
import "../chunk-
|
|
7
|
+
} from "../chunk-QPIDKGV4.js";
|
|
8
|
+
import {
|
|
9
|
+
MCPSession
|
|
10
|
+
} from "../chunk-GN5HOAV3.js";
|
|
11
|
+
import "../chunk-ZLZOOXMJ.js";
|
|
12
12
|
import "../chunk-FRUZDWXH.js";
|
|
13
13
|
import "../chunk-3GQAWCBQ.js";
|
|
14
14
|
export {
|
|
15
15
|
BaseCodeExecutor,
|
|
16
16
|
E2BCodeExecutor,
|
|
17
17
|
MCPClient,
|
|
18
|
+
MCPSession,
|
|
18
19
|
VMCodeExecutor,
|
|
19
20
|
isVMAvailable
|
|
20
21
|
};
|
package/dist/src/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAKjE,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAGpE;AAED,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACjC,gBAAgB,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAC/C,aAAa,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAKjE,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAGpE;AAED,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACjC,gBAAgB,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAC/C,aAAa,CA0Bf"}
|
|
@@ -10,6 +10,7 @@ export interface HttpConnectorOptions extends ConnectorInitOptions {
|
|
|
10
10
|
version: string;
|
|
11
11
|
};
|
|
12
12
|
preferSse?: boolean;
|
|
13
|
+
disableSseFallback?: boolean;
|
|
13
14
|
}
|
|
14
15
|
export declare class HttpConnector extends BaseConnector {
|
|
15
16
|
private readonly baseUrl;
|
|
@@ -18,6 +19,7 @@ export declare class HttpConnector extends BaseConnector {
|
|
|
18
19
|
private readonly sseReadTimeout;
|
|
19
20
|
private readonly clientInfo;
|
|
20
21
|
private readonly preferSse;
|
|
22
|
+
private readonly disableSseFallback;
|
|
21
23
|
private transportType;
|
|
22
24
|
private streamableTransport;
|
|
23
25
|
constructor(baseUrl: string, opts?: HttpConnectorOptions);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/connectors/http.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,MAAM,WAAW,oBAAqB,SAAQ,oBAAoB;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,SAAS,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/connectors/http.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,MAAM,WAAW,oBAAqB,SAAQ,oBAAoB;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,qBAAa,aAAc,SAAQ,aAAa;IAC9C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyB;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoC;IAC/D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAU;IACpC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAU;IAC7C,OAAO,CAAC,aAAa,CAA0C;IAC/D,OAAO,CAAC,mBAAmB,CAA8C;gBAE7D,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,oBAAyB;IAmB5D,mFAAmF;IAC7E,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;YA8HhB,yBAAyB;YAkJzB,cAAc;IAqE5B,IAAI,gBAAgB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAM7C;IAED;;OAEG;IACH,gBAAgB,IAAI,iBAAiB,GAAG,KAAK,GAAG,IAAI;CAGrD"}
|
package/dist/src/react/index.cjs
CHANGED
|
@@ -918,13 +918,27 @@ function generateUUID() {
|
|
|
918
918
|
__name(generateUUID, "generateUUID");
|
|
919
919
|
|
|
920
920
|
// src/version.ts
|
|
921
|
-
var VERSION = "1.11.0
|
|
921
|
+
var VERSION = "1.11.0";
|
|
922
922
|
function getPackageVersion() {
|
|
923
923
|
return VERSION;
|
|
924
924
|
}
|
|
925
925
|
__name(getPackageVersion, "getPackageVersion");
|
|
926
926
|
|
|
927
927
|
// src/telemetry/telemetry.ts
|
|
928
|
+
function secureRandomString() {
|
|
929
|
+
if (typeof window !== "undefined" && window.crypto && typeof window.crypto.getRandomValues === "function") {
|
|
930
|
+
const array = new Uint8Array(8);
|
|
931
|
+
window.crypto.getRandomValues(array);
|
|
932
|
+
return Array.from(array, (v) => v.toString(16).padStart(2, "0")).join("");
|
|
933
|
+
}
|
|
934
|
+
try {
|
|
935
|
+
const crypto = require("crypto");
|
|
936
|
+
return crypto.randomBytes(8).toString("hex");
|
|
937
|
+
} catch (e) {
|
|
938
|
+
return Math.random().toString(36).substring(2, 15);
|
|
939
|
+
}
|
|
940
|
+
}
|
|
941
|
+
__name(secureRandomString, "secureRandomString");
|
|
928
942
|
var USER_ID_STORAGE_KEY = "mcp_use_user_id";
|
|
929
943
|
function detectRuntimeEnvironment() {
|
|
930
944
|
try {
|
|
@@ -1056,12 +1070,26 @@ var Telemetry = class _Telemetry {
|
|
|
1056
1070
|
"Anonymized telemetry enabled. Set MCP_USE_ANONYMIZED_TELEMETRY=false to disable."
|
|
1057
1071
|
);
|
|
1058
1072
|
this._posthogLoading = this._initPostHog();
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1073
|
+
if (this._runtimeEnvironment !== "browser") {
|
|
1074
|
+
try {
|
|
1075
|
+
this._scarfClient = new ScarfEventLogger(
|
|
1076
|
+
this.SCARF_GATEWAY_URL,
|
|
1077
|
+
3e3
|
|
1078
|
+
);
|
|
1079
|
+
} catch (e) {
|
|
1080
|
+
logger.warn(`Failed to initialize Scarf telemetry: ${e}`);
|
|
1081
|
+
this._scarfClient = null;
|
|
1082
|
+
}
|
|
1083
|
+
} else {
|
|
1063
1084
|
this._scarfClient = null;
|
|
1064
1085
|
}
|
|
1086
|
+
if (this._storageCapability === "filesystem" && this._scarfClient) {
|
|
1087
|
+
setTimeout(() => {
|
|
1088
|
+
this.trackPackageDownload({ triggered_by: "initialization" }).catch(
|
|
1089
|
+
(e) => logger.debug(`Failed to track package download: ${e}`)
|
|
1090
|
+
);
|
|
1091
|
+
}, 0);
|
|
1092
|
+
}
|
|
1065
1093
|
}
|
|
1066
1094
|
}
|
|
1067
1095
|
_checkTelemetryDisabled() {
|
|
@@ -1186,47 +1214,65 @@ var Telemetry = class _Telemetry {
|
|
|
1186
1214
|
break;
|
|
1187
1215
|
case "session-only":
|
|
1188
1216
|
default:
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1217
|
+
try {
|
|
1218
|
+
this._currUserId = `session-${generateUUID()}`;
|
|
1219
|
+
} catch (uuidError) {
|
|
1220
|
+
this._currUserId = `session-${Date.now()}-${Math.random().toString(36).substring(2, 15)}`;
|
|
1221
|
+
}
|
|
1193
1222
|
break;
|
|
1194
1223
|
}
|
|
1195
|
-
if (this._storageCapability === "filesystem" && this._currUserId) {
|
|
1196
|
-
this._trackPackageDownloadInternal(this._currUserId, {
|
|
1197
|
-
triggered_by: "user_id_property"
|
|
1198
|
-
}).catch((e) => logger.debug(`Failed to track package download: ${e}`));
|
|
1199
|
-
}
|
|
1200
1224
|
} catch (e) {
|
|
1201
|
-
logger.debug(`Failed to get/create user ID: ${e}`);
|
|
1202
1225
|
this._currUserId = this.UNKNOWN_USER_ID;
|
|
1203
1226
|
}
|
|
1204
1227
|
return this._currUserId;
|
|
1205
1228
|
}
|
|
1206
1229
|
/**
|
|
1207
1230
|
* Get or create user ID from filesystem (Node.js/Bun)
|
|
1231
|
+
* Falls back to session ID if filesystem operations fail
|
|
1208
1232
|
*/
|
|
1209
1233
|
_getUserIdFromFilesystem() {
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1234
|
+
try {
|
|
1235
|
+
let fs, os, path;
|
|
1236
|
+
try {
|
|
1237
|
+
fs = require("fs");
|
|
1238
|
+
os = require("os");
|
|
1239
|
+
path = require("path");
|
|
1240
|
+
} catch (requireError) {
|
|
1241
|
+
try {
|
|
1242
|
+
const sessionId = `session-${generateUUID()}`;
|
|
1243
|
+
return sessionId;
|
|
1244
|
+
} catch (uuidError) {
|
|
1245
|
+
return `session-${Date.now()}-${Math.random().toString(36).substring(2, 15)}`;
|
|
1246
|
+
}
|
|
1247
|
+
}
|
|
1248
|
+
if (!this._userIdPath) {
|
|
1249
|
+
this._userIdPath = path.join(
|
|
1250
|
+
this._getCacheHome(os, path),
|
|
1251
|
+
"mcp_use_3",
|
|
1252
|
+
"telemetry_user_id"
|
|
1253
|
+
);
|
|
1254
|
+
}
|
|
1255
|
+
const isFirstTime = !fs.existsSync(this._userIdPath);
|
|
1256
|
+
if (isFirstTime) {
|
|
1257
|
+
fs.mkdirSync(path.dirname(this._userIdPath), { recursive: true });
|
|
1258
|
+
let newUserId;
|
|
1259
|
+
try {
|
|
1260
|
+
newUserId = generateUUID();
|
|
1261
|
+
} catch (uuidError) {
|
|
1262
|
+
newUserId = `${Date.now()}-${Math.random().toString(36).substring(2, 15)}`;
|
|
1263
|
+
}
|
|
1264
|
+
fs.writeFileSync(this._userIdPath, newUserId);
|
|
1265
|
+
return newUserId;
|
|
1266
|
+
}
|
|
1267
|
+
const userId = fs.readFileSync(this._userIdPath, "utf-8").trim();
|
|
1268
|
+
return userId;
|
|
1269
|
+
} catch (e) {
|
|
1270
|
+
try {
|
|
1271
|
+
return `session-${generateUUID()}`;
|
|
1272
|
+
} catch (uuidError) {
|
|
1273
|
+
return `session-${Date.now()}-${secureRandomString()}`;
|
|
1274
|
+
}
|
|
1228
1275
|
}
|
|
1229
|
-
return fs.readFileSync(this._userIdPath, "utf-8").trim();
|
|
1230
1276
|
}
|
|
1231
1277
|
/**
|
|
1232
1278
|
* Get or create user ID from localStorage (Browser)
|
|
@@ -1235,14 +1281,22 @@ var Telemetry = class _Telemetry {
|
|
|
1235
1281
|
try {
|
|
1236
1282
|
let userId = localStorage.getItem(USER_ID_STORAGE_KEY);
|
|
1237
1283
|
if (!userId) {
|
|
1238
|
-
|
|
1284
|
+
try {
|
|
1285
|
+
userId = generateUUID();
|
|
1286
|
+
} catch (uuidError) {
|
|
1287
|
+
userId = `${Date.now()}-${secureRandomString()}`;
|
|
1288
|
+
}
|
|
1239
1289
|
localStorage.setItem(USER_ID_STORAGE_KEY, userId);
|
|
1240
|
-
logger.debug(`Created new browser user ID`);
|
|
1241
1290
|
}
|
|
1242
1291
|
return userId;
|
|
1243
1292
|
} catch (e) {
|
|
1244
|
-
|
|
1245
|
-
|
|
1293
|
+
let sessionId;
|
|
1294
|
+
try {
|
|
1295
|
+
sessionId = `session-${generateUUID()}`;
|
|
1296
|
+
} catch (uuidError) {
|
|
1297
|
+
sessionId = `session-${Date.now()}-${secureRandomString()}`;
|
|
1298
|
+
}
|
|
1299
|
+
return sessionId;
|
|
1246
1300
|
}
|
|
1247
1301
|
}
|
|
1248
1302
|
_getCacheHome(os, path) {
|
|
@@ -1271,6 +1325,7 @@ var Telemetry = class _Telemetry {
|
|
|
1271
1325
|
if (!this._posthogNodeClient && !this._posthogBrowserClient && !this._scarfClient) {
|
|
1272
1326
|
return;
|
|
1273
1327
|
}
|
|
1328
|
+
const currentUserId = this.userId;
|
|
1274
1329
|
const properties = { ...event.properties };
|
|
1275
1330
|
properties.mcp_use_version = getPackageVersion();
|
|
1276
1331
|
properties.language = "typescript";
|
|
@@ -1278,9 +1333,8 @@ var Telemetry = class _Telemetry {
|
|
|
1278
1333
|
properties.runtime = this._runtimeEnvironment;
|
|
1279
1334
|
if (this._posthogNodeClient) {
|
|
1280
1335
|
try {
|
|
1281
|
-
logger.debug(`CAPTURE: PostHog Node Event ${event.name}`);
|
|
1282
1336
|
this._posthogNodeClient.capture({
|
|
1283
|
-
distinctId:
|
|
1337
|
+
distinctId: currentUserId,
|
|
1284
1338
|
event: event.name,
|
|
1285
1339
|
properties
|
|
1286
1340
|
});
|
|
@@ -1290,10 +1344,9 @@ var Telemetry = class _Telemetry {
|
|
|
1290
1344
|
}
|
|
1291
1345
|
if (this._posthogBrowserClient) {
|
|
1292
1346
|
try {
|
|
1293
|
-
logger.debug(`CAPTURE: PostHog Browser Event ${event.name}`);
|
|
1294
1347
|
this._posthogBrowserClient.capture(event.name, {
|
|
1295
1348
|
...properties,
|
|
1296
|
-
distinct_id:
|
|
1349
|
+
distinct_id: currentUserId
|
|
1297
1350
|
});
|
|
1298
1351
|
} catch (e) {
|
|
1299
1352
|
logger.debug(
|
|
@@ -1305,7 +1358,7 @@ var Telemetry = class _Telemetry {
|
|
|
1305
1358
|
try {
|
|
1306
1359
|
const scarfProperties = {
|
|
1307
1360
|
...properties,
|
|
1308
|
-
user_id:
|
|
1361
|
+
user_id: currentUserId,
|
|
1309
1362
|
event: event.name
|
|
1310
1363
|
};
|
|
1311
1364
|
await this._scarfClient.logEvent(scarfProperties);
|
|
@@ -2043,6 +2096,7 @@ var HttpConnector = class extends BaseConnector {
|
|
|
2043
2096
|
sseReadTimeout;
|
|
2044
2097
|
clientInfo;
|
|
2045
2098
|
preferSse;
|
|
2099
|
+
disableSseFallback;
|
|
2046
2100
|
transportType = null;
|
|
2047
2101
|
streamableTransport = null;
|
|
2048
2102
|
constructor(baseUrl, opts = {}) {
|
|
@@ -2059,6 +2113,7 @@ var HttpConnector = class extends BaseConnector {
|
|
|
2059
2113
|
version: "1.0.0"
|
|
2060
2114
|
};
|
|
2061
2115
|
this.preferSse = opts.preferSse ?? false;
|
|
2116
|
+
this.disableSseFallback = opts.disableSseFallback ?? false;
|
|
2062
2117
|
}
|
|
2063
2118
|
/** Establish connection to the MCP implementation via HTTP (streamable or SSE). */
|
|
2064
2119
|
async connect() {
|
|
@@ -2115,6 +2170,13 @@ var HttpConnector = class extends BaseConnector {
|
|
|
2115
2170
|
authError.code = 401;
|
|
2116
2171
|
throw authError;
|
|
2117
2172
|
}
|
|
2173
|
+
if (this.disableSseFallback) {
|
|
2174
|
+
logger.info("SSE fallback disabled - failing connection");
|
|
2175
|
+
await this.cleanupResources();
|
|
2176
|
+
throw new Error(
|
|
2177
|
+
`Streamable HTTP connection failed: ${fallbackReason}. SSE fallback is disabled.`
|
|
2178
|
+
);
|
|
2179
|
+
}
|
|
2118
2180
|
logger.info("\u{1F504} Falling back to SSE transport...");
|
|
2119
2181
|
try {
|
|
2120
2182
|
await this.connectWithSse(baseUrl);
|
|
@@ -2756,7 +2818,9 @@ var BrowserMCPClient = class _BrowserMCPClient extends BaseMCPClient {
|
|
|
2756
2818
|
wrapTransport,
|
|
2757
2819
|
clientOptions,
|
|
2758
2820
|
samplingCallback,
|
|
2759
|
-
elicitationCallback
|
|
2821
|
+
elicitationCallback,
|
|
2822
|
+
disableSseFallback,
|
|
2823
|
+
preferSse
|
|
2760
2824
|
} = serverConfig;
|
|
2761
2825
|
if (!url) {
|
|
2762
2826
|
throw new Error("Server URL is required");
|
|
@@ -2772,8 +2836,12 @@ var BrowserMCPClient = class _BrowserMCPClient extends BaseMCPClient {
|
|
|
2772
2836
|
// ← Pass client options (capabilities, etc.) to connector
|
|
2773
2837
|
samplingCallback,
|
|
2774
2838
|
// ← Pass sampling callback to connector
|
|
2775
|
-
elicitationCallback
|
|
2839
|
+
elicitationCallback,
|
|
2776
2840
|
// ← Pass elicitation callback to connector
|
|
2841
|
+
disableSseFallback,
|
|
2842
|
+
// ← Disable automatic SSE fallback
|
|
2843
|
+
preferSse
|
|
2844
|
+
// ← Use SSE transport directly
|
|
2777
2845
|
};
|
|
2778
2846
|
if (clientOptions) {
|
|
2779
2847
|
console.log(
|
|
@@ -3213,7 +3281,12 @@ function useMcp(options) {
|
|
|
3213
3281
|
const serverName = "inspector-server";
|
|
3214
3282
|
const serverConfig = {
|
|
3215
3283
|
url,
|
|
3216
|
-
transport: transportTypeParam === "sse" ? "http" : transportTypeParam
|
|
3284
|
+
transport: transportTypeParam === "sse" ? "http" : transportTypeParam,
|
|
3285
|
+
// Disable SSE fallback when using explicit HTTP transport (not SSE)
|
|
3286
|
+
// This prevents automatic HTTP → SSE fallback at the connector level
|
|
3287
|
+
disableSseFallback: transportTypeParam === "http",
|
|
3288
|
+
// Use SSE transport when explicitly requested
|
|
3289
|
+
preferSse: transportTypeParam === "sse"
|
|
3217
3290
|
};
|
|
3218
3291
|
if (customHeaders && Object.keys(customHeaders).length > 0) {
|
|
3219
3292
|
serverConfig.headers = customHeaders;
|
package/dist/src/react/index.js
CHANGED
|
@@ -9,19 +9,18 @@ import {
|
|
|
9
9
|
useWidgetProps,
|
|
10
10
|
useWidgetState,
|
|
11
11
|
useWidgetTheme
|
|
12
|
-
} from "../../chunk-
|
|
13
|
-
import "../../chunk-
|
|
14
|
-
import
|
|
15
|
-
onMcpAuthorization
|
|
16
|
-
} from "../../chunk-J75I2C26.js";
|
|
17
|
-
import "../../chunk-HU2DGJ5J.js";
|
|
18
|
-
import "../../chunk-XEFWIBQF.js";
|
|
12
|
+
} from "../../chunk-Y2HHHJQB.js";
|
|
13
|
+
import "../../chunk-VRHAF2WT.js";
|
|
14
|
+
import "../../chunk-GN5HOAV3.js";
|
|
19
15
|
import {
|
|
20
16
|
Tel,
|
|
21
17
|
Telemetry,
|
|
22
18
|
setTelemetrySource
|
|
23
|
-
} from "../../chunk-
|
|
19
|
+
} from "../../chunk-ZLZOOXMJ.js";
|
|
24
20
|
import "../../chunk-FRUZDWXH.js";
|
|
21
|
+
import {
|
|
22
|
+
onMcpAuthorization
|
|
23
|
+
} from "../../chunk-J75I2C26.js";
|
|
25
24
|
import "../../chunk-3GQAWCBQ.js";
|
|
26
25
|
export {
|
|
27
26
|
Tel as BrowserTelemetry,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMcp.d.ts","sourceRoot":"","sources":["../../../src/react/useMcp.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAQ9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,YAAY,
|
|
1
|
+
{"version":3,"file":"useMcp.d.ts","sourceRoot":"","sources":["../../../src/react/useMcp.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAQ9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,YAAY,CAqwC3D"}
|