Repository navigation
Fix/mcp sse accept routing - #13
Merged
Merged
Conversation
MCP's Streamable HTTP transport requires clients to send `Accept: application/json, text/event-stream` on every POST. ESPAsyncWebServer reads any Accept containing text/event-stream as an SSE subscription and marks the request RCT_EVENT regardless of method, after which AsyncCallbackWebHandler::canHandle() declines it (it insists on isHTTP()) and the request falls through to the catch-all. Every spec-conformant client got a 404 while a bare curl worked. * replace the three /mcp server->on() routes with a custom AsyncWebHandler that matches on path alone, keeping the connection type out of routing * dispatch by method in handleEndpointRequest, so the client's GET probe for a server-initiated stream gets the 405 the spec prescribes, not 404 * return false from begin() when the endpoint handler cannot be allocated, rolling back the worker task instead of listening on a dead server * model the Accept-driven RCT_EVENT downgrade in the test mock and resolve routes per request, so the gap is reproducible rather than assumed away * cover both the POST and the GET stream probe with regression tests
* ship the /mcp routing fix for clients sending the Streamable HTTP Accept header; every consumer on 0.2.0 is unreachable by a conformant MCP client
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.
No description provided.