MCP tools

27 tools

← All documentation · Source: contracts mcp/tools.json at 8000474.

analytics_metrics read

The hub's analytics metrics: each one's id, name, unit and the dimensions it can be broken down by. Read it before analytics_query.

Roles hub · Permission hub: report.read

No inputs.

analytics_query read

One query over the chain's sales and stock (spec ANALYTICS.md): metrics by up to 3 dimensions over local dates [from, to), optionally for some stores, groups or items. Money comes in minor units with the answer's currency.

Roles hub · Permission hub: report.read

Name Type Description
metrics required array of string
dimensions array of "store" | "day" | "week" | "month" | "hour" | "employee" | "item" | "group"
from required string
to required string
stores array of string (uuid)
groups array of string (uuid)
items array of string (uuid)
order_by string
descending boolean
limit integer

bonus_report read

Employee bonuses over [from, to) (RFC 3339 instants): per employee the lines credited to them, their revenue and the bonus fixed at each sale; at the hub by store, optionally for one store (spec REPORTS.md, Employee bonuses).

Roles store, hub · Permission store: bonus.read; hub: bonus.read

Name Type Description
from required string (date-time)
to required string (date-time)
store_id string (uuid)

floor_status read

The restaurant's floor: each area's tables with their open and billed checks (number, waiter, covers, state, total, when opened), the guest orders waiting and whether the license locks the table for new checks, as rows; tabs at the bar too. No QR tokens, no lines (spec RESTAURANT.md, The floor; LICENSE.md, The restaurant's three places).

Roles store · Permission store: check.use

Name Type Description
area_id string (uuid)

get_dashboard read

One of the hub's dashboards: its parameters and tiles (spec DASHBOARDS.md).

Roles hub · Permission hub: report.read

Name Type Description
id required string

get_item read

One item of the catalog by id: names, codes, kind, unit, group, taxes, barcodes and, in a store, its price.

Roles store, hub · Permission store: item.read; hub: item.read

Name Type Description
id required string (uuid)

list_dashboards read

The hub's dashboards, the organization's and the ready-made ones.

Roles hub · Permission hub: report.read

No inputs.

list_groups read

The catalog's item groups with their names and parents.

Roles store, hub · Permission store: item.read; hub: item.read

No inputs.

list_proposals read

The changes you proposed and their state: pending until a person approves or refuses them in the app.

Roles store, hub · Permission store: ; hub:

Name Type Description
status "pending" | "approved" | "refused" | "failed"

list_stores read

The chain's stores with their codes, names, currencies, time zones and their nodes' sync state.

Roles hub · Permission hub: store.read

No inputs.

list_tags read

The catalog's tags with their names in every language.

Roles store, hub · Permission store: item.read; hub: item.read

No inputs.

list_transfers read

Transfers of stock between the chain's stores with both documents (what was shipped and at what cost, what arrived, shortages with their reasons), by direction or state; at the hub for the chain or one store (spec STOCK.md, Transfers).

Roles store, hub · Permission store: document.read; hub: document.read

Name Type Description
direction "outgoing" | "incoming"
state "draft" | "in_transit" | "received" | "canceled"
store_id string (uuid)
limit integer

loyalty_customer_lookup read

Find one loyalty customer by a card number or an E.164 phone number, exactly. The answer is masked: phone, e-mail and card numbers are never shown in full (spec LOYALTY.md, Customers). Give either card or phone.

Roles store, hub · Permission store: customer.read; hub: customer.read

Name Type Description
card string
phone string

open_checks read

Open and billed restaurant checks as rows, oldest first: table or tab, waiter, covers, state, total and minutes open, without their lines (spec RESTAURANT.md, Checks).

Roles store · Permission store: check.use

Name Type Description
state "open" | "billed"
waiter_id string (uuid)
table_id string (uuid)
limit integer

partner_report read

Partners over [from, to) (RFC 3339 instants): receipts with their codes, revenue, cost, margin, commission and the margin left after it; at the hub by store, optionally for one store (spec REPORTS.md, Partners).

Roles store, hub · Permission store: report.read; hub: report.read

Name Type Description
from required string (date-time)
to required string (date-time)
store_id string (uuid)

propose_dashboard write

Propose saving a dashboard document (spec DASHBOARDS.md) as the organization's; a person approves it in the console. The document is checked now: a bad one is refused with its path and reason.

Roles hub · Permission hub: dashboard.manage

Name Type Description
dashboard required object

propose_item_names write

Propose new names of an item in some languages (two-letter codes; en is the default language); the other languages stay. A person approves it in the app.

Roles store, hub · Permission store: item.edit; hub: item.edit

Name Type Description
item_id required string (uuid)
names required object

propose_prices write

Propose new retail prices in minor units. In a store: one price change document, posted when a person approves it. At the hub: each line names the store whose price changes. Give a short reason.

Roles store, hub · Permission store: price.edit, document.edit, document.post; hub: price.edit

Name Type Description
lines required array of object
reason string

propose_purchase_order write

Propose a purchase order to a supplier, sent when a person approves it: lines of items and quantities in thousandths of the item's unit, an optional expected cost per unit and delivery date (spec STOCK.md, Purchase orders).

Roles store · Permission store: document.edit, document.post, purchase.manage

Name Type Description
supplier_id required string (uuid)
expected_on string (date)
lines required array of object
comment string

propose_transfer write

Propose a transfer of stock to another store of the chain, shipped when a person approves it: lines of items and quantities in thousandths of the item's unit, a batch optionally named (spec STOCK.md, Transfers).

Roles store · Permission store: document.edit, document.post, transfer.ship

Name Type Description
to_store_id required string (uuid)
lines required array of object
comment string

propose_write_off write

Propose writing stock off (expired, damaged, lost) as one write-off document, posted when a person approves it. Quantities are in thousandths of the item's unit; a batch may be named.

Roles store · Permission store: document.edit, document.post

Name Type Description
lines required array of object
reason required string

purchase_orders_due read

Purchase orders that are sent or partly received, with what each line ordered, what arrived and what is still due, optionally for one supplier (spec STOCK.md, Purchase orders).

Roles store · Permission store: document.read

Name Type Description
supplier_id string (uuid)

rollout_status read

The chain's latest release rollout, or the one named: its release, state, waves and gate, and each store as a row with its wave, update state, gate status, versions and error (spec RELEASES.md, Rollouts). Read only: starting, pausing or rolling back a rollout is a person's in the console.

Roles hub · Permission hub: release.read

Name Type Description
rollout_id string (uuid)

sales_report read

The store's sales report over [from, to) (RFC 3339 instants) by day, employee, item, group or tender: receipts, refunds, gross, discounts, net, tax, revenue, cost, margin, tips (spec REPORTS.md).

Roles store · Permission store: report.read

Name Type Description
from required string (date-time)
to required string (date-time)
group_by required "day" | "employee" | "item" | "group" | "tender"

search_items read

Search the catalog by meaning in any language, and by name, SKU, PLU or barcode; optionally in one group or with one tag. Exact matches come first. Uses semantic search where the node has it (spec/SEARCH.md), the exact search otherwise. Answers up to limit items with their ids.

Roles store, hub · Permission store: item.read; hub: item.read

Name Type Description
query required string
group_id string (uuid)
tag_id string (uuid)
limit integer

stock read

The store's stock report: per item on hand, held, available, lots, the nearest expiry and the value at cost; for some items, one group, or only those below zero (spec REPORTS.md).

Roles store · Permission store: report.read

Name Type Description
item_ids array of string (uuid)
group_id string (uuid)
below_zero boolean

stock_in_transit read

Stock on its way between the chain's stores: each line of a shipped, not yet received transfer with its quantity, cost and stores; at the hub for the chain or one store (spec STOCK.md, Transfers).

Roles store, hub · Permission store: stock.read; hub: stock.read

Name Type Description
store_id string (uuid)