MCP GET: no server-to-client stream (405)
The MCP Streamable HTTP transport lets a client GET the endpoint to open a server-to-client text/event-stream, and lets the server answer 405 Method Not Allowed when it offers no such stream. This server sends no notifications, so an authenticated GET answers 405 with Allow: POST, a JSON-RPC error body (code -32004) and X-Mcp-Error-Code: -32004; a conforming client (the reference @modelcontextprotocol/sdk included) reads the 405 as no stream here and does not retry. Without a credential the GET answers 401 with the WWW-Authenticate challenge naming /.well-known/oauth-protected-resource/api/v1/mcp, which is where a client that has only run the public handshake learns to start the OAuth flow. Until 2026-09-22 an authenticated GET answered 200 text/event-stream and closed the body at once, which conforming clients reconnected to every second. Every JSON-RPC request goes over POST.
Headers
Opt into strict query-name validation. The default is compatible: unknown names are ignored and reported in X-Query-Ignored. With strict, an unknown name returns 400 bad_request with error.reason unknown_query_parameter before the handler runs, including when its percent escape is incomplete.
Session ID minted by the server on initialize.
The negotiated MCP protocol revision, sent on every request after initialize (MCP Streamable HTTP transport). Accepted values: 2025-11-25, 2025-06-18, 2025-03-26, 2024-11-05. Any other value answers HTTP 400 with JSON-RPC error -32600. Absent, the request is served as 2025-03-26.
Changes
Changed in 18 of the 89 revisions of this API.710959
- ●
added the new
freshness_ceiling_unsatisfiedenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
freshness_ceiling_unsatisfiedenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
freshness_ceiling_unsatisfiedenum value to the/response property for the response statusresponse-property-enum-value-added
- ○
added the optional property
/to the response with the statusresponse-optional-property-added
- ○
added the optional property
/to the response with the statusresponse-optional-property-added
- ○
added the optional property
/to the response with the statusresponse-optional-property-added
- ●
- ▲
the
/response's property type changed fromstringtointegerfor statusresponse-property-type-changed
- ▲
removed the required property
from the response with the statusresponse-required-property-removed
- ▲
removed the required property
from the response with the statusresponse-required-property-removed
- ●
removed the optional property
/from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
/from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
/from the response with the statusresponse-optional-property-removed
- ●
removed the optional property
/from the response with the statusresponse-optional-property-removed
- ○
added the optional property
/to the response with the statusresponse-optional-property-added
- ○
added the optional property
to the response with the statusresponse-optional-property-added
- ○
removed the
account_lockedenum value from the/response property for the response statusresponse-property-enum-value-removed
- ○
removed the
bad_requestenum value from the/response property for the response statusresponse-property-enum-value-removed
- ○
removed the
forbiddenenum value from the/response property for the response statusresponse-property-enum-value-removed
- ○
removed the
insufficient_scopeenum value from the/response property for the response statusresponse-property-enum-value-removed
- ○
removed the
internal_errorenum value from the/response property for the response statusresponse-property-enum-value-removed
- ○
removed the
invalid_api_keyenum value from the/response property for the response statusresponse-property-enum-value-removed
- ○
removed the
not_foundenum value from the/response property for the response statusresponse-property-enum-value-removed
- ○
removed the
rate_limit_unavailableenum value from the/response property for the response statusresponse-property-enum-value-removed
- ○
removed the
rate_limitedenum value from the/response property for the response statusresponse-property-enum-value-removed
- ○
removed the
request_timeoutenum value from the/response property for the response statusresponse-property-enum-value-removed
- ○
removed the
subscription_requiredenum value from the/response property for the response statusresponse-property-enum-value-removed
- ○
added the required property
to the response with the statusresponse-required-property-added
- ▲
- ●
added the new
export_expiredenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
export_expiredenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
export_expiredenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
export_expiredenum value to the/response property for the response statusresponse-property-enum-value-added
This revision also has 3 changes that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog
- ●
- ●
added the new
unknown_query_parameterenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
unknown_query_parameterenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
unknown_query_parameterenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
unknown_query_parameterenum value to the/response property for the response statusresponse-property-enum-value-added
- ○
added the new optional
headerrequest parameterX-Query-Validationnew-optional-request-parameter
- ●
- ●
added the new
webhook_secret_rotation_not_preparedenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
webhook_secret_rotation_not_preparedenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
webhook_secret_rotation_not_preparedenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
webhook_secret_rotation_not_preparedenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
webhook_secret_rotation_overlap_activeenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
webhook_secret_rotation_overlap_activeenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
webhook_secret_rotation_overlap_activeenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
webhook_secret_rotation_overlap_activeenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
- ●
added the new
ip_rate_limitedenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
ip_rate_limitedenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
ip_rate_limitedenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
ip_rate_limitedenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
ip_throttledenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
ip_throttledenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
ip_throttledenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
ip_throttledenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
- ●
added the new
invalid_bodyenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
invalid_bodyenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
invalid_bodyenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
invalid_bodyenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
invalid_pathenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
invalid_pathenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
invalid_pathenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
invalid_pathenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
invalid_queryenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
invalid_queryenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
invalid_queryenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
invalid_queryenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
method_not_allowedenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
method_not_allowedenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
method_not_allowedenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
method_not_allowedenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
payload_too_largeenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
payload_too_largeenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
payload_too_largeenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
payload_too_largeenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
request_timeoutenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
request_timeoutenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
request_timeoutenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
request_timeoutenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
unsupported_media_typeenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
unsupported_media_typeenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
unsupported_media_typeenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
unsupported_media_typeenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
- ▲
removed the success response with the status
response-success-status-removed
- ○
added the new optional
headerrequest parameterMCP-Protocol-Versionnew-optional-request-parameter
- ○
added the non-success response with the status
response-non-success-status-added
- ▲
- ●
deleted the
queryrequest parametertokenrequest-parameter-removed
- ●
- ●
added the new
insufficient_scopeenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
insufficient_scopeenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
insufficient_scopeenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
monthly_quota_exceededenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
monthly_quota_exceededenum value to the/response property for the response statusresponse-property-enum-value-added
- ●
added the new
monthly_quota_exceededenum value to the/response property for the response statusresponse-property-enum-value-added
- ●