MCP

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.

get/api/v1/mcp

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

Changed in 18 of the 89 revisions of this API.710959

  • ece7a25b7a4433See the full diff
    • ●

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

      response-property-enum-value-added

    • ●

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

      response-property-enum-value-added

    • ●

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

      response-property-enum-value-added

    • ○

      added the optional property / to the response with the status

      response-optional-property-added

    • ○

      added the optional property / to the response with the status

      response-optional-property-added

    • ○

      added the optional property / to the response with the status

      response-optional-property-added

  • 78d5888d28e53414See the full diff
    • ▲

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

      response-property-type-changed

    • ▲

      removed the required property from the response with the status

      response-required-property-removed

    • ▲

      removed the required property from the response with the status

      response-required-property-removed

    • ●

      removed the optional property / from the response with the status

      response-optional-property-removed

    • ●

      removed the optional property / from the response with the status

      response-optional-property-removed

    • ●

      removed the optional property / from the response with the status

      response-optional-property-removed

    • ●

      removed the optional property / from the response with the status

      response-optional-property-removed

    • ○

      added the optional property / to the response with the status

      response-optional-property-added

    • ○

      added the optional property to the response with the status

      response-optional-property-added

    • ○

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

      response-property-enum-value-removed

    • ○

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

      response-property-enum-value-removed

    • ○

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

      response-property-enum-value-removed

    • ○

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

      response-property-enum-value-removed

    • ○

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

      response-property-enum-value-removed

    • ○

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

      response-property-enum-value-removed

    • ○

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

      response-property-enum-value-removed

    • ○

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

      response-property-enum-value-removed

    • ○

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

      response-property-enum-value-removed

    • ○

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

      response-property-enum-value-removed

    • ○

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

      response-property-enum-value-removed

    • ○

      added the required property to the response with the status

      response-required-property-added

    • ●

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

      response-property-enum-value-added

    • ●

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

      response-property-enum-value-added

    • ●

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

      response-property-enum-value-added

    • ●

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

      response-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

  • 1c5e270b412441See the full diff
    • ●

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

      response-property-enum-value-added

    • ●

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

      response-property-enum-value-added

    • ●

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

      response-property-enum-value-added

    • ●

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

      response-property-enum-value-added

    • ○

      added the new optional header request parameter X-Query-Validation

      new-optional-request-parameter

    • ●

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

      response-property-enum-value-added

    • ●

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

      response-property-enum-value-added

    • ●

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

      response-property-enum-value-added

    • ●

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

      response-property-enum-value-added

    • ●

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

      response-property-enum-value-added

    • ●

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

      response-property-enum-value-added

    • ●

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

      response-property-enum-value-added

    • ●

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

      response-property-enum-value-added

    • ●

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

      response-property-enum-value-added

    • ●

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

      response-property-enum-value-added

    • ●

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

      response-property-enum-value-added

    • ●

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

      response-property-enum-value-added

    • ●

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

      response-property-enum-value-added

    • ●

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

      response-property-enum-value-added

    • ●

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

      response-property-enum-value-added

    • ●

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

      response-property-enum-value-added

    • ●

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

      response-property-enum-value-added

    • ●

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

      response-property-enum-value-added

    • ●

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

      response-property-enum-value-added

    • ●

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

      response-property-enum-value-added

    • ●

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

      response-property-enum-value-added

    • ●

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

      response-property-enum-value-added

    • ●

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

      response-property-enum-value-added

    • ●

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

      response-property-enum-value-added

    • ●

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

      response-property-enum-value-added

    • ●

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

      response-property-enum-value-added

    • ●

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

      response-property-enum-value-added

    • ●

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

      response-property-enum-value-added

    • ●

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

      response-property-enum-value-added

    • ●

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

      response-property-enum-value-added

    • ●

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

      response-property-enum-value-added

    • ●

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

      response-property-enum-value-added

    • ●

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

      response-property-enum-value-added

    • ●

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

      response-property-enum-value-added

    • ●

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

      response-property-enum-value-added

    • ●

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

      response-property-enum-value-added

    • ●

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

      response-property-enum-value-added

    • ●

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

      response-property-enum-value-added

    • ●

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

      response-property-enum-value-added

    • ●

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

      response-property-enum-value-added

    • ●

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

      response-property-enum-value-added

    • ●

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

      response-property-enum-value-added

    • ●

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

      response-property-enum-value-added

    • ●

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

      response-property-enum-value-added

  • 4c6e896dd9f412See the full diff
    • ▲

      removed the success response with the status

      response-success-status-removed

    • ○

      added the new optional header request parameter MCP-Protocol-Version

      new-optional-request-parameter

    • ○

      added the non-success response with the status

      response-non-success-status-added

    • ●

      deleted the query request parameter token

      request-parameter-removed

    • ●

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

      response-property-enum-value-added

    • ●

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

      response-property-enum-value-added

    • ●

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

      response-property-enum-value-added

    • ●

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

      response-property-enum-value-added

    • ●

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

      response-property-enum-value-added

    • ●

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

      response-property-enum-value-added