MCP

MCP GET: no server-to-client stream (405)

Changed on

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.

get/api/v1/mcp

Request

Headers

X-Query-Validation'strict'

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.

Mcp-Session-Idstring

Session ID minted by the server on initialize.

MCP-Protocol-Version'2025-11-25' | '2025-06-18' | '2025-03-26' | '2024-11-05'

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

    • warning

      added the new freshness_ceiling_unsatisfied enum value to the / response property for the response status

    • warning

      added the new freshness_ceiling_unsatisfied enum value to the / response property for the response status

    • warning

      added the new freshness_ceiling_unsatisfied enum value to the / response property for the response status

    • info

      added the optional property / to the response with the status

    • info

      added the optional property / to the response with the status

    • info

      added the optional property / to the response with the status

    • breaking

      the / response's property type changed from string to integer for status

    • breaking

      removed the required property from the response with the status

    • breaking

      removed the required property from the response with the status

    • warning

      removed the optional property / from the response with the status

    • warning

      removed the optional property / from the response with the status

    • warning

      removed the optional property / from the response with the status

    • warning

      removed the optional property / from the response with the status

    • info

      added the optional property / to the response with the status

    • info

      added the optional property to the response with the status

    • info

      removed the account_locked enum value from the / response property for the response status

    • info

      removed the bad_request enum value from the / response property for the response status

    • info

      removed the forbidden enum value from the / response property for the response status

    • info

      removed the insufficient_scope enum value from the / response property for the response status

    • info

      removed the internal_error enum value from the / response property for the response status

    • info

      removed the invalid_api_key enum value from the / response property for the response status

    • info

      removed the not_found enum value from the / response property for the response status

    • info

      removed the rate_limit_unavailable enum value from the / response property for the response status

    • info

      removed the rate_limited enum value from the / response property for the response status

    • info

      removed the request_timeout enum value from the / response property for the response status

    • info

      removed the subscription_required enum value from the / response property for the response status

    • info

      added the required property to the response with the status