Symptom
createMcpHandler's legacy stateless fallback answers a non-POST request with 405 and no Allow header.
Evidence what you'll see
- RFC 9110 requires
Allowon a405response.WebStandardStreamableHTTPServerTransport.handleUnsupportedRequest()already setsAllow: GET, POST, DELETE. - The stateless fallback only accepts
POST, so the expected header isAllow: POST.
Why it happens
The legacy stateless path returned 405 Method not allowed without setting Allow. Pull request 3002 adds Allow: POST on that path. Status and JSON-RPC body stay the same.
Affected versions
@modelcontextprotocol/server 2.3.1, Node 24.19.0.
Fix steps
0 of 1 done
Your check marks stay in this browser only.
How to check it worked
- A non-
POSTrequest to the statelesscreateMcpHandlerstill returns405, and the response includesAllow: POST.
If it still fails
- Tag
1.32.2was compared against merge895007fe728band does not contain it (diverged). - The pull request does not change the modern
WebStandardStreamableHTTPServerTransport405path, which already setsAllow.
Sources and credit
Summarized in our own words from these public reports. Credit goes to their authors.
Provided as is, without warranty. Try changes in a non-production environment and back up first. Security-related steps: verify against the official docs. Terms · Request removal or attribution change
Hit an error we don't cover? Submit it