Repository navigation
[2026-07-28] Java SDK 2.0.0 returns HTTP 500 for OpenAI server/discover requests #1072
Description
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:
- Which Java SDK version is expected to support the
2026-07-28protocol revision? - Is there an estimated release timeline?
- Will there be an interim
2.xrelease containing the unknown-handler fix from Fix error behavior on unregistered handlers in stateless server handler #800? - Until full support is available, what is the recommended server behavior for
server/discoverso modern clients can safely fall back to the legacyinitializeflow?
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-coreio.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
- Start a stateless MCP server using Java SDK
2.0.0andHttpServletStatelessServerTransport. - Register tools, but do not register a custom
server/discoverhandler. - 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.
Activity
tzolov commentedon Aug 17, 2026
This issue is already resolved on main. DefaultMcpStatelessServerHandler.handleRequest:34-38 now returns a proper -32601 JSON-RPC error for unknown methods
fix: return HTTP 404 for METHOD_NOT_FOUND in stateless transport (mod…