Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

Missing `@JsonIgnoreProperties(ignoreUnknown = true)` on capability sub-records

Aberta
#766 4 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
2/5
Tempo estimado
1-3 horas
Facilidade para iniciantes
55/100
Tipo de issue
Bug
Clareza
Claramente especificada
Status de atividade
Estagnada
Stack de tecnologia
java
Domínio
api

Direção de pesquisa

Comece em mcp-core/src/main/java/io/modelcontextprotocol/spec/McpSchema.java e revise os capability records listados, comparando-os com ClientCapabilities e ServerCapabilities. Considera-se concluído quando os campos desconhecidos de cada subregistro de capability afetado são ignorados durante a desserialização, incluindo os elicitation records aninhados.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

bug P1
Bug description

The top-level ClientCapabilities and ServerCapabilities records have @JsonIgnoreProperties(ignoreUnknown = true), but their nested sub-records do not. Since the ObjectMapper is constructed with default settings (FAIL_ON_UNKNOWN_PROPERTIES = true), any unknown field on a capability sub-object causes a deserialization failure.

This already caused a real breakage when the elicitation capability gained form and url fields (#724, fixed in #731), but the systemic issue remains — the next spec addition to any capability sub-object will break older SDK versions again.

Affected records

In McpSchema.java:

Record Line Has annotation?
ClientCapabilities 383 Yes
RootCapabilities 397 Yes
Sampling 410 No
Elicitation 437 No
Elicitation.Form 443 No
Elicitation.Url 450 No
ServerCapabilities 535 Yes
CompletionCapabilities 548 No
LoggingCapabilities 555 No
PromptCapabilities 565 No
ResourceCapabilities 576 No
ToolCapabilities 587 No
Spec reference

The spec schema explicitly states capabilities are not a closed set:

"Known capabilities are defined here, in this schema, but this is not a closed set: any client can define its own, additional capabilities."

ClientCapabilities in schema.jsonadditionalProperties: false is never set on any capability object or sub-object. Several sub-capabilities (sampling, elicitation, completions, logging) explicitly set additionalProperties: true.

Expected behavior

Unknown fields on capability sub-objects should be silently ignored, matching the behavior of the top-level ClientCapabilities and ServerCapabilities records.

Related
  • #734 — reports the same issue for ToolCapabilities specifically
  • #724 / #731 — the elicitation breakage that was fixed by adding fields, not by adding the annotation

AI Disclaimer

Linguagem predominante
Java
Estrelas
3.7k
Forks
1.1k
Merge médio
1d 15h
PRs com merge (30d)
9

Guia de contribuição

Abrir o guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de modelcontextprotocol/java-sdk

Todas as issues de modelcontextprotocol/java-sdk

Issues semelhantes

Mais issues de Java

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.