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
Ben-Home commentedon Aug 14, 2026
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…