Replies: 1 comment 3 replies
-
Hey SSE is the only remote transport available out of the box. SSE-based MCP servers currently seem to not support scaling via replicas out of the box. This is due to each request relying on a server-generated session ID, which is not shared across replicas. Workarounds for this problem seem to be limited to:
|
Beta Was this translation helpful? Give feedback.
3 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Pre-submission Checklist
Your Idea
Background
Currently, many community users integrate MCP via stdio in personal desktop AI assistants. However, we should also consider MCP used in enterprise environments. Here, I summarize challenges we encountered when introducing MCP to enterprise scenarios and hope to discuss potential solutions with the community.
A key distinction between enterprise and personal AI assistant scenarios is that MCP Servers are deployed on servers rather than locally.
Gateway Case
In this scenario, MCP Clients must send requests to a gateway, which then forwards them to specific MCP Servers. This requires clients to pass the target MCP Server name to the gateway.
Option 1:
Option 2:
In this option, the server must also include the MCP Server Name in SSE responses:
Subsequent requests would then use:
Session Recovery Case
After a session is established between an MCP Client and an MCP Server, how can we recover if the server becomes unavailable (e.g., crashes)? This recovery scenario is independent of whether requests pass through a gateway.
In the current implementation, failures are only detected when the client send a new request (e.g., call_tool), resulting in task failures and degraded user experience.
Option 1:
In the current SDK implementation, after a session is established between an MCP Client and an MCP Server, the Server sends a ping message to the Client every 15 seconds. If the client fails to receive any ping message for over 15 seconds, can we re-initiate the SSE connection? This would allow the client to establish a new session with other available instances of the same MCP Server.
Observability
Related discussions:
I have already seen many discussions about Trace in the community and I will continue to follow the community’s progress in this area.
MCP Server Registry
Related discussions:
For enterprise MCP Server Registry implementations, in addition to discovering MCP Servers themselves, we also need their service addresses. Therefore, extensible fields should be added to the published metadata to accommodate customized requirements across different scenarios.
Scope
Beta Was this translation helpful? Give feedback.
All reactions