In einer Werkzeugdefinition wohnen zwei Arten von Problemen. Die erste ist strukturell: ein Typ, der kein JSON-Schema-Typ ist, ein erforderlicher Name, der nicht unter den Eigenschaften steht, ein Array ohne items, Strict ohne die Regeln, die Strict verlangt. Das wird abgelehnt, meist mit einer Meldung, die das Feld nennt, aber nicht den Grund. Die zweite Art validiert einwandfrei und verursacht ein anderes Problem: Das Werkzeug wird zur falschen Zeit oder mit plausiblem Unsinn aufgerufen, weil nichts im Schema sagt, was was bedeutet. Beides wird hier geprüft, jeder Befund mit dem Pfad gemeldet, aus dem er stammt, und jede eingefügte Form angenommen: ein Werkzeug, ein Array, ein Anfragefragment oder ein bloßes Schema.
Funktionen
Nimmt ein Werkzeug, ein Array, ein tools-Fragment oder ein bloßes Schema an
Jeder Befund trägt den Pfad, aus dem er stammt
Erkennt ungültige Typen, auch bei einzelnen Eigenschaften
Erkennt einen erforderlichen Namen, der keine Eigenschaft ist
Erzwingt die Strict-Regeln und benennt die verletzenden Eigenschaften
Markiert ein Schema unter dem falschen Schlüssel
Erkennt doppelte Werkzeugnamen in einem Array
Warnt bei unbeschriebenen Parametern und leeren Enums
So verwendest du Tool-Schema-Prüfer
Fügen Sie die Definition ein, in welcher Form auch immer
Lesen Sie die Befunde samt Pfaden
Beheben Sie zuerst die Fehler, dann die Beschreibungen
Prüfen Sie erneut, bis nichts mehr übrig ist
Beispiel
Eingabe
"required": ["email", "customer_id"]
Ausgabe
Error: “customer_id” is required but is not among the properties
Ein erforderlicher Name ohne passende Eigenschaft wird rundheraus abgelehnt.
Häufige Fehler & Fehlerbehebung
Die API lehnt das Werkzeug ab, ohne ein Feld zu nennen. — Fügen Sie es hier ein — die Befunde tragen einen Pfad, der Knoten wird also benannt statt gesucht.
Es sagt, mein Schema stehe unter dem falschen Schlüssel. — Die Messages-API liest input_schema. Definitionen für andere Konventionen nutzen oft parameters, was gültiges JSON ist und schlicht nicht gelesen wird.
Strict scheitert an einem Schema, das richtig aussieht. — Strict braucht additionalProperties: false und alle Eigenschaften als erforderlich. Beides wird geprüft, mit Nennung der Verstöße.
Es warnt vor Beschreibungen statt vor Fehlern. — Das ist die zweite Problemklasse. Sie verhindern die Annahme nicht; sie sind der Grund, warum das Werkzeug mit falschen Argumenten aufgerufen wird.
Häufig gestellte Fragen
Welche Formen kann ich einfügen?
Ein Werkzeugobjekt, ein Array davon, ein {"tools": [...]}-Fragment oder ein bloßes Eingabeschema. Ein bloßes Schema wird erkannt und benannt, denn ein Werkzeug braucht zusätzlich Name und Beschreibung.
Warum warnt es vor fehlenden Beschreibungen?
Weil sie die häufigste Ursache für falsche Aufrufe sind und nie einen Fehler erzeugen. Ein Parameter mit Namen und ohne Beschreibung überlässt seine Bedeutung dem Namen allein.
Prüft es mein Schema gegen echte Argumente?
Nein — es prüft die Definition selbst. Ob ein konkreter Satz Argumente validiert, ist eine andere Frage, die die API beim Aufruf beantwortet.
Werden $refs unterstützt?
Sie werden markiert. Referenzen werden in Werkzeugschemata nicht verlässlich aufgelöst, also verhält sich eine darauf gestützte Definition oft anders, als ihre Autorin gelesen hat. Die Definition einzubetten erledigt die Frage.
Kann ich mehrere Werkzeuge auf einmal prüfen?
Ja, fügen Sie das ganze Array ein. Doppelte Namen im Satz werden erkannt — ein Problem, das nur sichtbar wird, wenn man die Werkzeuge zusammen betrachtet.
Verwandte Tools
MCP-Tool-Schema — Definieren Sie ein Tool und erhalten Sie das JSON Schema, Strict-Modus geprüft.