structuredContent und als JSON-Text des ersten content-Blocks. Lesen Sie, was auch immer Ihr Client offenlegt; sie sind identisch. Jedes Tool veröffentlicht ein passendes outputSchema, sodass ein spec-konformer Client structuredContent dagegen validiert.
data
- List-Tools geben
data.resultszurück, ein Array. - Detail-Tools (
get-venue,get-order,get-menu,get-payment-link,get-order-stats, die beiden Writes) geben den Datensatz selbst indatazurück. get-snooze-reportgibt eine Zusammenfassung, eine Zeitreihe und ein paginiertesitems-Array zusammen zurück.- Felder sind pro Ressource explizit erlaubt. Alles, was nicht im
outputSchemaeines Tools steht, wird nie gesendet, egal was der zugrundeliegende Datensatz enthält.
meta
meta ist strikt: Keine undokumentierten Keys tauchen auf, und neue Keys kommen mit einer Versionserhöhung.
Paginierung
Seiten beginnen bei 1.limit ist auf 100 gekappt (25 für list-top-products) und wird stillschweigend reduziert, wenn Sie mehr anfordern.
hasMore und nextPage kommen daher, dass eine Zeile über die Seite hinaus geholt wird, sodass sie immer exakt sind. total ist null, wenn das Tool nicht zählt, und kann bei großen Bestelllisten, bei denen eine exakte Zählung zu langsam ist, mit totalIsEstimate: true markiert sein. Steuern Sie Schleifen über hasMore, nicht über total:
Datumsangaben und Zeitzonen
Inputs (from, to) akzeptieren entweder:
YYYY-MM-DD— ein lokales Kalenderdatum in der effektiven Zeitzone, an beiden Enden inklusive (to: "2026-09-18"läuft bis23:59:59.999an diesem Tag); oder- eine ISO-Datumzeit mit
Zoder einem numerischen Offset und höchstens drei Nachkommastellen, z. B.2026-09-18T14:00:00+01:00. Datumzeiten ohne Offset werden abgelehnt.
timezone, falls angegeben, sonst die Zeitzone der Filiale, wenn venueId angegeben ist, sonst UTC. meta.timezone gibt immer an, welche verwendet wurde.
Bereiche dürfen höchstens 90 lokale Kalendertage umspannen; längere Bereiche werden mit INVALID_INPUT abgelehnt. Jedes Tool hat einen Default-Bereich (7 oder 30 Tage) und eine basis — creation, fulfillment, refund oder snooze_overlap — die angibt, welchen Zeitstempel der Bereich filtert; siehe Tools. meta.dateRange gibt den aufgelösten Bereich wieder, sodass ein Client genau anzeigen kann, was gezählt wurde.
Write-Inputs (startDate, endDate, expiresAt) müssen vollständige ISO-Zeitstempel mit Offset sein. Reine Datumswerte werden für Writes nicht akzeptiert.
Geld
Alle Beträge sind Ganzzahlen in Minor Currency Units (Pence, Cents) und werden nie umgerechnet. Die Währung wandert mit den Daten — alscurrency-Feld auf Filialen, Bestellungen, Rechnungen und Links und als meta.currencyCodes für das Ergebnis insgesamt. codeAmount bei einem prozentualen Rabatt ist in Zehnteln eines Prozents, kein Währungsbetrag.
Kontoweite Statistiken und Top-Product-Abfragen auf einem Konto, dessen Filialen mehr als eine Währung verwenden, werden abgelehnt (INVALID_INPUT); geben Sie venueId an.
Bilder
get-payment-link-qr ist das einzige Tool, das Binärdaten zurückgibt. Sein content-Array enthält den JSON-Text-Block, gefolgt von einem nativen MCP-Bild-Block:
structuredContent trägt nur die Checkout-URL und die Link-Metadaten; es gibt kein base64-Feld innerhalb von data.
Fehler
Ein fehlgeschlagener Aufruf ist kein Envelope. Es ist einisError: true-Ergebnis, dessen einzelner Text-Block ein { error }-Objekt ist, ohne structuredContent. Siehe Fehler.