modelcontextprotocol / modelcontextprotocol/php-sdk
[Schema] SEP-2106: Support JSON Schema 2020-12 vocabulary in SchemaGenerator (oneOf/anyOf/allOf/if-then-else/$ref)
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- PHP
- Sterne
- 1.6k
- Forks
- 173
- Ø Merge
- 2 T. 49 Min.
- Gemergte PRs (30 T.)
- 23
Beschreibung
Implements the vocabulary portion of SEP-2106 for the MCP Spec 2026-07-28 release.
Tracked by umbrella #337.
Spec summary
inputSchemakeepstype: "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.phpandSchemaValidator.phpneed 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 asoneOf/anyOf.
Related
- Umbrella #337
- Companion sub-issues: non-object outputSchema,
$refhardening
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne mit dem übergeordneten Issue #337 und SEP-2106 und untersuche anschließend src/Capability/Discovery/SchemaGenerator.php und SchemaValidator.php sowie das #[Schema]-Attribut und die hier erwähnten Reflection-/DocBlock-Pfade. Bilde den bestehenden einfachen Schema-Ablauf ab, bevor du bewertest, wie Komposition, Bedingungen, Referenzen und Union-Typen sichtbar gemacht und validiert werden sollten. Als abgeschlossen gilt die Unterstützung des aufgeführten JSON-Schema-2020-12-Vokabulars über diese Pfade hinweg, ohne die Standardwerte für same-document $ref abzuschwächen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- php
- Bereich
- api, backend-api-design
- Issue-Typ
- Feature
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Ruhig
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100