diff --git a/package-lock.json b/package-lock.json index 14b3a9f35..002fe2088 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@modelcontextprotocol/sdk", - "version": "1.18.0", + "version": "1.18.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@modelcontextprotocol/sdk", - "version": "1.18.0", + "version": "1.18.1", "license": "MIT", "dependencies": { "ajv": "^6.12.6", diff --git a/package.json b/package.json index fda002f99..bb36a6d98 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@modelcontextprotocol/sdk", - "version": "1.18.0", + "version": "1.18.1", "description": "Model Context Protocol implementation for TypeScript", "license": "MIT", "author": "Anthropic, PBC (https://anthropic.com)", diff --git a/src/server/streamableHttp.ts b/src/server/streamableHttp.ts index 3bf84e430..c0da91704 100644 --- a/src/server/streamableHttp.ts +++ b/src/server/streamableHttp.ts @@ -303,6 +303,11 @@ export class StreamableHTTPServerTransport implements Transport { res.on("close", () => { this._streamMapping.delete(this._standaloneSseStreamId); }); + + // Add error handler for standalone SSE stream + res.on("error", (error) => { + this.onerror?.(error as Error); + }); } /** @@ -334,6 +339,11 @@ export class StreamableHTTPServerTransport implements Transport { } }); this._streamMapping.set(streamId, res); + + // Add error handler for replay stream + res.on("error", (error) => { + this.onerror?.(error as Error); + }); } catch (error) { this.onerror?.(error as Error); } @@ -520,6 +530,11 @@ export class StreamableHTTPServerTransport implements Transport { this._streamMapping.delete(streamId); }); + // Add error handler for stream write errors + res.on("error", (error) => { + this.onerror?.(error as Error); + }); + // handle each message for (const message of messages) { this.onmessage?.(message, { authInfo, requestInfo });