You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
MCP server crashes on elicitation capabilities from 2025-11-25 clients (Java SDK ≤ 0.17.1) #26454
Affected module
Backend — MCP server (openmetadata-mcp)
Describe the bug
MCP clients implementing the 2025-11-25 specification (Claude Code 2.1.74+, VS Code Copilot, etc.) send elicitation capabilities in the initialize request. The OpenMetadata MCP server fails to deserialize this because ClientCapabilities.Elicitation in Java MCP SDK ≤ 0.17.1 is an empty record with no known properties. Jackson throws UnrecognizedPropertyException on the form field, crashing the handshake before protocol version negotiation can complete.
As a result, no MCP client implementing the 2025-11-25 spec can connect at all.
{"jsonrpc":"2.0","id":0,"error":{"code":-32603,"message":"Unrecognized field \"form\" (class io.modelcontextprotocol.spec.McpSchema$ClientCapabilities$Elicitation), not marked as ignorable (0 known properties: ])\n at [Source: UNKNOWN; byte offset: #UNKNOWN] (through reference chain: ...McpSchema$ClientCapabilities$Elicitation[\"form\"])"}}
Connection fails — no tools are available to the client
Expected behavior
The MCP server should accept initialize requests from clients advertising 2025-11-25 capabilities (including elicitation), negotiate down to its supported protocol version, and respond normally.
Version:
OS: macOS 15.5 (client), Linux (server)
Python version: N/A (Java backend)
OpenMetadata version: 1.11.4 (also verified against 1.12.1 pom.xml)
Suggested fix: Upgrade the Java MCP SDK dependency from 0.17.1 to ≥ 0.18.0 in pom.xml:
<mcp-sdk.version>0.18.0</mcp-sdk.version>
This is the same type of fix as #23982 / PR #24850 (SDK 0.11.2 → 0.14.0 for 2025-06-18 support).
Workaround: We wrote a STDIO→HTTP proxy that strips elicitation capabilities from the initialize request and translates protocolVersion between 2025-11-25 (client) and 2025-06-18 (server). Happy to share if others need it before the fix ships.
Activity