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.
This is the same underlying bug as modelcontextprotocol/java-sdk#724, fixed in java-sdk PR #731 (SDK 0.18.0+).
To Reproduce
- Deploy OpenMetadata 1.12.1 (or 1.11.x) with MCP enabled
- Connect with any MCP client using protocol
2025-11-25 (e.g. Claude Code ≥ 2.1.74)
- Client sends
initialize request:
{
"method": "initialize",
"params": {
"protocolVersion": "2025-11-25",
"capabilities": {
"roots": {},
"elicitation": {
"form": {},
"url": {}
}
}
}
}
- Server responds with error:
{"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)
- MCP Java SDK: 0.14.0 (1.11.x) / 0.17.1 (1.12.1) — both affected
- Client: Claude Code 2.1.74
Additional context
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.
Affected module
Backend — MCP server (
openmetadata-mcp)Describe the bug
MCP clients implementing the
2025-11-25specification (Claude Code 2.1.74+, VS Code Copilot, etc.) sendelicitationcapabilities in theinitializerequest. The OpenMetadata MCP server fails to deserialize this becauseClientCapabilities.Elicitationin Java MCP SDK ≤ 0.17.1 is an empty record with no known properties. Jackson throwsUnrecognizedPropertyExceptionon theformfield, 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.
This is the same underlying bug as modelcontextprotocol/java-sdk#724, fixed in java-sdk PR #731 (SDK 0.18.0+).
To Reproduce
2025-11-25(e.g. Claude Code ≥ 2.1.74)initializerequest:{ "method": "initialize", "params": { "protocolVersion": "2025-11-25", "capabilities": { "roots": {}, "elicitation": { "form": {}, "url": {} } } } }Expected behavior
The MCP server should accept
initializerequests from clients advertising2025-11-25capabilities (includingelicitation), negotiate down to its supported protocol version, and respond normally.Version:
pom.xml)Additional context
Suggested fix: Upgrade the Java MCP SDK dependency from
0.17.1to≥ 0.18.0inpom.xml:This is the same type of fix as #23982 / PR #24850 (SDK 0.11.2 → 0.14.0 for
2025-06-18support).Workaround: We wrote a STDIO→HTTP proxy that strips
elicitationcapabilities from theinitializerequest and translatesprotocolVersionbetween2025-11-25(client) and2025-06-18(server). Happy to share if others need it before the fix ships.