modelcontextprotocol / modelcontextprotocol/php-sdk

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

Ouverte
#356 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

2026-07-28 enhancement improves spec compliance needs design Schema
Langage dominant
PHP
Étoiles
1.6k
Forks
173
Merge moyen
2 j 49 min
PR mergées (30 j)
23

Description

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

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par l’issue globale #337 et SEP-2106, puis examinez src/Capability/Discovery/SchemaGenerator.php et SchemaValidator.php ainsi que l’attribut #[Schema] et les chemins reflection/DocBlock mentionnés ici. Cartographiez le flux de schéma simple existant avant d’évaluer comment la composition, les conditionnels, les références et les types union devraient être exposés et validés. Le travail est terminé lorsque le vocabulaire JSON Schema 2020-12 indiqué est pris en charge sur ces chemins sans affaiblir les valeurs par défaut de $ref same-document.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
php
Domaine
api, backend-api-design
Type d'issue
Fonctionnalité
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
Calme
Clarté
Plutôt claire
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.