You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Does the MCP spec allow an SSE GET request before a Session ID is established? #1997
The client MAY issue an HTTP GET to the MCP endpoint. This can be used to open an SSE stream, allowing the server to communicate to the client, without the client first sending data via HTTP POST.
Does this mean the client can issue a GET request without any MCP session ID? Since the client doesn't send any data via HTTP POST, the server can not assign a session ID to it.
Should this request be treated as a legal MCP request? If it is, we don't know its client info and can't bind it to a certain session.
Does this mean the client can issue a GET request without any MCP session ID? Since the client doesn't send any data via HTTP POST, the server can not assign a session ID to it.
That being said, it is already the case that many servers don't use session IDs, so yes, you can send a GET without a session ID. If you do initialize and you get a session ID back then you should use that.
Should this request be treated as a legal MCP request? If it is, we don't know its client info and can't bind it to a certain session.
Yes, this is a big general problem with the streamable HTTP transport at the moment. Stateless servers (without session ID) have no way to bind some requests to client info. This will be fixed in the next spec. For now it's just a limitation of sessionless servers. If you care about client info, you should probably always use sessions.
Activity
pja-ant commentedon Jan 15, 2026
A lot of this stuff is poorly defined right now and this kind of thing is the focus of the Transports WG and the move towards stateless transport in the next release. See https://blog.modelcontextprotocol.io/posts/2025-12-19-mcp-transport-future/
That being said, it is already the case that many servers don't use session IDs, so yes, you can send a GET without a session ID. If you do initialize and you get a session ID back then you should use that.
Yes, this is a big general problem with the streamable HTTP transport at the moment. Stateless servers (without session ID) have no way to bind some requests to client info. This will be fixed in the next spec. For now it's just a limitation of sessionless servers. If you care about client info, you should probably always use sessions.
spacewander commentedon Jan 19, 2026
I see. Looking forward to the next spec!