Bedienung¶
Sie bedienen den Server nicht direkt. Sie beschreiben Ihrem KI-Assistenten in natürlicher Sprache, was im Manager passieren soll, und der Assistent wählt die passenden Werkzeuge. Sie brauchen die Werkzeugnamen also nicht auswendig; die Übersicht hier zeigt, was möglich ist und wie sich Aufgaben formulieren lassen.
Beispiel-Anweisungen¶
- "Suche alle Artikel, deren Name 'Cola' enthält, und zeige die Preise."
- "Lege den Artikel 'Falafel-Wrap' für 7,50 € in der Standardpreisliste an, Warengruppe Snacks, 19 % USt."
- "Erhöhe alle Preise der Warengruppe Heißgetränke um 20 Cent."
- "Baue eine Schnellauswahl 'Sommerkarte' mit den Tabs Eis, Getränke und Snacks und lege die passenden Artikel als Buttons hinein."
- "Kopiere die Schnellauswahl der Filiale Nord und weise die Kopie der Filiale Süd zu."
- "Lege einen Kassierer 'M. Muster' mit Barcode-Anmeldung an und ordne ihn der Filiale Nord zu."
- "Wie viel Umsatz haben wir heute je Kasse gemacht?"
- "Zeige die Tagesabschlüsse dieser Woche. Gab es Abweichungen?"
Werkzeuge im Überblick¶
Artikel und Preise¶
| Werkzeug | Zweck |
|---|---|
search_articles |
Artikel suchen und listen, mit Filtern z. B. auf Artikelnummer oder Name |
get_article |
Einzelnen Artikel lesen, optional mit Preislisteneinträgen |
create_article |
Artikel anlegen, inklusive Preisen in mehreren Preislisten und Steuerzuordnung |
update_article |
Artikelfelder ändern, etwa Name oder Status |
list_article_groups |
Warengruppen auflisten |
list_price_lists |
Preislisten auflisten |
get_article_prices |
Preislisteneinträge eines Artikels lesen |
set_article_price |
Preis eines Artikels in einer Preisliste setzen |
Hinweis: Aktive Artikel lassen sich im Manager nicht löschen, nur auf den
Status OBSOLETE setzen.
Schnellauswahlen¶
| Werkzeug | Zweck |
|---|---|
list_quick_selections |
Schnellauswahl-Strukturen auflisten |
get_quick_selection |
Eine Schnellauswahl mit ihren direkten Kindern lesen |
create_quick_selection |
Neue Struktur anlegen (das Standard-Layout kommt automatisch mit) |
add_quick_selection_group |
Kategorie-Tab bzw. Gruppe anlegen, inklusive Rand- und Füllfarbe |
add_article_buttons |
Artikel-Buttons in eine Gruppe legen, automatisch im Raster angeordnet |
add_text_buttons |
Text-Buttons anlegen, die eine Notiz an die Belegposition hängen (z. B. Soßenwahl oder Zubereitungshinweise für den Küchenbon) |
add_function_buttons |
Funktions-Buttons anlegen, z. B. Beleg stornieren oder Coupon hinzufügen |
upload_quick_selection_image |
Bild (PNG/JPG) auf einen Button laden |
update_quick_selection_node |
Knoten ändern: Position, Text, Farben |
delete_quick_selection |
Knoten oder ganze Struktur löschen |
copy_quick_selection |
Schnellauswahl tief klonen, mit allen Gruppen, Buttons und Zuordnungen |
list_quick_selection_assignments |
Org-Zuordnungen einer Schnellauswahl lesen |
assign_quick_selection / unassign_quick_selection |
Schnellauswahl einem Org-Knoten zuweisen bzw. die Zuweisung lösen |
Benutzer und Organisation¶
| Werkzeug | Zweck |
|---|---|
list_users |
Manager-Benutzer auflisten (Passwörter liefert die API nie) |
create_user |
POS-Benutzer anlegen: Rolle per Name, optional Barcode-Anmeldung und Org-Zuweisung |
list_org_structures |
Org-Struktur-Knoten auflisten |
create_org_node |
Org-Knoten anlegen (Filiale oder Einheit) |
list_table_areas |
Tischbereiche der Tischbedienung auflisten |
assign_table_area / unassign_table_area |
Tischbereich einem Org-Knoten zuweisen bzw. die Zuweisung lösen |
Berichte, Tagesabschlüsse, Belege¶
| Werkzeug | Zweck |
|---|---|
list_sales_reports |
Katalog der verfügbaren Verkaufsberichte |
get_sales_report |
Verkaufsbericht als JSON ausführen, z. B. Umsatz je Kasse oder je Artikel, Steuern, Stornos, jeweils mit Datumsbereich |
list_dayend_closings |
Tagesabschlüsse mit Konsistenzübersicht auflisten |
get_dayend_closing |
Einzelnen Tagesabschluss mit allen Abweichungsbeträgen lesen |
list_receipts |
Belege listen, gefiltert nach Datum, Kasse, Status oder Typ |
get_receipt |
Vollen Beleg mit Positionen, Zahlungen und Steuern lesen |
Kassen-Aktionen¶
| Werkzeug | Zweck |
|---|---|
list_actions |
Kassen-Aktionen mit Freigabestand auflisten |
deploy_action |
Action-Jar an die Kassen ausliefern: anlegen, hochladen, Org-Einheiten zuweisen und einreichen in einem Aufruf |
list_action_executions |
Rollout-Status je Kasse verfolgen |
Vorsicht: Eine Action ist ein Programm, das auf den Kassen ausgeführt
wird. deploy_action ist damit faktisch ein Software-Rollout auf die Fläche.
Auf produktiven Managern nur nach bewusster Entscheidung einsetzen; im
Read-only-Modus ist das Werkzeug, wie jeder Schreibzugriff, gesperrt.
Belegweiterleitung und Jobs¶
| Werkzeug | Zweck |
|---|---|
list_receipt_forwarding |
Alle eingerichteten Weiterleitungen zeigen: Kommunikationssystem, HTTP-Destination und den RECEIPT-Service mit seinen Payload-Flags |
setup_receipt_forwarding |
Weiterleitung an einen HTTP-Endpunkt in einem Aufruf einrichten, idempotent über den Systemnamen |
set_receipt_forwarding |
Weiterleitung an- oder abschalten — der einzige saubere Weg, eine stillzulegen |
list_jobs |
Die eingeplanten Jobs des Managers mit Cron-Ausdruck und nächster Ausführung |
list_job_runs |
Job-Läufe mit Ergebnis und Statusmeldung |
start_job |
Einen Lauf jetzt starten; describe=true nennt die Parameter eines Jobtyps, ohne etwas zu starten |
get_job_run |
Einen einzelnen Lauf verfolgen — das richtige Werkzeug, um einen langen Job zu beobachten |
cancel_job_run |
Einen laufenden Job stoppen |
Zwei Dinge sollte man dabei wissen.
Jobs sind eine On-Premise-Angelegenheit. In der Cloud Edition bietet der Manager Zeitpläne und Läufe nicht über die API an; die Werkzeuge sagen das, statt einen nackten Fehler weiterzureichen. Jobs werden dort in der Manager-UI verwaltet.
Beim Starten ist die API am wenigsten hilfreich, deshalb prüft start_job
vorher: Ein fehlender Pflichtparameter wird mit einem Fehler beantwortet, der
das Feld nicht nennt, und ein unbekannter Parametername genauso. start_job
mit describe=true nennt die Parameter eines Jobtyps — samt Pflichtfeldern und
den Werten, die die Manager-UI vorbelegen würde.
Besonders beim Job Belege erneut buchen: Sein Umfang ist nicht der, den der
Name nahelegt. dispatchStatus: UNPOSTED meint Belege, die für dieses Ziel
überhaupt keinen Weiterleitungseintrag haben — den historischen Bestand —,
nicht Belege mit noch offenem Eintrag. Ein Startdatum aus den letzten Tagen
findet deshalb nichts, und der Lauf endet nach zwei Sekunden mit „0 zu buchende
Einträge". Das ist ein korrekt leerer Umfang, kein kaputter Aufruf.
Wie viel für ein Ziel tatsächlich aussteht, lässt sich nicht auslesen: Die API kennt keine Summe über die Weiterleitungszustände. Sichtbar wird der Rückstand nur an zwei Stellen — in der Statusmeldung eines Repost-Laufs und in der Manager-Datenbank.
Verwaltung und Notausgang¶
| Werkzeug | Zweck |
|---|---|
list_managers |
Zeigt, gegen welche Manager der Server konfiguriert ist (Name, URL, Edition, Read-only), und prüft auf Wunsch die Verbindung je Manager |
ccom_request |
Beliebiger Request an die Manager-API, wenn es für einen Fall noch kein eigenes Werkzeug gibt |
Mehrere Manager in einer Sitzung¶
Sind mehrere Manager-Profile konfiguriert (siehe Konfiguration), verlangt jedes Werkzeug die Angabe des Ziel-Managers. In der Praxis genügt es, ihn in der Anweisung zu nennen:
- "Liste die Artikel auf dem Manager 'zentrale'."
- "Lies die Schnellauswahl 'Bar' vom Testsystem und baue sie auf 'cloud' nach."
Mit "Welche Manager sind konfiguriert, und sind sie erreichbar?" verschafft
sich der Assistent über list_managers selbst den Überblick.
Wer bestätigt Änderungen?¶
Schreibende Werkzeuge führt der Server aus, sobald der MCP-Client sie freigibt. Claude Code und Claude Desktop fragen standardmäßig vor jedem Werkzeugaufruf nach; dort entscheiden Sie, ob eine Änderung wirklich ausgeführt wird. Wer zusätzlich absichern will, konfiguriert das Profil read-only, dann lehnt der Server selbst jeden Schreibzugriff ab.