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
Update MCP transport roadmap with stateless protocol and Server Cards
Expanded the roadmap to clarify the vision for a stateless MCP protocol, including standardizing 'stateless' behavior across SDKs. Added a new section introducing MCP Server Cards for improved server discovery and integration, and made minor clarifications to terminology.
Copy file name to clipboardExpand all lines: blog/content/posts/2025-12-19-mcp-transport-future.md
+10-2Lines changed: 10 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -28,14 +28,16 @@ In this post we share the roadmap for evolving the Streamable HTTP transport and
28
28
29
29
MCP was originally designed as a stateful protocol. Clients and servers maintain mutual awareness through a persistent, bidirectional channel that begins with a handshake to exchange capabilities and protocol version information. Because this state remains fixed throughout the connection, scaling requires techniques like sticky sessions or distributed session storage.
30
30
31
+
We envision a future where agentic applications are stateful, but the protocol itself doesn't need to be. A stateless protocol enables scale, while still providing features to support stateful application sessions when needed.
32
+
31
33
We are exploring ways to make MCP stateless by:
32
34
33
35
- Replacing the [`initialize` handshake](https://modelcontextprotocol.io/specification/2025-11-25/basic/lifecycle#initialization) and sending the shared information with each request and response instead.
34
-
- Providing a `discovery` mechanism for clients to query server capabilities if they need the information early, for scenarios such as UX hydration.
36
+
- Providing a `discovery` mechanism for clients to query server capabilities if they need the information early, for scenarios such as UI hydration.
35
37
36
38
These changes enable a more dynamic model where clients can optimistically attempt operations and receive clear error messages if a capability is unsupported.
37
39
38
-
> **NOTE:** Many SDKs offer a _`stateless`_ option in their server transport configuration. This flag controls whether the `Mcp-Session-Id` header is used - read below for more on sessions.
40
+
> **NOTE:** Many SDKs already offer a _`stateless`_ option in their server transport configuration, though the behavior varies across implementations. As part of this roadmap, we'll be working to standardize what "stateless" means across all official SDKs to ensure consistent behavior.
39
41
40
42
### Elevating Sessions
41
43
@@ -69,6 +71,12 @@ MCP uses JSON-RPC for all message envelopes, including method names and paramete
69
71
70
72
While we're keeping JSON-RPC as the message format, we're exploring ways to expose routing-critical information (such as the RPC method or tool name) via standard HTTP paths or headers. This would allow load balancers and API gateways to route traffic without parsing JSON bodies.
71
73
74
+
### Server Cards
75
+
76
+
Today, clients must complete a full initialization handshake just to learn basic information about an MCP server, like its capabilities or available tools. This creates friction for discovery, integration, and optimization scenarios.
77
+
78
+
We're exploring the direction of introducing [MCP Server Cards](https://github.com/modelcontextprotocol/modelcontextprotocol/issues/1649): structured metadata documents that servers expose through a standardized `/.well-known/mcp.json` endpoint. Server Cards enable clients to discover server capabilities, authentication requirements, and available primitives _before_ establishing a connection. This unlocks use cases like autoconfiguration, automated discovery, static security validation, and reduced latency for UI hydration — all without requiring the full initialization sequence.
79
+
72
80
### Pluggable Transports
73
81
74
82
The MCP Specification already supports [Custom Transports](https://modelcontextprotocol.io/specification/2025-11-25/basic/transports#custom-transports), allowing integrators to deploy alternatives that fit their specific needs.
0 commit comments