Skip to content

Commit 69fe30d

Browse files
Add changeset and co-locate _closed with _started
1 parent 9205f5e commit 69fe30d

2 files changed

Lines changed: 6 additions & 2 deletions

File tree

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@modelcontextprotocol/server': patch
3+
---
4+
5+
Prevent stack overflow in StreamableHTTPServerTransport.close() with re-entrant guard

packages/server/src/server/streamableHttp.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -225,6 +225,7 @@ export class WebStandardStreamableHTTPServerTransport implements Transport {
225225
// when sessionId is not set (undefined), it means the transport is in stateless mode
226226
private sessionIdGenerator: (() => string) | undefined;
227227
private _started: boolean = false;
228+
private _closed: boolean = false;
228229
private _streamMapping: Map<string, StreamMapping> = new Map();
229230
private _requestToStreamMapping: Map<RequestId, string> = new Map();
230231
private _requestResponseMap: Map<RequestId, JSONRPCMessage> = new Map();
@@ -899,8 +900,6 @@ export class WebStandardStreamableHTTPServerTransport implements Transport {
899900
return undefined;
900901
}
901902

902-
private _closed = false;
903-
904903
async close(): Promise<void> {
905904
if (this._closed) {
906905
return;

0 commit comments

Comments
 (0)