Skip to content

[2026-07-28] Java SDK 2.0.0 returns HTTP 500 for OpenAI server/discover requests #1072

Description

@morad3741

Starting on 2026-07-30 at approximately 07:10 UTC, we observed OpenAI's hosted MCP client begin sending server/discover before tools/list when using a remote MCP server through the
Responses API.

Our server uses the latest released MCP Java SDK, 2.0.0, which supports protocol revision 2025-11-25 but does not currently implement server/discover.

When the request reaches HttpServletStatelessServerTransport, the SDK returns HTTP 500 with an error similar to:

Missing handler for request type: server/discover

OpenAI then returns HTTP 424 external_connector_error from the Responses API. This prevents the entire response from being generated, even when the user sends a message such as "hi" that
does not require an MCP tool call.

We understand that support for the new stateless lifecycle is already tracked in:

We also found that the general unknown-handler behavior was fixed by:

However, that change was merged after the latest 2.0.0 release and does not appear to be available in a published version.

Could you please clarify:

  1. Which Java SDK version is expected to support the 2026-07-28 protocol revision?
  2. Is there an estimated release timeline?
  3. Will there be an interim 2.x release containing the unknown-handler fix from Fix error behavior on unregistered handlers in stateless server handler #800?
  4. Until full support is available, what is the recommended server behavior for server/discover so modern clients can safely fall back to the legacy initialize flow?

The 2026-07-28 Streamable HTTP specification requires an unsupported RPC to return HTTP 404 with JSON-RPC error -32601, rather than HTTP 500:

https://modelcontextprotocol.io/specification/2026-07-28/basic/transports/streamable-http

Environment

  • MCP Java SDK: 2.0.0
  • Maven artifacts:
    • io.modelcontextprotocol.sdk:mcp-core
    • io.modelcontextprotocol.sdk:mcp-json-jackson2
  • Server transport: HttpServletStatelessServerTransport
  • Server type: McpStatelessSyncServer
  • Java: Amazon Corretto 25
  • Spring Boot: 3.5.16
  • Transport: Streamable HTTP
  • Deployment: Stateless Kubernetes service
  • MCP capabilities: Tools only
  • Vector store: Not applicable
  • Client: OpenAI hosted remote MCP client through the Responses API

Steps to reproduce

  1. Start a stateless MCP server using Java SDK 2.0.0 and HttpServletStatelessServerTransport.
  2. Register tools, but do not register a custom server/discover handler.
  3. Send the following request:
curl -i http://localhost:8080/mcp \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -H 'MCP-Protocol-Version: 2026-07-28' \
  -H 'Mcp-Method: server/discover' \
  --data '{
    "jsonrpc": "2.0",
    "id": "discover-1",
    "method": "server/discover",
    "params": {
      "_meta": {
        "io.modelcontextprotocol/protocolVersion": "2026-07-28",
        "io.modelcontextprotocol/clientInfo": {
          "name": "reproduction-client",
          "version": "1.0.0"
        },
        "io.modelcontextprotocol/clientCapabilities": {}
      }
    }
  }'

4. Observe that the released SDK returns HTTP 500 with a missing-handler error.
5. Configure this server as a remote MCP tool in the OpenAI Responses API.
6. Observe that OpenAI returns HTTP 424 external_connector_error before producing an answer.

Expected behavior

Ideally, the Java SDK should support server/discover and the complete 2026-07-28 tools flow.

Until that support is available, an unsupported modern RPC should return a backward-compatible method-not-found response instead of HTTP 500, allowing clients that support both protocol
eras to fall back to the legacy initialize flow.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions