modelcontextprotocol / modelcontextprotocol/typescript-sdk
SSEServerTransport doesn't seem to close properly
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- TypeScript
- Sterne
- 13.4k
- Forks
- 2.2k
- Ø Merge
- 3 T. 15 Std.
- Gemergte PRs (30 T.)
- 4
Beschreibung
Describe the bug
While reviewing the source code, I noticed that the close method is never actually called, which means res.end is never triggered:
https://github.com/modelcontextprotocol/typescript-sdk/blob/main/src/server/sse.ts
In multiple places, it seems like onclose is called directly when close should be used instead, to ensure proper cleanup.
To Reproduce
I created a minimal reproduction here:
https://github.com/nichtsam/transport-issue
Steps to reproduce the behavior:
npm run startnpx @modelcontextprotocol/inspector- connect to
http://localhost:3001/sse - disconnect
Expected behavior
res.end should be called via the close method to cleanly terminate the SSE connection.
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne in src/server/sse.ts und verfolge die close- und onclose-Pfade von SSEServerTransport, wobei du dich darauf konzentrierst, an welcher Stelle res.end erreicht werden sollte. Führe die Reproduktion mit npm run start aus und stelle dann über MCP Inspector eine Verbindung her und trenne sie wieder; abgeschlossen ist die Aufgabe, wenn die SSE-Antwort über close sauber beendet wird und die beobachtete Bereinigung dem erwarteten Verhalten entspricht.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- typescript
- Bereich
- backend, networking
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Ruhig
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 67/100