@karashiiro/mcp 0.6.0 → 0.7.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/event-store.d.ts +20 -1
- package/dist/event-store.d.ts.map +1 -1
- package/dist/event-store.js +26 -0
- package/dist/event-store.js.map +1 -1
- package/dist/http.d.ts +18 -3
- package/dist/http.d.ts.map +1 -1
- package/dist/http.js +130 -9
- package/dist/http.js.map +1 -1
- package/dist/types.d.ts +23 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/event-store.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { EventStore } from "@modelcontextprotocol/sdk/server/webStandardStreamableHttp.js";
|
|
2
1
|
import type { JSONRPCMessage } from "@modelcontextprotocol/sdk/types.js";
|
|
2
|
+
import type { EventStore } from "./types.js";
|
|
3
3
|
/**
|
|
4
4
|
* Options for configuring the in-memory event store.
|
|
5
5
|
*/
|
|
@@ -18,6 +18,7 @@ export interface InMemoryEventStoreOptions {
|
|
|
18
18
|
*/
|
|
19
19
|
export declare class InMemoryEventStore implements EventStore {
|
|
20
20
|
private events;
|
|
21
|
+
private initializeRequests;
|
|
21
22
|
private readonly maxEventsPerStream;
|
|
22
23
|
constructor(options?: InMemoryEventStoreOptions);
|
|
23
24
|
storeEvent(streamId: string, message: JSONRPCMessage): Promise<string>;
|
|
@@ -30,6 +31,24 @@ export declare class InMemoryEventStore implements EventStore {
|
|
|
30
31
|
* Call this when the session is being deleted.
|
|
31
32
|
*/
|
|
32
33
|
clear(): void;
|
|
34
|
+
/**
|
|
35
|
+
* Check if the event store has data for the given session.
|
|
36
|
+
* @param sessionId - The ID of the session to check
|
|
37
|
+
* @returns true if an initialize request exists for the session
|
|
38
|
+
*/
|
|
39
|
+
hasSession(sessionId: string): Promise<boolean>;
|
|
40
|
+
/**
|
|
41
|
+
* Store the initialization request for session restoration.
|
|
42
|
+
* @param sessionId - The ID of the session
|
|
43
|
+
* @param request - The initialize request message to store
|
|
44
|
+
*/
|
|
45
|
+
storeInitializeRequest(sessionId: string, request: JSONRPCMessage): Promise<void>;
|
|
46
|
+
/**
|
|
47
|
+
* Retrieve the stored initialization request.
|
|
48
|
+
* @param sessionId - The ID of the session
|
|
49
|
+
* @returns The stored initialize request, or undefined if not found
|
|
50
|
+
*/
|
|
51
|
+
getInitializeRequest(sessionId: string): Promise<JSONRPCMessage | undefined>;
|
|
33
52
|
/**
|
|
34
53
|
* Get the current number of events stored.
|
|
35
54
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-store.d.ts","sourceRoot":"","sources":["../src/event-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"event-store.d.ts","sourceRoot":"","sources":["../src/event-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;GAIG;AACH,qBAAa,kBAAmB,YAAW,UAAU;IACnD,OAAO,CAAC,MAAM,CAGV;IACJ,OAAO,CAAC,kBAAkB,CAAqC;IAC/D,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;IAExD,YAAY,OAAO,GAAE,yBAA8B,EAElD;IAEK,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAU3E;IAED;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAe3B;;;OAGG;IACH,KAAK,IAAI,IAAI,CAGZ;IAED;;;;OAIG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAEpD;IAED;;;;OAIG;IACG,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAEtF;IAED;;;;OAIG;IACG,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAEjF;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAEK,iBAAiB,CACrB,WAAW,EAAE,MAAM,EACnB,EACE,IAAI,EACL,EAAE;QAAE,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;KAAE,GACvE,OAAO,CAAC,MAAM,CAAC,CA2BjB;CACF"}
|
package/dist/event-store.js
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
export class InMemoryEventStore {
|
|
7
7
|
events = new Map();
|
|
8
|
+
initializeRequests = new Map();
|
|
8
9
|
maxEventsPerStream;
|
|
9
10
|
constructor(options = {}) {
|
|
10
11
|
this.maxEventsPerStream = options.maxEventsPerStream;
|
|
@@ -40,6 +41,31 @@ export class InMemoryEventStore {
|
|
|
40
41
|
*/
|
|
41
42
|
clear() {
|
|
42
43
|
this.events.clear();
|
|
44
|
+
this.initializeRequests.clear();
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Check if the event store has data for the given session.
|
|
48
|
+
* @param sessionId - The ID of the session to check
|
|
49
|
+
* @returns true if an initialize request exists for the session
|
|
50
|
+
*/
|
|
51
|
+
async hasSession(sessionId) {
|
|
52
|
+
return this.initializeRequests.has(sessionId);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Store the initialization request for session restoration.
|
|
56
|
+
* @param sessionId - The ID of the session
|
|
57
|
+
* @param request - The initialize request message to store
|
|
58
|
+
*/
|
|
59
|
+
async storeInitializeRequest(sessionId, request) {
|
|
60
|
+
this.initializeRequests.set(sessionId, request);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Retrieve the stored initialization request.
|
|
64
|
+
* @param sessionId - The ID of the session
|
|
65
|
+
* @returns The stored initialize request, or undefined if not found
|
|
66
|
+
*/
|
|
67
|
+
async getInitializeRequest(sessionId) {
|
|
68
|
+
return this.initializeRequests.get(sessionId);
|
|
43
69
|
}
|
|
44
70
|
/**
|
|
45
71
|
* Get the current number of events stored.
|
package/dist/event-store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-store.js","sourceRoot":"","sources":["../src/event-store.ts"],"names":[],"mappings":"AAeA;;;;GAIG;AACH,MAAM,OAAO,kBAAkB;IACrB,MAAM,GAAG,IAAI,GAAG,EAGrB,CAAC;
|
|
1
|
+
{"version":3,"file":"event-store.js","sourceRoot":"","sources":["../src/event-store.ts"],"names":[],"mappings":"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"}
|
package/dist/http.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
1
2
|
import type { EventStoreFactory, ServerHandle, StatelessServerFactory, StatefulServerFactory } from "./types.js";
|
|
2
3
|
export type { EventStore, EventStoreFactory, ServerHandle, StatelessServerFactory, StatefulServerFactory, } from "./types.js";
|
|
3
4
|
export type { ServerFactory } from "./types.js";
|
|
@@ -29,9 +30,9 @@ export interface HttpServerSessionOptions {
|
|
|
29
30
|
* Called for cleanup paths: TTL expiration, DELETE requests, transport close, and server shutdown.
|
|
30
31
|
* Useful for cleaning up session-scoped resources like database connections or client state.
|
|
31
32
|
*
|
|
32
|
-
* Note: Event stores are
|
|
33
|
-
* (Redis, DB)
|
|
34
|
-
*
|
|
33
|
+
* Note: Event stores are only cleared on explicit DELETE requests to allow session restoration
|
|
34
|
+
* from persistent stores (Redis, DB) after server restarts or TTL expiration. If you need to
|
|
35
|
+
* clean up old event store data, implement a retention policy in your EventStore implementation.
|
|
35
36
|
*
|
|
36
37
|
* In TTL cleanup, the callback is invoked but not awaited to avoid blocking the cleanup interval.
|
|
37
38
|
* In all other paths (DELETE, transport close, shutdown), async callbacks are awaited.
|
|
@@ -57,6 +58,20 @@ export interface HttpServerSessionOptions {
|
|
|
57
58
|
* @deprecated SSE transport is deprecated in favor of Streamable HTTP.
|
|
58
59
|
*/
|
|
59
60
|
legacySse?: LegacySseOptions;
|
|
61
|
+
/**
|
|
62
|
+
* Callback invoked after a session has been restored from persistent storage.
|
|
63
|
+
* This is called AFTER the initialized notification has been sent and processed,
|
|
64
|
+
* allowing the server's oninitialized callback to complete.
|
|
65
|
+
*
|
|
66
|
+
* Use this to wait for any async initialization that happens in your server's
|
|
67
|
+
* oninitialized callback (e.g., connecting upstream servers, loading resources).
|
|
68
|
+
*
|
|
69
|
+
* The restoration will not complete until this callback resolves.
|
|
70
|
+
*
|
|
71
|
+
* @param sessionId - The ID of the restored session
|
|
72
|
+
* @param server - The restored McpServer instance
|
|
73
|
+
*/
|
|
74
|
+
onSessionRestored?: (sessionId: string, server: McpServer) => Promise<void>;
|
|
60
75
|
}
|
|
61
76
|
/**
|
|
62
77
|
* Base HTTP server options without session configuration.
|
package/dist/http.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAQzE,OAAO,KAAK,EAEV,iBAAiB,EACjB,YAAY,EACZ,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,UAAU,EACV,iBAAiB,EACjB,YAAY,EACZ,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AAGpB,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sDAAsD;IACtD,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,wBAAwB;IACvC,kBAAkB,CAAC,EAAE,MAAM,MAAM,CAAC;IAClC;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;;;;;;;;;OAaG;IACH,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D;;;;;;;;;;OAUG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC;;;;OAIG;IACH,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B;;;;;;;;;;;;OAYG;IACH,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7E;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,0BAA2B,SAAQ,qBAAqB;IACvE,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,yBAA0B,SAAQ,qBAAqB;IACtE,QAAQ,EAAE,wBAAwB,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,MAAM,iBAAiB,GACzB,0BAA0B,GAC1B,yBAAyB,CAAC;AAyD9B;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CACvB,aAAa,EAAE,sBAAsB,EACrC,OAAO,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,UAAU,CAAC,CAAC,GAAG;IAC3D,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,GACA,OAAO,CAAC,YAAY,CAAC,CAAC;AAEzB;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CACvB,aAAa,EAAE,qBAAqB,EACpC,OAAO,EAAE,OAAO,CAAC,qBAAqB,CAAC,GAAG;IACxC,QAAQ,EAAE,wBAAwB,CAAC;CACpC,GACA,OAAO,CAAC,YAAY,CAAC,CAAC"}
|
package/dist/http.js
CHANGED
|
@@ -72,8 +72,10 @@ async function serveHttpStateless(serverFactory, options) {
|
|
|
72
72
|
*/
|
|
73
73
|
function serveHttpStateful(serverFactory, options) {
|
|
74
74
|
const sessions = new Map();
|
|
75
|
+
const restorationInProgress = new Map();
|
|
75
76
|
const sessionIdGenerator = options.sessions.sessionIdGenerator ?? uuidv4;
|
|
76
77
|
const onSessionClosed = options.sessions.onSessionClosed;
|
|
78
|
+
const onSessionRestored = options.sessions.onSessionRestored;
|
|
77
79
|
// Default event store factory creates in-memory instances
|
|
78
80
|
const eventStoreFactory = options.sessions.eventStoreFactory ?? (() => new InMemoryEventStore());
|
|
79
81
|
// Helper to safely invoke onSessionClosed callback
|
|
@@ -105,6 +107,106 @@ function serveHttpStateful(serverFactory, options) {
|
|
|
105
107
|
}
|
|
106
108
|
}
|
|
107
109
|
};
|
|
110
|
+
/**
|
|
111
|
+
* Attempt to restore a session from persistent storage.
|
|
112
|
+
* Only supported for Streamable HTTP sessions with event stores that implement
|
|
113
|
+
* the restoration methods (hasSession, getInitializeRequest).
|
|
114
|
+
*
|
|
115
|
+
* @param sessionId - The ID of the session to restore
|
|
116
|
+
* @returns The restored session state, or undefined if restoration is not possible
|
|
117
|
+
*/
|
|
118
|
+
const restoreSession = async (sessionId) => {
|
|
119
|
+
const eventStore = await eventStoreFactory(sessionId);
|
|
120
|
+
// Check if restoration is supported and session exists in the event store
|
|
121
|
+
if (!eventStore.hasSession || !eventStore.getInitializeRequest) {
|
|
122
|
+
return undefined;
|
|
123
|
+
}
|
|
124
|
+
const hasData = await eventStore.hasSession(sessionId);
|
|
125
|
+
if (!hasData) {
|
|
126
|
+
return undefined;
|
|
127
|
+
}
|
|
128
|
+
const initRequest = await eventStore.getInitializeRequest(sessionId);
|
|
129
|
+
if (!initRequest) {
|
|
130
|
+
return undefined;
|
|
131
|
+
}
|
|
132
|
+
// Recreate server and transport
|
|
133
|
+
const server = await serverFactory(sessionId);
|
|
134
|
+
let sessionState;
|
|
135
|
+
const transport = new WebStandardStreamableHTTPServerTransport({
|
|
136
|
+
sessionIdGenerator: () => sessionId,
|
|
137
|
+
eventStore,
|
|
138
|
+
onsessioninitialized: () => {
|
|
139
|
+
sessionState = {
|
|
140
|
+
type: "streamable-http",
|
|
141
|
+
transport,
|
|
142
|
+
server,
|
|
143
|
+
eventStore,
|
|
144
|
+
lastActivity: Date.now(),
|
|
145
|
+
activeStreams: 0,
|
|
146
|
+
};
|
|
147
|
+
sessions.set(sessionId, sessionState);
|
|
148
|
+
},
|
|
149
|
+
});
|
|
150
|
+
await server.connect(transport);
|
|
151
|
+
transport.onclose = () => {
|
|
152
|
+
// Don't clear event store on transport close - preserve data for potential
|
|
153
|
+
// session restoration. Event stores are only cleared on explicit DELETE.
|
|
154
|
+
sessions.delete(sessionId);
|
|
155
|
+
notifySessionClosed(sessionId);
|
|
156
|
+
};
|
|
157
|
+
// Create mock request to replay initialization
|
|
158
|
+
const mockInitRequest = new Request("http://localhost/mcp", {
|
|
159
|
+
method: "POST",
|
|
160
|
+
headers: {
|
|
161
|
+
"Content-Type": "application/json",
|
|
162
|
+
Accept: "application/json, text/event-stream",
|
|
163
|
+
},
|
|
164
|
+
body: JSON.stringify(initRequest),
|
|
165
|
+
});
|
|
166
|
+
// Process init request to restore session state
|
|
167
|
+
// Must consume response body to complete the request cycle
|
|
168
|
+
const initResponse = await transport.handleRequest(mockInitRequest);
|
|
169
|
+
if (initResponse.body) {
|
|
170
|
+
// Consume the response body (may be SSE stream)
|
|
171
|
+
const reader = initResponse.body.getReader();
|
|
172
|
+
while (true) {
|
|
173
|
+
const { done } = await reader.read();
|
|
174
|
+
if (done)
|
|
175
|
+
break;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
// Send the "initialized" notification to complete the initialization flow
|
|
179
|
+
// This triggers the server's oninitialized callback which may initialize
|
|
180
|
+
// upstream connections or other session-scoped resources
|
|
181
|
+
const mockInitializedNotification = new Request("http://localhost/mcp", {
|
|
182
|
+
method: "POST",
|
|
183
|
+
headers: {
|
|
184
|
+
"Content-Type": "application/json",
|
|
185
|
+
Accept: "application/json, text/event-stream",
|
|
186
|
+
"mcp-session-id": sessionId,
|
|
187
|
+
},
|
|
188
|
+
body: JSON.stringify({
|
|
189
|
+
jsonrpc: "2.0",
|
|
190
|
+
method: "notifications/initialized",
|
|
191
|
+
params: {},
|
|
192
|
+
}),
|
|
193
|
+
});
|
|
194
|
+
const notifResponse = await transport.handleRequest(mockInitializedNotification);
|
|
195
|
+
if (notifResponse.body) {
|
|
196
|
+
const reader = notifResponse.body.getReader();
|
|
197
|
+
while (true) {
|
|
198
|
+
const { done } = await reader.read();
|
|
199
|
+
if (done)
|
|
200
|
+
break;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
// Wait for full initialization if callback provided
|
|
204
|
+
// This allows the server's oninitialized callback to complete before returning
|
|
205
|
+
if (onSessionRestored) {
|
|
206
|
+
await onSessionRestored(sessionId, server);
|
|
207
|
+
}
|
|
208
|
+
return sessionState;
|
|
209
|
+
};
|
|
108
210
|
// Session TTL configuration
|
|
109
211
|
const sessionTtlMs = options.sessions.sessionTtlMs;
|
|
110
212
|
const cleanupIntervalMs = options.sessions.cleanupIntervalMs ?? 60000; // Default 1 minute
|
|
@@ -119,14 +221,12 @@ function serveHttpStateful(serverFactory, options) {
|
|
|
119
221
|
continue;
|
|
120
222
|
}
|
|
121
223
|
if (now - session.lastActivity > sessionTtlMs) {
|
|
122
|
-
// Session expired - close transport and remove
|
|
224
|
+
// Session expired - close transport and remove from memory
|
|
225
|
+
// Note: We do NOT clear the event store here to allow session restoration
|
|
226
|
+
// if the client reconnects. Event stores are only cleared on explicit DELETE.
|
|
123
227
|
session.transport.close().catch(() => {
|
|
124
228
|
// Ignore close errors for expired sessions
|
|
125
229
|
});
|
|
126
|
-
// Clear event store if this is a streamable HTTP session
|
|
127
|
-
if (session.type === "streamable-http") {
|
|
128
|
-
session.eventStore.clear();
|
|
129
|
-
}
|
|
130
230
|
sessions.delete(sessionId);
|
|
131
231
|
// Notify callback (fire and forget to avoid blocking interval)
|
|
132
232
|
notifySessionClosed(sessionId);
|
|
@@ -187,6 +287,11 @@ function serveHttpStateful(serverFactory, options) {
|
|
|
187
287
|
const server = await serverFactory(sid);
|
|
188
288
|
// Call event store factory with session ID (supports async factories)
|
|
189
289
|
const eventStore = await eventStoreFactory(sid);
|
|
290
|
+
// Store the initialize request for potential session restoration
|
|
291
|
+
if (eventStore.storeInitializeRequest) {
|
|
292
|
+
// Cast through unknown because isInitializeRequest narrows to a type without jsonrpc
|
|
293
|
+
await eventStore.storeInitializeRequest(sid, body);
|
|
294
|
+
}
|
|
190
295
|
const transport = new WebStandardStreamableHTTPServerTransport({
|
|
191
296
|
// Use our pre-generated session ID
|
|
192
297
|
sessionIdGenerator: () => sid,
|
|
@@ -207,7 +312,8 @@ function serveHttpStateful(serverFactory, options) {
|
|
|
207
312
|
// Connect server to transport before handling the request
|
|
208
313
|
await server.connect(transport);
|
|
209
314
|
transport.onclose = () => {
|
|
210
|
-
|
|
315
|
+
// Don't clear event store on transport close - preserve data for potential
|
|
316
|
+
// session restoration. Event stores are only cleared on explicit DELETE.
|
|
211
317
|
sessions.delete(sid);
|
|
212
318
|
// Notify callback (fire and forget since onclose is sync)
|
|
213
319
|
notifySessionClosed(sid);
|
|
@@ -216,7 +322,22 @@ function serveHttpStateful(serverFactory, options) {
|
|
|
216
322
|
}
|
|
217
323
|
// Existing session
|
|
218
324
|
if (sessionId) {
|
|
219
|
-
|
|
325
|
+
let session = sessions.get(sessionId);
|
|
326
|
+
// Attempt restoration if session not in memory
|
|
327
|
+
if (!session) {
|
|
328
|
+
// Use restoration lock to prevent concurrent restoration attempts
|
|
329
|
+
let restorationPromise = restorationInProgress.get(sessionId);
|
|
330
|
+
if (!restorationPromise) {
|
|
331
|
+
restorationPromise = restoreSession(sessionId);
|
|
332
|
+
restorationInProgress.set(sessionId, restorationPromise);
|
|
333
|
+
}
|
|
334
|
+
try {
|
|
335
|
+
session = await restorationPromise;
|
|
336
|
+
}
|
|
337
|
+
finally {
|
|
338
|
+
restorationInProgress.delete(sessionId);
|
|
339
|
+
}
|
|
340
|
+
}
|
|
220
341
|
if (!session) {
|
|
221
342
|
return c.text("Session not found", 404);
|
|
222
343
|
}
|
|
@@ -318,8 +439,8 @@ function serveHttpStateful(serverFactory, options) {
|
|
|
318
439
|
clearInterval(cleanupInterval);
|
|
319
440
|
}
|
|
320
441
|
// Close all active sessions
|
|
321
|
-
//
|
|
322
|
-
//
|
|
442
|
+
// Event stores are NOT cleared - only explicit DELETE clears them
|
|
443
|
+
// This allows session restoration after server restart
|
|
323
444
|
for (const [sessionId, session] of sessions) {
|
|
324
445
|
await session.transport.close().catch(() => {
|
|
325
446
|
// Ignore close errors during shutdown
|
package/dist/http.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
2
|
import type { EventStore as SdkEventStore } from "@modelcontextprotocol/sdk/server/webStandardStreamableHttp.js";
|
|
3
|
+
import type { JSONRPCMessage } from "@modelcontextprotocol/sdk/types.js";
|
|
3
4
|
/**
|
|
4
|
-
* Extended EventStore interface that includes cleanup method.
|
|
5
|
+
* Extended EventStore interface that includes cleanup method and session restoration support.
|
|
5
6
|
* Custom event store implementations must implement this interface.
|
|
6
7
|
*/
|
|
7
8
|
export interface EventStore extends SdkEventStore {
|
|
@@ -10,6 +11,27 @@ export interface EventStore extends SdkEventStore {
|
|
|
10
11
|
* Called when the session is being closed/deleted.
|
|
11
12
|
*/
|
|
12
13
|
clear(): void;
|
|
14
|
+
/**
|
|
15
|
+
* Check if the event store has data for the given session.
|
|
16
|
+
* Used during session restoration to determine if a session can be restored.
|
|
17
|
+
* @param sessionId - The ID of the session to check
|
|
18
|
+
* @returns true if the session exists in the store, false otherwise
|
|
19
|
+
*/
|
|
20
|
+
hasSession?(sessionId: string): Promise<boolean>;
|
|
21
|
+
/**
|
|
22
|
+
* Store the initialization request for session restoration.
|
|
23
|
+
* Called when a new session is created so it can be replayed during restoration.
|
|
24
|
+
* @param sessionId - The ID of the session
|
|
25
|
+
* @param request - The initialize request message to store
|
|
26
|
+
*/
|
|
27
|
+
storeInitializeRequest?(sessionId: string, request: JSONRPCMessage): Promise<void>;
|
|
28
|
+
/**
|
|
29
|
+
* Retrieve the stored initialization request.
|
|
30
|
+
* Used during session restoration to replay the original initialize request.
|
|
31
|
+
* @param sessionId - The ID of the session
|
|
32
|
+
* @returns The stored initialize request, or undefined if not found
|
|
33
|
+
*/
|
|
34
|
+
getInitializeRequest?(sessionId: string): Promise<JSONRPCMessage | undefined>;
|
|
13
35
|
}
|
|
14
36
|
/**
|
|
15
37
|
* Handle returned by serve functions for controlling the server lifecycle.
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,IAAI,aAAa,EAAE,MAAM,+DAA+D,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,IAAI,aAAa,EAAE,MAAM,+DAA+D,CAAC;AACjH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEzE;;;GAGG;AACH,MAAM,WAAW,UAAW,SAAQ,aAAa;IAC/C;;;OAGG;IACH,KAAK,IAAI,IAAI,CAAC;IAEd;;;;;OAKG;IACH,UAAU,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEjD;;;;;OAKG;IACH,sBAAsB,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnF;;;;;OAKG;IACH,oBAAoB,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;CAC/E;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,2DAA2D;IAC3D,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAED;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAAG,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AAE1E;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG,CAClC,SAAS,EAAE,MAAM,KACd,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AAEpC;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAC9B,SAAS,EAAE,MAAM,KACd,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,CAC1B,SAAS,CAAC,EAAE,MAAM,KACf,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC"}
|