@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 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
- return value.apply(instance, args);
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;