CashCtrl MCP by usefulapi
Server Details
Read CashCtrl accounts, journal, orders, people, articles, salaries and reports; book and create.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- Repository
- m190/usefulapi-mcp
- GitHub Stars
- 0
TDQS
Score is being calculated.
Available Tools
28 toolscashctrl_create_journal_entryCreate a journal entryDestructiveInspect
WRITE: changes the accounting records. Makes one request that is never repeated; check the result before trying again. Creates a manual book entry in the journal. Either a simple entry (debit_account_id, credit_account_id, amount) or a collective entry (items, whose debit and credit sums must match). POST /journal/create.json.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Booking date, yyyy-mm-dd (CashCtrl uses today when omitted). | |
| items | No | Lines of a collective entry. Use it instead of debit_account_id, credit_account_id and amount. | |
| title | Yes | Description of the entry (max 250 characters). | |
| amount | No | Amount of a simple entry, for example 125.50. | |
| tax_id | No | Tax code id of a simple entry (cashctrl_list_tax_codes). | |
| reference | No | Receipt or reference text (max 100). | |
| associate_id | No | The person this entry belongs to (cashctrl_list_persons). | |
| debit_account_id | No | Debit account id (cashctrl_list_accounts). For a simple entry. | |
| credit_account_id | No | Credit account id (cashctrl_list_accounts). For a simple entry. | |
| sequence_number_id | No | Sequence number that generates the reference (cashctrl_list_sequence_numbers). |
cashctrl_create_orderCreate an orderDestructiveInspect
WRITE: changes the accounting records. Makes one request that is never repeated; check the result before trying again. Creates ONE order document for ONE customer or vendor: a quote, invoice, credit note, purchase bill and so on, depending on category_id. Without status_id the first status of the category is used; a booking status (for example Open) also creates journal entries, so use a draft status unless the user asks otherwise. No e-mail is sent. POST /order/create.json.
| Name | Required | Description | Default |
|---|---|---|---|
| nr | No | Order number. Leave empty to use the sequence number of the category. | |
| date | Yes | Document date, yyyy-mm-dd. | |
| items | Yes | 1-200 order items. | |
| due_days | No | Days until payment is due. | |
| language | No | Language of the document. | |
| status_id | No | Status id (cashctrl_list_order_categories). Default: the first status of the category. | |
| account_id | No | Debtors or creditors account id; default from the category. | |
| category_id | Yes | Order category id (cashctrl_list_order_categories), for example the Invoice category. | |
| description | No | Description of the document (max 200). | |
| associate_id | Yes | The customer or vendor (cashctrl_list_persons). | |
| sequence_number_id | No | Sequence number for the order number (cashctrl_list_sequence_numbers). | |
| discount_percentage | No | Discount of the whole order in percent. |
cashctrl_create_personCreate a person or companyDestructiveInspect
WRITE: changes the accounting records. Makes one request that is never repeated; check the result before trying again. Creates a customer, vendor or other contact. Give company, first_name or last_name (at least one). Search first with cashctrl_list_persons so no duplicate is created. POST /person/create.json.
| Name | Required | Description | Default |
|---|---|---|---|
| nr | No | Person number, for example the customer number. | |
| company | No | Company name. | |
| vat_uid | No | VAT number (UID), for example CHE-123.456.789 MWST. | |
| contacts | No | E-mail addresses, phone numbers and websites. | |
| language | No | Language of documents for this person. | |
| addresses | No | Addresses. | |
| is_vendor | No | Mark as vendor. | |
| last_name | No | Last name. | |
| first_name | No | First name. | |
| category_id | No | Person category id. | |
| is_customer | No | Mark as customer. |
cashctrl_delete_journal_entriesDelete journal entriesDestructiveInspect
WRITE: changes the accounting records. Makes one request that is never repeated; check the result before trying again. DELETES manual journal entries by id (entries created by orders or salary statements cannot be deleted this way). Deleted entries are gone from the books; confirm the ids with the user first. POST /journal/delete.json.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | 1-20 journal entry ids. |
cashctrl_delete_ordersDelete ordersDestructiveInspect
WRITE: changes the accounting records. Makes one request that is never repeated; check the result before trying again. DELETES orders (invoices, quotes, purchase documents) by id, with the journal entries they created. Deleted documents are gone; confirm the ids with the user first. POST /order/delete.json.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | 1-20 order ids. |
cashctrl_get_accountGet an accountRead-onlyInspect
One account of the chart of accounts by id. GET /account/read.json.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The account id (from cashctrl_list_accounts; not the account number). |
cashctrl_get_account_balanceGet an account balanceRead-onlyInspect
The balance of one account at the end of a day (default: the last day of the current fiscal period). GET /account/balance.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The account id (from cashctrl_list_accounts). | |
| date | No | Balance at the end of this day, yyyy-mm-dd. |
cashctrl_get_articleGet an inventory articleRead-onlyInspect
One inventory article by id. GET /inventory/article/read.json.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The article id (from cashctrl_list_articles). |
cashctrl_get_journal_entryGet a journal entryRead-onlyInspect
One book entry by id, with its items for a collective entry. GET /journal/read.json.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The journal entry id (from cashctrl_list_journal). |
cashctrl_get_orderGet an orderRead-onlyInspect
One order (invoice, quote, purchase document) by id, with its items, totals and status. GET /order/read.json.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The order id (from cashctrl_list_orders). |
cashctrl_get_personGet a personRead-onlyInspect
One person or company by id, with addresses, contact data and bank accounts. GET /person/read.json.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The person id (from cashctrl_list_persons). |
cashctrl_get_report_dataGet report dataRead-onlyInspect
The data of one report element (for example the balance sheet or the income statement) for a fiscal period or a date range. GET /report/element/data.json.
| Name | Required | Description | Default |
|---|---|---|---|
| end_date | No | End of the period, yyyy-mm-dd. | |
| element_id | Yes | The report element id (from cashctrl_get_report_tree). | |
| start_date | No | Start of the period, yyyy-mm-dd. | |
| fiscal_period_id | No | Fiscal period id (cashctrl_list_fiscal_periods). It replaces start_date and end_date. |
cashctrl_get_report_treeGet the report treeRead-onlyInspect
The reports set up in CashCtrl (balance sheet, income statement, and so on) as a tree of collections and elements. The element id is the input of cashctrl_get_report_data. GET /report/tree.json.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
cashctrl_get_salary_statementGet a salary statementRead-onlyInspect
One payroll statement by id, with its salary items. Sensitive personal data. GET /salary/statement/read.json.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The statement id (from cashctrl_list_salary_statements). |
cashctrl_list_account_categoriesList account categoriesRead-onlyInspect
The categories of the chart of accounts (assets, liabilities, expenses, revenue and their sub-categories). GET /account/category/list.json.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
cashctrl_list_accountsList accountsRead-onlyInspect
The chart of accounts: number, name, category and the balance for the fiscal period. Not paged. GET /account/list.json.
| Name | Required | Description | Default |
|---|---|---|---|
| dir | No | Sort direction (each list has its own default). | |
| sort | No | Column to sort by (a column name of the list reply; each list has its own default). | |
| query | No | Full-text search. | |
| filter | No | Column filters, all must match (AND). | |
| category_id | No | Only accounts of this category (cashctrl_list_account_categories). | |
| only_active | No | Only active accounts. | |
| fiscal_period_id | No | Fiscal period id (cashctrl_list_fiscal_periods); default is the current period. |
cashctrl_list_articlesList inventory articlesRead-onlyInspect
Inventory articles (products and services) with number, name, price, stock and accounts. GET /inventory/article/list.json.
| Name | Required | Description | Default |
|---|---|---|---|
| dir | No | Sort direction (each list has its own default). | |
| sort | No | Column to sort by (a column name of the list reply; each list has its own default). | |
| limit | No | Rows to return, 1-500 (default 100). | |
| query | No | Full-text search. | |
| start | No | Index of the first row (default 0). Use next_start from the previous reply. | |
| filter | No | Column filters, all must match (AND). | |
| category_id | No | Only this article category. | |
| only_active | No | Only active articles. | |
| only_restock | No | Only articles that need restocking. |
cashctrl_list_bank_accountsList bank accountsRead-onlyInspect
The bank accounts set up in CashCtrl (name, IBAN, linked ledger account). GET /account/bank/list.json.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
cashctrl_list_currenciesList currenciesRead-onlyInspect
The currencies set up in CashCtrl with their exchange rates. GET /currency/list.json.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
cashctrl_list_fiscal_periodsList fiscal periodsRead-onlyInspect
All fiscal periods (id, name, start, end, current flag). The id is the fiscal_period_id of the other tools. GET /fiscalperiod/list.json.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
cashctrl_list_journalList journal entriesRead-onlyInspect
Book entries of the journal (date, title, debit and credit account, amount, reference), newest first, for the current fiscal period unless fiscal_period_id is set. GET /journal/list.json.
| Name | Required | Description | Default |
|---|---|---|---|
| dir | No | Sort direction (each list has its own default). | |
| sort | No | Column to sort by (a column name of the list reply; each list has its own default). | |
| limit | No | Rows to return, 1-500 (default 100). | |
| query | No | Full-text search. | |
| start | No | Index of the first row (default 0). Use next_start from the previous reply. | |
| filter | No | Column filters, all must match (AND). | |
| account_id | No | Only entries of this account (cashctrl_list_accounts). | |
| only_sales | No | Only entries created by sales orders. | |
| only_manual | No | Only manual entries. | |
| only_salary | No | Only entries created by salary statements. | |
| associate_id | No | Only entries of this person (cashctrl_list_persons). | |
| only_imported | No | Only imported (bank) entries. | |
| only_purchase | No | Only entries created by purchase orders. | |
| only_collective | No | Only collective entries. | |
| fiscal_period_id | No | Fiscal period id (cashctrl_list_fiscal_periods); default is the current period. |
cashctrl_list_order_categoriesList order categoriesRead-onlyInspect
The order categories (Quote, Invoice, Credit note, Purchase invoice and so on) with their statuses (Draft, Open, Paid) and the default accounts and sequence numbers. Use it to find category_id and status_id (type PURCHASE for purchase documents). GET /order/category/list.json.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | SALES (default) or PURCHASE categories. | |
| fiscal_period_id | No | Fiscal period id (cashctrl_list_fiscal_periods); default is the current period. |
cashctrl_list_ordersList ordersRead-onlyInspect
Sales or purchase documents (quotes, order confirmations, invoices, delivery notes, credit notes, vendor bills) with number, date, customer, status and total. Newest first. GET /order/list.json.
| Name | Required | Description | Default |
|---|---|---|---|
| dir | No | Sort direction (each list has its own default). | |
| sort | No | Column to sort by (a column name of the list reply; each list has its own default). | |
| type | No | SALES or PURCHASE documents. | |
| limit | No | Rows to return, 1-500 (default 100). | |
| query | No | Full-text search. | |
| start | No | Index of the first row (default 0). Use next_start from the previous reply. | |
| filter | No | Column filters, all must match (AND). | |
| only_open | No | Only open (not completed) orders, for example unpaid invoices. | |
| person_id | No | Only orders of this person (cashctrl_list_persons). | |
| status_id | No | Only this status (the status ids are in cashctrl_list_order_categories). | |
| category_id | No | Only this order category (cashctrl_list_order_categories), for example Invoice. | |
| only_overdue | No | Only orders past their due date. | |
| fiscal_period_id | No | Fiscal period id (cashctrl_list_fiscal_periods); default is the current period. |
cashctrl_list_personsList peopleRead-onlyInspect
Customers, vendors, employees and other contacts (name, company, number, roles, addresses). GET /person/list.json.
| Name | Required | Description | Default |
|---|---|---|---|
| dir | No | Sort direction (each list has its own default). | |
| sort | No | Column to sort by (a column name of the list reply; each list has its own default). | |
| limit | No | Rows to return, 1-500 (default 100). | |
| query | No | Full-text search. | |
| start | No | Index of the first row (default 0). Use next_start from the previous reply. | |
| filter | No | Column filters, all must match (AND). | |
| category_id | No | Only this person category. | |
| only_active | No | Only active people. | |
| only_vendors | No | Only vendors. | |
| only_customers | No | Only customers. | |
| only_employees | No | Only employees. |
cashctrl_list_salary_statementsList salary statementsRead-onlyInspect
Payroll statements (employee, date, status, gross and net amounts), newest first. Sensitive personal data. GET /salary/statement/list.json.
| Name | Required | Description | Default |
|---|---|---|---|
| dir | No | Sort direction (each list has its own default). | |
| sort | No | Column to sort by (a column name of the list reply; each list has its own default). | |
| limit | No | Rows to return, 1-500 (default 100). | |
| query | No | Full-text search. | |
| start | No | Index of the first row (default 0). Use next_start from the previous reply. | |
| only_open | No | Only open (not yet paid) statements. | |
| person_id | No | Only statements of this employee (cashctrl_list_persons). | |
| only_overdue | No | Only statements past their payment date. | |
| fiscal_period_id | No | Fiscal period id (cashctrl_list_fiscal_periods); default is the current period. |
cashctrl_list_sequence_numbersList sequence numbersRead-onlyInspect
The number sequences (for journal references, order numbers, customer numbers). The id is the sequence_number_id of the write tools. GET /sequencenumber/list.json.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
cashctrl_list_tax_codesList tax codesRead-onlyInspect
The VAT tax codes (id, code, name, rates). The id is the tax_id of the write tools. GET /tax/list.json.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
cashctrl_update_order_statusChange the status of ordersDestructiveInspect
WRITE: changes the accounting records. Makes one request that is never repeated; check the result before trying again. Sets the status of 1-20 orders (for example Draft to Open, or Open to Paid). A status can book journal entries or move stock, so the books change. POST /order/update_status.json.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | 1-20 order ids. | |
| status_id | Yes | The new status id (from the statuses of the order category, cashctrl_list_order_categories). |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
28 tool updates
- First observed
cashctrl_create_journal_entry - First observed
cashctrl_create_order - First observed
cashctrl_create_person - First observed
cashctrl_delete_journal_entries - First observed
cashctrl_delete_orders - First observed
cashctrl_get_account - First observed
cashctrl_get_account_balance - First observed
cashctrl_get_article - First observed
cashctrl_get_journal_entry - First observed
cashctrl_get_order - First observed
cashctrl_get_person - First observed
cashctrl_get_report_data - First observed
cashctrl_get_report_tree - First observed
cashctrl_get_salary_statement - First observed
cashctrl_list_account_categories - First observed
cashctrl_list_accounts - First observed
cashctrl_list_articles - First observed
cashctrl_list_bank_accounts - First observed
cashctrl_list_currencies - First observed
cashctrl_list_fiscal_periods - First observed
cashctrl_list_journal - First observed
cashctrl_list_order_categories - First observed
cashctrl_list_orders - First observed
cashctrl_list_persons - First observed
cashctrl_list_salary_statements - First observed
cashctrl_list_sequence_numbers - First observed
cashctrl_list_tax_codes - First observed
cashctrl_update_order_status
Related MCP Connectors
Read Billy invoices, bills, contacts, products and postings; create contacts and draft invoices.
151Read e-Boekhouden relations, invoices, ledgers, bookings and products; create relations, invoices.
1Read Billomat clients, invoices, offers, credit notes, reminders; create clients and draft invoices.
341Read SuperFaktura invoices, clients, expenses, bank and stock; create clients, expenses and drafts.
251
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables interaction with the sevDesk accounting API for managing contacts, invoices, credit notes, orders, vouchers, transactions, and parts.12 npm1MIT
- AlicenseAqualityAmaintenanceTalk to your GnuCash books: a one-call financial dashboard (net worth, runway, budgets, what's overdue), and whole bank statements entered and reconciled in a single call from CSV, OFX, PDF, or even a screenshot or photo of the statement. Plus transactions, invoices, reports and multi-currency; local, SQLite/PostgreSQL/MySQL.8777MIT
- AlicenseNot gradedqualityCmaintenanceEnables MCP clients to authenticate against an internal accounting web API, list companies, categories, bank transactions and documents, upload or batch-deposit receipts (idempotent, dry-run by default), set accounting metadata, and link documents to their matching bank transactions.MIT
- FlicenseBqualityDmaintenanceEnables interaction with the Bokio accounting API for managing journal entries, invoices, customers, items, and more, with read-only mode by default for safety.18-
Glama MCP Gateway
Add one secure layer between your agents and this server.