Skip to main content
Jeder erfolgreiche Tool-Aufruf gibt einen Envelope zurück, doppelt geliefert im MCP-Ergebnis: als 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.results zurück, ein Array.
  • Detail-Tools (get-venue, get-order, get-menu, get-payment-link, get-order-stats, die beiden Writes) geben den Datensatz selbst in data zurück.
  • get-snooze-report gibt eine Zusammenfassung, eine Zeitreihe und ein paginiertes items-Array zusammen zurück.
  • Felder sind pro Ressource explizit erlaubt. Alles, was nicht im outputSchema eines 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:
Listen sind live; ein Datensatz, der zwischen Seiten erstellt wird, kann nachfolgende Seiten verschieben.

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 bis 23:59:59.999 an diesem Tag); oder
  • eine ISO-Datumzeit mit Z oder einem numerischen Offset und höchstens drei Nachkommastellen, z. B. 2026-09-18T14:00:00+01:00. Datumzeiten ohne Offset werden abgelehnt.
Die effektive Zeitzone ist 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 — als currency-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 ein isError: true-Ergebnis, dessen einzelner Text-Block ein { error }-Objekt ist, ohne structuredContent. Siehe Fehler.