checkbox-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CHECKBOX_LOGIN | No | Cashier login. Used with CHECKBOX_PASSWORD when no PIN code is set. | |
| CHECKBOX_API_URL | No | API origin. Must be `https://` (plain `http://` is accepted for localhost only). | https://api.checkbox.ua |
| CHECKBOX_PASSWORD | No | Cashier password. | |
| CHECKBOX_PIN_CODE | No | Cashier PIN code. The sign-in method Checkbox recommends. Needs CHECKBOX_LICENSE_KEY. | |
| CHECKBOX_ALLOW_WRITE | No | Set to `1` to register the write tools. Any other value than `1`/`true`/`yes`/`on` or `0`/`false`/`no`/`off` stops the server. | off |
| CHECKBOX_LICENSE_KEY | No | License key of the cash register. Required for PIN sign-in, for write mode, and for the tools that report on "this" cash register (`get_cash_register` without an id, `get_offline_status`, `get_periodical_report`, `list_shifts` with scope `cash_register`). |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_cashier_profileA | Returns the cashier this server is signed in as: name, permissions, signature type, whether it is a test cashier (is_test), and the organization (title, EDRPOU, tax number, VAT status, offline and SMS settings). Call this first to learn whose data the other tools will show. |
| list_cash_registersA | Lists the cash registers (ПРРО) available to the cashier, each with its fiscal number, address, branch, online/offline mode and the currently open shift if there is one. Use the returned ids to filter receipts and reports. |
| get_cash_registerA | Returns one cash register (ПРРО). With cash_register_id: full details including offline_mode (true means the register works offline) and the open shift. Without it: the register that CHECKBOX_LICENSE_KEY belongs to, including its title, address, has_shift, is_test and the numbers of the last documents. |
| get_offline_statusA | Reports how the cash register behind CHECKBOX_LICENSE_KEY stands with offline mode: how many offline fiscal codes are available and whether that is enough, plus the offline sessions and total offline time, optionally limited to a period. Checkbox documents a limit of 36 hours offline in a row and 168 hours per month. Durations are passed through as the API returns them. |
| get_current_shiftA | Returns the active shift (зміна) of the signed-in cashier: status, opening time, cash register, running balance (cash and card sales, returns, service cash in/out) and per-tax totals. Tells you when the cashier has no open shift. |
| list_shiftsA | Lists shifts (зміни) with status, open and close times, balance and the Z-report reference. scope "cashier" (default) lists shifts of the signed-in cashier; scope "cash_register" lists shifts of the cash register behind CHECKBOX_LICENSE_KEY, whoever opened them (page size capped at 50). Use get_shift for the full record. |
| get_shiftA | Returns one shift (зміна) in full: status, cashier, cash register, balance, per-tax totals, the opening and closing transactions and the embedded Z-report once the shift is closed. |
| search_receiptsA | Finds receipts (чеки) by period, fiscal number, barcode, shift, cash register or branch. Returns a summary per receipt: type (SELL, RETURN, SERVICE_IN, SERVICE_OUT, ...), status (DONE means fiscalized), fiscal number, totals, goods and payments. The API has no filter by status or type, so filter the returned rows yourself. By default only receipts created by the signed-in cashier are returned. Use get_receipt for the full record. |
| get_receiptA | Returns one receipt (чек). format "json": the full record with goods, payments, taxes, discounts, fiscal number, status and the link to the tax service (tax_url). format "text": the receipt exactly as it is printed. A receipt that was created a moment ago can answer "still being created"; retry after a second. |
| list_reportsA | Lists X-reports (interim, non-fiscal) and Z-reports (end of shift) with receipt counts, cash balance and totals per payment form. Filter by period, shift, cash register, serial number or report type. Use get_report for tax breakdowns or the printable text. |
| get_reportA | Returns one X- or Z-report. format "json": the full record with totals per payment form and per tax rate, receipt counts, rounding and cash balance. format "text": the report exactly as it is printed. |
| get_periodical_reportA | Returns the periodical report (періодичний звіт) of the cash register behind CHECKBOX_LICENSE_KEY for a date range, as printable text: totals built from the Z-reports of the period, by tax rate and payment form, returns, cash in the register and each Z-report with its number and date. The API offers this report as text only. |
| search_goodsA | Searches the goods catalogue (номенклатура) kept in Checkbox. Returns code, name, price in kopecks, barcode, UKTZED code, group, tax rates and stock count where the organization tracks it. The catalogue can be empty when the organization does not keep its goods in Checkbox. |
| list_taxesA | Lists the tax rates configured for the organization: numeric code, letter symbol, label, rate and extra rate in percent, and whether the tax is included in the price. The numeric code is what a receipt line refers to in its tax list. |
| list_ordersA | Lists orders (замовлення): draft receipts that an external system created in Checkbox, to be fiscalized by a courier after delivery and payment. Returns status, payment state and method, and the linked receipt id. Customer delivery details are left out here; get_order returns them. |
| get_orderA | Returns one order in full: status, payment, the receipt draft with goods and payments, and the delivery details. The result contains personal data of the customer (name, phone number, address); do not repeat it unless the user asks for it. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 16 tools
Each tool targets a distinct resource and action: cash registers, cashier profile, taxes, offline status, shifts, receipts, reports, goods, and orders. The only apparent overlap (get_current_shift vs list_shifts/get_shift) is resolved by descriptions that specify active shift, list, and full record respectively.
All 16 tools use consistent snake_case with clear verb_noun patterns (get_, list_, search_). No mixed conventions or vague names are present.
16 tools is slightly above the typical 3–15 range, but the surface is well organized by resource and each tool appears to serve a distinct query need. There is no obvious redundancy, though the count is on the heavier side.
The tool surface is entirely read-only: no create, update, delete, open/close shift, create/fiscalize receipt, or manage goods/orders operations. For a Checkbox fiscalization server, these are significant gaps that would block common agent workflows.