modelcontextprotocol / modelcontextprotocol/python-sdk

MCP client doesn't not initialize new session when getting 404 session not found

Offen
#1,676 4 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

bug improves spec compliance P2 ready for work
Vorherrschende Sprache
Python
Sterne
24.3k
Forks
4k
Ø Merge
1 T. 1 Std.
Gemergte PRs (30 T.)
31

Beschreibung

Initial Checks
Description

Per https://modelcontextprotocol.io/specification/2025-11-25/basic/transports#session-management

When a client receives HTTP 404 in response to a request containing an MCP-Session-Id, it MUST start a new session by sending a new InitializeRequest without a session ID attached.

This is not the case with the python client. It just sends a session terminated error in streamable_http.py

Example Code

Python & MCP Python SDK
mcp: 1.22.0
python: 3.14.0

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne mit src/mcp/client/streamable_http.py um Zeile 277, wo eine 404-Antwort mit einer MCP-Session-Id behandelt wird, und vergleiche dieses Verhalten mit der im Issue verlinkten Anforderung an die Sitzungsverwaltung. Verfolge den Einstiegspunkt der Initialisierung des Clients und überprüfe das abgeschlossene Verhalten, indem du eine 404-Antwort ausführst: Der Client sollte eine neue InitializeRequest ohne eine Session-ID senden, anstatt einen session-terminated-Fehler zurückzugeben.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
api
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Ruhig
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
70/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.