[Doc] Clarify that StreamableHTTPTransport requires a single-process server#290
Merged
koic merged 1 commit intomodelcontextprotocol:mainfrom Apr 3, 2026
Merged
Conversation
…s server ## Motivation and Context `StreamableHTTPTransport` stores session and SSE stream state in memory using instance variables (`@sessions`, `@mutex`). This design requires all HTTP requests to be handled within the same process to share state. Process-based servers like Unicorn fork separate worker processes that do not share memory, which breaks session management and SSE connections. This requirement is not obvious from the current documentation. ## How Has This Been Tested? Documentation-only change. ## Breaking Changes None.
atesgoral
approved these changes
Apr 3, 2026
Contributor
|
We could probably introduce a session store adapter later |
9 tasks
koic
added a commit
that referenced
this pull request
Apr 7, 2026
## Motivation and Context PR #290 documented that `StreamableHTTPTransport` requires a single-process server. However, when running multiple server instances behind a load balancer, requests for the same session must be routed to the same instance since session state is stored in memory. This adds a note about using sticky sessions (session affinity) based on the `Mcp-Session-Id` header. ## How Has This Been Tested? Documentation-only change. ## Breaking Changes None.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation and Context
StreamableHTTPTransportstores session and SSE stream state in memory using instance variables (@sessions,@mutex). This design requires all HTTP requests to be handled within the same process to share state.Process-based servers like Unicorn fork separate worker processes that do not share memory, which breaks session management and SSE connections. This requirement is not obvious from the current documentation.
How Has This Been Tested?
Documentation-only change.
Breaking Changes
None.
Types of changes
Checklist