Usage¶
You do not operate the server directly. You describe to your AI assistant in natural language what should happen in the Manager, and the assistant picks the right tools. So you do not need to memorize tool names; the overview here shows what is possible and how to phrase tasks.
Example instructions¶
- "Search for all articles whose name contains 'Cola' and show their prices."
- "Create the article 'Falafel wrap' at €7.50 in the standard price list, article group Snacks, 19% VAT."
- "Raise all prices in the article group Hot beverages by 20 cents."
- "Build a quick selection 'Summer menu' with the tabs Ice cream, Drinks and Snacks and put the matching articles in as buttons."
- "Copy the quick selection of the Nord branch and assign the copy to the Süd branch."
- "Create a cashier 'M. Muster' with barcode login and assign him to the Nord branch."
- "How much revenue did we make today per POS?"
- "Show this week's day-end closings. Were there any discrepancies?"
Tools at a glance¶
Articles and prices¶
| Tool | Purpose |
|---|---|
search_articles |
Search and list articles, with filters e.g. on article number or name |
get_article |
Read a single article, optionally with its price list entries |
create_article |
Create an article, including prices in several price lists and tax assignment |
update_article |
Change article fields, such as name or status |
list_article_groups |
List article groups |
list_price_lists |
List price lists |
get_article_prices |
Read an article's price list entries |
set_article_price |
Set an article's price in a price list |
Note: active articles cannot be deleted in the Manager, only set to status
OBSOLETE.
Quick selections¶
| Tool | Purpose |
|---|---|
list_quick_selections |
List quick selection structures |
get_quick_selection |
Read a quick selection with its direct children |
create_quick_selection |
Create a new structure (the standard layout comes along automatically) |
add_quick_selection_group |
Create a category tab or group, including border and fill color |
add_article_buttons |
Place article buttons in a group, arranged automatically on the grid |
add_text_buttons |
Create text buttons that attach a note to the receipt item (e.g. sauce choice or preparation notes for the kitchen ticket) |
add_function_buttons |
Create function buttons, e.g. void receipt or add coupon |
upload_quick_selection_image |
Upload an image (PNG/JPG) onto a button |
update_quick_selection_node |
Change a node: position, text, colors |
delete_quick_selection |
Delete a node or an entire structure |
copy_quick_selection |
Deep-clone a quick selection, with all groups, buttons and assignments |
list_quick_selection_assignments |
Read a quick selection's org assignments |
assign_quick_selection / unassign_quick_selection |
Assign a quick selection to an org node, or remove the assignment |
Users and organization¶
| Tool | Purpose |
|---|---|
list_users |
List Manager users (the API never returns passwords) |
create_user |
Create a POS user: role by name, optionally barcode login and org assignment |
list_org_structures |
List org structure nodes |
create_org_node |
Create an org node (branch or unit) |
list_table_areas |
List the table areas of the table service |
assign_table_area / unassign_table_area |
Assign a table area to an org node, or remove the assignment |
Reports, day-end closings, receipts¶
| Tool | Purpose |
|---|---|
list_sales_reports |
Catalog of the available sales reports |
get_sales_report |
Run a sales report as JSON, e.g. revenue per POS or per article, taxes, voids, each with a date range |
list_dayend_closings |
List day-end closings with a consistency overview |
get_dayend_closing |
Read a single day-end closing with all discrepancy amounts |
list_receipts |
List receipts, filtered by date, POS, status or type |
get_receipt |
Read a full receipt with items, payments and taxes |
POS actions¶
| Tool | Purpose |
|---|---|
list_actions |
List POS actions with their approval state |
deploy_action |
Deploy an action jar to the POS systems: create, upload, assign org units and submit in one call |
list_action_executions |
Track the rollout status per POS |
Caution: an action is a program that runs on the POS systems.
deploy_action is therefore effectively a software rollout to the shop
floor. On production Managers, use it only after a deliberate decision; in
read-only mode the tool is blocked, like every write access.
Receipt forwarding and jobs¶
| Tool | Purpose |
|---|---|
list_receipt_forwarding |
Show every configured forwarding: communication system, HTTP destination and the RECEIPT service with its payload flags |
setup_receipt_forwarding |
Set up a forwarding to an HTTP endpoint in one call, idempotent over the system name |
set_receipt_forwarding |
Switch a forwarding on or off — the only clean way to retire one |
list_jobs |
The Manager's scheduled jobs with their cron expression and next execution |
list_job_runs |
Job runs with their result and status message |
start_job |
Start a job run now; describe=true reports a job type's parameters without starting anything |
get_job_run |
Follow a single run — the right tool for watching a long job |
cancel_job_run |
Stop a running job |
Two things are worth knowing before you use them.
Jobs are an on-premise matter. In the cloud edition the Manager does not offer job schedules or job runs over the API; the tools say so rather than passing on a bare error. Jobs there are managed in the Manager UI.
Starting a job is where the API is least helpful, which is why start_job
checks first: a missing mandatory parameter is answered with an error that does
not name the field, and an unknown parameter name gets the same treatment. Ask
start_job with describe=true for the parameters of a job type — including
which are mandatory and what the Manager UI would pre-fill.
For the Repost receipts job in particular: its scope is not what the name
suggests. dispatchStatus: UNPOSTED means receipts that have no dispatch
entry for this target at all — the historical backlog — not receipts whose
dispatch entry is still open. A start date from the last few days therefore
finds nothing, and the run ends after two seconds with "0 entries to post".
That is a correctly empty scope, not a broken call.
How much is actually queued up for a target cannot be read out: the API has no aggregate over dispatch states. The only two places the size of a backlog becomes visible are the status message of a repost run and the Manager database.
Administration and escape hatch¶
| Tool | Purpose |
|---|---|
list_managers |
Shows which Managers the server is configured against (name, URL, edition, read-only) and, on request, checks the connection per Manager |
ccom_request |
Arbitrary request to the Manager API when no dedicated tool exists for a case yet |
Several Managers in one session¶
When several Manager profiles are configured (see Configuration), every tool requires the target Manager. In practice, naming it in the instruction is enough:
- "List the articles on the manager 'zentrale'."
- "Read the quick selection 'Bar' from the test system and rebuild it on 'cloud'."
With "Which managers are configured, and are they reachable?" the assistant
gets its own overview via list_managers.
Who confirms changes?¶
The server executes write tools as soon as the MCP client approves them. Claude Code and Claude Desktop ask before every tool call by default; that is where you decide whether a change actually goes through. If you want an extra safeguard, configure the profile read-only, and the server itself rejects every write access.