feat: add stateless streamable http mode (#8) #15
+82
−27
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.
Related Issue: #8
Why?
The overhead of a stateful streamable HTTP mode might not be necessary for a lot of use cases that submit a simple code execution task via POST request.
We observed some issue with the stateful mode concerning pending GET requests and supporting a stateless mode would simplify the MCP server integration.
What?
New mode:
streamable_http_stateless
POST /mcp
.GET /mcp
andDELETE /mcp
return 405 -> server-to-client notifications are not supported.CLI and Python API
streamable-http-stateless
as a mode:uvx mcp-run-python streamable-http-stateless --port 3001
TypeScript part:
runStreamableHttp
delegates to:createStatefulHttpServer(...)
createStatelessHttpServer(...)
createPathMatcher(req, url)
andpathMatch(req, url)
Usage