@mcp-ts/sdk 2.2.0 → 2.3.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/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +66 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +66 -2
- package/dist/index.mjs.map +1 -1
- package/dist/server/index.d.mts +13 -1
- package/dist/server/index.d.ts +13 -1
- package/dist/server/index.js +66 -1
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +66 -2
- package/dist/server/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/server/index.ts +8 -1
- package/src/server/storage/index.ts +77 -2
- package/src/server/storage/types.ts +14 -0
package/dist/index.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { M as MCPClient, a as MultiSessionClient, S as StorageOAuthClientProvider } from './multi-session-client-DYNe6az3.mjs';
|
|
2
2
|
export { A as AuthenticationError, C as ConfigurationError, a as ConnectionError, I as InvalidStateError, M as McpError, N as NotConnectedError, R as RpcErrorCode, b as RpcErrorCodes, S as SessionNotFoundError, c as SessionValidationError, T as ToolExecutionError, U as UnauthorizedError, s as sanitizeServerLabel } from './utils-DELRKQPU.mjs';
|
|
3
|
-
export { ClientMetadata, NextMcpHandlerOptions, SSEConnectionManager, SSEHandlerOptions, SessionStore, createNextMcpHandler, createSSEHandler, sessions } from './server/index.mjs';
|
|
3
|
+
export { ClientMetadata, NextMcpHandlerOptions, SSEConnectionManager, SSEHandlerOptions, Session, SessionMutationEvent, SessionMutationListener, SessionMutationType, SessionStore, createNextMcpHandler, createSSEHandler, onSessionMutation, sessions } from './server/index.mjs';
|
|
4
4
|
export { D as Disposable, a as DisposableStore, E as Emitter, b as Event, M as McpConnectionEvent, c as McpConnectionState, d as McpObservabilityEvent } from './events-CK3N--3g.mjs';
|
|
5
5
|
export { C as CallToolParams, a as CallToolRequest, b as CallToolResponse, c as ConnectAuthRequiredResponse, d as ConnectErrorResponse, e as ConnectParams, f as ConnectRequest, g as ConnectResponse, h as ConnectResult, i as ConnectSuccessResponse, D as DisconnectParams, j as DisconnectResult, F as FinishAuthParams, k as FinishAuthResult, G as GetPromptParams, l as GetSessionResult, L as ListPromptsResult, m as ListResourcesResult, n as ListToolsResponse, o as ListToolsRpcResult, M as McpRpcMethod, p as McpRpcParams, q as McpRpcRequest, r as McpRpcResponse, R as ReadResourceParams, S as SessionInfo, s as SessionListResult, t as SessionParams, T as ToolClient, u as ToolClientProvider, v as ToolInfo, w as TransportType, x as isCallToolSuccess, y as isConnectAuthRequired, z as isConnectError, A as isConnectSuccess, B as isListToolsSuccess } from './types-CxFaaZrM.mjs';
|
|
6
6
|
export { OAuthClientInformation, OAuthClientInformationFull, OAuthClientMetadata, OAuthTokens } from '@modelcontextprotocol/sdk/shared/auth.js';
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { M as MCPClient, a as MultiSessionClient, S as StorageOAuthClientProvider } from './multi-session-client-BYtguGJm.js';
|
|
2
2
|
export { A as AuthenticationError, C as ConfigurationError, a as ConnectionError, I as InvalidStateError, M as McpError, N as NotConnectedError, R as RpcErrorCode, b as RpcErrorCodes, S as SessionNotFoundError, c as SessionValidationError, T as ToolExecutionError, U as UnauthorizedError, s as sanitizeServerLabel } from './utils-DELRKQPU.js';
|
|
3
|
-
export { ClientMetadata, NextMcpHandlerOptions, SSEConnectionManager, SSEHandlerOptions, SessionStore, createNextMcpHandler, createSSEHandler, sessions } from './server/index.js';
|
|
3
|
+
export { ClientMetadata, NextMcpHandlerOptions, SSEConnectionManager, SSEHandlerOptions, Session, SessionMutationEvent, SessionMutationListener, SessionMutationType, SessionStore, createNextMcpHandler, createSSEHandler, onSessionMutation, sessions } from './server/index.js';
|
|
4
4
|
export { D as Disposable, a as DisposableStore, E as Emitter, b as Event, M as McpConnectionEvent, c as McpConnectionState, d as McpObservabilityEvent } from './events-CK3N--3g.js';
|
|
5
5
|
export { C as CallToolParams, a as CallToolRequest, b as CallToolResponse, c as ConnectAuthRequiredResponse, d as ConnectErrorResponse, e as ConnectParams, f as ConnectRequest, g as ConnectResponse, h as ConnectResult, i as ConnectSuccessResponse, D as DisconnectParams, j as DisconnectResult, F as FinishAuthParams, k as FinishAuthResult, G as GetPromptParams, l as GetSessionResult, L as ListPromptsResult, m as ListResourcesResult, n as ListToolsResponse, o as ListToolsRpcResult, M as McpRpcMethod, p as McpRpcParams, q as McpRpcRequest, r as McpRpcResponse, R as ReadResourceParams, S as SessionInfo, s as SessionListResult, t as SessionParams, T as ToolClient, u as ToolClientProvider, v as ToolInfo, w as TransportType, x as isCallToolSuccess, y as isConnectAuthRequired, z as isConnectError, A as isConnectSuccess, B as isListToolsSuccess } from './types-CxFaaZrM.js';
|
|
6
6
|
export { OAuthClientInformation, OAuthClientInformationFull, OAuthClientMetadata, OAuthTokens } from '@modelcontextprotocol/sdk/shared/auth.js';
|
package/dist/index.js
CHANGED
|
@@ -1242,6 +1242,59 @@ function warnIfNeonConnectionStringIsInsecure(connectionString) {
|
|
|
1242
1242
|
}
|
|
1243
1243
|
var storageInstance = null;
|
|
1244
1244
|
var storagePromise = null;
|
|
1245
|
+
var sessionMutationListeners = /* @__PURE__ */ new Set();
|
|
1246
|
+
function emitSessionMutation(event) {
|
|
1247
|
+
for (const listener of sessionMutationListeners) {
|
|
1248
|
+
try {
|
|
1249
|
+
const result = listener(event);
|
|
1250
|
+
if (result && typeof result.catch === "function") {
|
|
1251
|
+
void result.catch((error) => {
|
|
1252
|
+
console.error("[mcp-ts][Storage] Session mutation listener failed:", error);
|
|
1253
|
+
});
|
|
1254
|
+
}
|
|
1255
|
+
} catch (error) {
|
|
1256
|
+
console.error("[mcp-ts][Storage] Session mutation listener failed:", error);
|
|
1257
|
+
}
|
|
1258
|
+
}
|
|
1259
|
+
}
|
|
1260
|
+
function createSessionMutationEvent(prop, args) {
|
|
1261
|
+
const timestamp = Date.now();
|
|
1262
|
+
if (prop === "create") {
|
|
1263
|
+
const [session, ttl] = args;
|
|
1264
|
+
if (!session?.userId || !session?.sessionId) return null;
|
|
1265
|
+
return {
|
|
1266
|
+
type: "create",
|
|
1267
|
+
userId: session.userId,
|
|
1268
|
+
sessionId: session.sessionId,
|
|
1269
|
+
session,
|
|
1270
|
+
ttl,
|
|
1271
|
+
timestamp
|
|
1272
|
+
};
|
|
1273
|
+
}
|
|
1274
|
+
if (prop === "update") {
|
|
1275
|
+
const [userId, sessionId, patch, ttl] = args;
|
|
1276
|
+
if (!userId || !sessionId) return null;
|
|
1277
|
+
return {
|
|
1278
|
+
type: "update",
|
|
1279
|
+
userId,
|
|
1280
|
+
sessionId,
|
|
1281
|
+
patch,
|
|
1282
|
+
ttl,
|
|
1283
|
+
timestamp
|
|
1284
|
+
};
|
|
1285
|
+
}
|
|
1286
|
+
if (prop === "delete") {
|
|
1287
|
+
const [userId, sessionId] = args;
|
|
1288
|
+
if (!userId || !sessionId) return null;
|
|
1289
|
+
return {
|
|
1290
|
+
type: "delete",
|
|
1291
|
+
userId,
|
|
1292
|
+
sessionId,
|
|
1293
|
+
timestamp
|
|
1294
|
+
};
|
|
1295
|
+
}
|
|
1296
|
+
return null;
|
|
1297
|
+
}
|
|
1245
1298
|
async function initializeStorage(store) {
|
|
1246
1299
|
if (typeof store.init === "function") {
|
|
1247
1300
|
await store.init();
|
|
@@ -1379,13 +1432,24 @@ async function getStorage() {
|
|
|
1379
1432
|
storageInstance = await storagePromise;
|
|
1380
1433
|
return storageInstance;
|
|
1381
1434
|
}
|
|
1435
|
+
function onSessionMutation(listener) {
|
|
1436
|
+
sessionMutationListeners.add(listener);
|
|
1437
|
+
return () => {
|
|
1438
|
+
sessionMutationListeners.delete(listener);
|
|
1439
|
+
};
|
|
1440
|
+
}
|
|
1382
1441
|
var sessions = new Proxy({}, {
|
|
1383
1442
|
get(_target, prop) {
|
|
1384
1443
|
return async (...args) => {
|
|
1385
1444
|
const instance = await getStorage();
|
|
1386
1445
|
const value = instance[prop];
|
|
1387
1446
|
if (typeof value === "function") {
|
|
1388
|
-
|
|
1447
|
+
const result = await value.apply(instance, args);
|
|
1448
|
+
const event = createSessionMutationEvent(prop, args);
|
|
1449
|
+
if (event) {
|
|
1450
|
+
emitSessionMutation(event);
|
|
1451
|
+
}
|
|
1452
|
+
return result;
|
|
1389
1453
|
}
|
|
1390
1454
|
return value;
|
|
1391
1455
|
};
|
|
@@ -5383,6 +5447,7 @@ exports.isConnectError = isConnectError;
|
|
|
5383
5447
|
exports.isConnectSuccess = isConnectSuccess;
|
|
5384
5448
|
exports.isListToolsSuccess = isListToolsSuccess;
|
|
5385
5449
|
exports.isMetaTool = isMetaTool;
|
|
5450
|
+
exports.onSessionMutation = onSessionMutation;
|
|
5386
5451
|
exports.resolveMetaToolProxy = resolveMetaToolProxy;
|
|
5387
5452
|
exports.sanitizeServerLabel = sanitizeServerLabel;
|
|
5388
5453
|
exports.sessions = sessions;
|