Add @JsonIgnoreProperties(ignoreUnknown = true) to capability sub-records by rameshreddy-adutla · Pull Request #852 · modelcontextprotocol/java-sdk

@rameshreddy-adutla

…ords

The top-level ClientCapabilities and ServerCapabilities records have
@JsonIgnoreProperties(ignoreUnknown = true) but their nested sub-records
do not. Since ObjectMapper defaults to FAIL_ON_UNKNOWN_PROPERTIES = true,
unknown fields on sub-objects cause deserialization failures.

This already caused a real breakage when elicitation gained form/url
fields (modelcontextprotocol#724). The MCP spec explicitly does not close capability objects
(additionalProperties is never set to false), so SDKs must tolerate
unknown fields for forward compatibility.

Add the annotation to:
- ClientCapabilities.Sampling
- ClientCapabilities.Elicitation, Elicitation.Form, Elicitation.Url
- ServerCapabilities.CompletionCapabilities
- ServerCapabilities.LoggingCapabilities
- ServerCapabilities.PromptCapabilities
- ServerCapabilities.ResourceCapabilities
- ServerCapabilities.ToolCapabilities

Fixes modelcontextprotocol#766

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>