[Schema] SEP-2106: Support JSON Schema 2020-12 vocabulary in SchemaGenerator (oneOf/anyOf/allOf/if-then-else/$ref)

Abierto
#356 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
35/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Tranquilo
Stack tecnológico
php

Línea de trabajo

Comienza con el issue general #337 y SEP-2106, y después inspecciona src/Capability/Discovery/SchemaGenerator.php y SchemaValidator.php, junto con el atributo #[Schema] y las rutas de reflection/DocBlock mencionadas aquí. Mapea el flujo de esquema simple existente antes de evaluar cómo deberían exponerse y validarse la composición, las condicionales, las referencias y los tipos unión. Se considera terminado cuando el vocabulario de JSON Schema 2020-12 indicado sea compatible en estas rutas sin debilitar los valores predeterminados de $ref same-document.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

2026-07-28 enhancement improves spec compliance needs design Schema

Implements the vocabulary portion of SEP-2106 for the MCP Spec 2026-07-28 release.

Tracked by umbrella #337.

Spec summary

inputSchema keeps type: "object" required but accepts any JSON Schema 2020-12 vocabulary (oneOf/anyOf/allOf/not, if/then/else, $ref/$defs/$anchor).

PHP SDK changes

  • src/Capability/Discovery/SchemaGenerator.php and SchemaValidator.php need to emit/validate full JSON Schema 2020-12 composition, conditionals, $ref (same-document only by default).
  • #[Schema] attribute should accept composition keywords.
  • Reflection/DocBlock paths today produce simple {type, properties} only — extend to surface union types as oneOf/anyOf.

Related

  • Umbrella #337
  • Companion sub-issues: non-object outputSchema, $ref hardening
Lenguaje dominante
PHP
Estrellas
1.6k
Forks
173
Merge medio
2 d 49 min
PR fusionados (30 d)
23

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de modelcontextprotocol/php-sdk

Todos los issues de modelcontextprotocol/php-sdk

Issues similares

Más issues de PHP

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.