Skip to content

CashCtrl MCP by usefulapi

by usefulapi.io · remote · no sign-in to list tools · v1.3.3 · published by io.usefulapi

Read CashCtrl accounts, journal, orders, people, articles, salaries and reports; book and create.

Deletes · 6

28 tools: 6 can delete or cancel things and 22 only read.

Scanned Oct 21, 2026

No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http cashctrl https://cashctrl.usefulapi.io/mcp

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

28 tools

Deletes or cancels 6Claude Code: deny
  • cashctrl_create_journal_entryWRITE: changes the accounting records.No findings

    Why it is in this group

    • The name "cashctrl_create_journal_entry" says "create": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Create a journal entry
    • destructiveHint: true
  • cashctrl_create_orderWRITE: changes the accounting records.No findings

    Why it is in this group

    • The name "cashctrl_create_order" says "create": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Create an order
    • destructiveHint: true
  • cashctrl_create_personWRITE: changes the accounting records.No findings

    Why it is in this group

    • The name "cashctrl_create_person" says "create": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Create a person or company
    • destructiveHint: true
  • cashctrl_delete_journal_entriesWRITE: changes the accounting records.No findings

    Why it is in this group

    • The name "cashctrl_delete_journal_entries" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Delete journal entries
    • destructiveHint: true
  • cashctrl_delete_ordersWRITE: changes the accounting records.No findings

    Why it is in this group

    • The name "cashctrl_delete_orders" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Delete orders
    • destructiveHint: true
  • cashctrl_update_order_statusWRITE: changes the accounting records.No findings

    Why it is in this group

    • The name "cashctrl_update_order_status" says "update": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Change the status of orders
    • destructiveHint: true
Only reads 22Claude Code: allow
  • cashctrl_get_accountOne account of the chart of accounts by id.No findings

    Why it is in this group

    • The name "cashctrl_get_account" says "get": a word for reading.
    Description, as the server wrote it
    One account of the chart of accounts by id. GET /account/read.json.

    Annotations the server declares

    • title: Get an account
    • readOnlyHint: true
  • cashctrl_get_account_balanceThe balance of one account at the end of a day (default: the last day of the current fiscal period).No findings

    Why it is in this group

    • The name "cashctrl_get_account_balance" says "get": a word for reading.
    Description, as the server wrote it
    The balance of one account at the end of a day (default: the last day of the current fiscal period). GET /account/balance.

    Annotations the server declares

    • title: Get an account balance
    • readOnlyHint: true
  • cashctrl_get_articleOne inventory article by id.No findings

    Why it is in this group

    • The name "cashctrl_get_article" says "get": a word for reading.
    Description, as the server wrote it
    One inventory article by id. GET /inventory/article/read.json.

    Annotations the server declares

    • title: Get an inventory article
    • readOnlyHint: true
  • cashctrl_get_journal_entryOne book entry by id, with its items for a collective entry.No findings

    Why it is in this group

    • The name "cashctrl_get_journal_entry" says "get": a word for reading.
    Description, as the server wrote it
    One book entry by id, with its items for a collective entry. GET /journal/read.json.

    Annotations the server declares

    • title: Get a journal entry
    • readOnlyHint: true
  • cashctrl_get_orderOne order (invoice, quote, purchase document) by id, with its items, totals and status.No findings

    Why it is in this group

    • The name "cashctrl_get_order" says "get": a word for reading.
    Description, as the server wrote it
    One order (invoice, quote, purchase document) by id, with its items, totals and status. GET /order/read.json.

    Annotations the server declares

    • title: Get an order
    • readOnlyHint: true
  • cashctrl_get_personOne person or company by id, with addresses, contact data and bank accounts.No findings

    Why it is in this group

    • The name "cashctrl_get_person" says "get": a word for reading.
    Description, as the server wrote it
    One person or company by id, with addresses, contact data and bank accounts. GET /person/read.json.

    Annotations the server declares

    • title: Get a person
    • readOnlyHint: true
  • cashctrl_get_report_dataThe data of one report element (for example the balance sheet or the income statement) for a fiscal period or a date range.No findings

    Why it is in this group

    • The name "cashctrl_get_report_data" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Get report data
    • readOnlyHint: true
  • cashctrl_get_report_treeThe reports set up in CashCtrl (balance sheet, income statement, and so on) as a tree of collections and elements.No findings

    Why it is in this group

    • The name "cashctrl_get_report_tree" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Get the report tree
    • readOnlyHint: true
  • cashctrl_get_salary_statementOne payroll statement by id, with its salary items.No findings

    Why it is in this group

    • The name "cashctrl_get_salary_statement" says "get": a word for reading.
    Description, as the server wrote it
    One payroll statement by id, with its salary items. Sensitive personal data. GET /salary/statement/read.json.

    Annotations the server declares

    • title: Get a salary statement
    • readOnlyHint: true
  • cashctrl_list_account_categoriesThe categories of the chart of accounts (assets, liabilities, expenses, revenue and their sub-categories).No findings

    Why it is in this group

    • The name "cashctrl_list_account_categories" says "list": a word for reading.
    Description, as the server wrote it
    The categories of the chart of accounts (assets, liabilities, expenses, revenue and their sub-categories). GET /account/category/list.json.

    Annotations the server declares

    • title: List account categories
    • readOnlyHint: true
  • cashctrl_list_accountsThe chart of accounts: number, name, category and the balance for the fiscal period.No findings

    Why it is in this group

    • The name "cashctrl_list_accounts" says "list": a word for reading.
    Description, as the server wrote it
    The chart of accounts: number, name, category and the balance for the fiscal period. Not paged. GET /account/list.json.

    Annotations the server declares

    • title: List accounts
    • readOnlyHint: true
  • cashctrl_list_articlesInventory articles (products and services) with number, name, price, stock and accounts.No findings

    Why it is in this group

    • The name "cashctrl_list_articles" says "list": a word for reading.
    Description, as the server wrote it
    Inventory articles (products and services) with number, name, price, stock and accounts. GET /inventory/article/list.json.

    Annotations the server declares

    • title: List inventory articles
    • readOnlyHint: true
  • cashctrl_list_bank_accountsThe bank accounts set up in CashCtrl (name, IBAN, linked ledger account).No findings

    Why it is in this group

    • The name "cashctrl_list_bank_accounts" says "list": a word for reading.
    Description, as the server wrote it
    The bank accounts set up in CashCtrl (name, IBAN, linked ledger account). GET /account/bank/list.json.

    Annotations the server declares

    • title: List bank accounts
    • readOnlyHint: true
  • cashctrl_list_currenciesThe currencies set up in CashCtrl with their exchange rates.No findings

    Why it is in this group

    • The name "cashctrl_list_currencies" says "list": a word for reading.
    Description, as the server wrote it
    The currencies set up in CashCtrl with their exchange rates. GET /currency/list.json.

    Annotations the server declares

    • title: List currencies
    • readOnlyHint: true
  • cashctrl_list_fiscal_periodsAll fiscal periods (id, name, start, end, current flag).No findings

    Why it is in this group

    • The name "cashctrl_list_fiscal_periods" says "list": a word for reading.
    Description, as the server wrote it
    All fiscal periods (id, name, start, end, current flag). The id is the fiscal_period_id of the other tools. GET /fiscalperiod/list.json.

    Annotations the server declares

    • title: List fiscal periods
    • readOnlyHint: true
  • cashctrl_list_journalBook 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.No findings

    Why it is in this group

    • The name "cashctrl_list_journal" says "list": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: List journal entries
    • readOnlyHint: true
  • cashctrl_list_order_categoriesThe order categories (Quote, Invoice, Credit note, Purchase invoice and so on) with their statuses (Draft, Open, Paid) and the default accounts and sequence numbers.No findings

    Why it is in this group

    • The name "cashctrl_list_order_categories" says "list": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: List order categories
    • readOnlyHint: true
  • cashctrl_list_ordersSales or purchase documents (quotes, order confirmations, invoices, delivery notes, credit notes, vendor bills) with number, date, customer, status and total.No findings

    Why it is in this group

    • The name "cashctrl_list_orders" says "list": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: List orders
    • readOnlyHint: true
  • cashctrl_list_personsCustomers, vendors, employees and other contacts (name, company, number, roles, addresses).No findings

    Why it is in this group

    • The name "cashctrl_list_persons" says "list": a word for reading.
    Description, as the server wrote it
    Customers, vendors, employees and other contacts (name, company, number, roles, addresses). GET /person/list.json.

    Annotations the server declares

    • title: List people
    • readOnlyHint: true
  • cashctrl_list_salary_statementsPayroll statements (employee, date, status, gross and net amounts), newest first.No findings

    Why it is in this group

    • The name "cashctrl_list_salary_statements" says "list": a word for reading.
    Description, as the server wrote it
    Payroll statements (employee, date, status, gross and net amounts), newest first. Sensitive personal data. GET /salary/statement/list.json.

    Annotations the server declares

    • title: List salary statements
    • readOnlyHint: true
  • cashctrl_list_sequence_numbersThe number sequences (for journal references, order numbers, customer numbers).No findings

    Why it is in this group

    • The name "cashctrl_list_sequence_numbers" says "list": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: List sequence numbers
    • readOnlyHint: true
  • cashctrl_list_tax_codesThe VAT tax codes (id, code, name, rates).No findings

    Why it is in this group

    • The name "cashctrl_list_tax_codes" says "list": a word for reading.
    Description, as the server wrote it
    The VAT tax codes (id, code, name, rates). The id is the tax_id of the write tools. GET /tax/list.json.

    Annotations the server declares

    • title: List tax codes
    • readOnlyHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.3.3. Values in angle brackets are yours to fill in.

claude mcp add --transport http cashctrl https://cashctrl.usefulapi.io/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__cashctrl__cashctrl_list_accounts",
      "mcp__cashctrl__cashctrl_get_account",
      "mcp__cashctrl__cashctrl_get_account_balance",
      "mcp__cashctrl__cashctrl_list_account_categories",
      "mcp__cashctrl__cashctrl_list_bank_accounts",
      "mcp__cashctrl__cashctrl_list_journal",
      "mcp__cashctrl__cashctrl_get_journal_entry",
      "mcp__cashctrl__cashctrl_list_orders",
      "mcp__cashctrl__cashctrl_get_order",
      "mcp__cashctrl__cashctrl_list_order_categories",
      "mcp__cashctrl__cashctrl_list_persons",
      "mcp__cashctrl__cashctrl_get_person",
      "mcp__cashctrl__cashctrl_list_articles",
      "mcp__cashctrl__cashctrl_get_article",
      "mcp__cashctrl__cashctrl_list_salary_statements",
      "mcp__cashctrl__cashctrl_get_salary_statement",
      "mcp__cashctrl__cashctrl_list_fiscal_periods",
      "mcp__cashctrl__cashctrl_list_tax_codes",
      "mcp__cashctrl__cashctrl_list_sequence_numbers",
      "mcp__cashctrl__cashctrl_list_currencies",
      "mcp__cashctrl__cashctrl_get_report_tree",
      "mcp__cashctrl__cashctrl_get_report_data"
    ],
    "ask": [],
    "deny": [
      "mcp__cashctrl__cashctrl_create_journal_entry",
      "mcp__cashctrl__cashctrl_delete_journal_entries",
      "mcp__cashctrl__cashctrl_create_order",
      "mcp__cashctrl__cashctrl_update_order_status",
      "mcp__cashctrl__cashctrl_delete_orders",
      "mcp__cashctrl__cashctrl_create_person"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as cashctrl. Review it before you use it.