Skip to content

KashFlow MCP by usefulapi

io.usefulapi/kashflowusefulapi.iostreamable-httpv1.0.0Scanned

Read KashFlow invoices, customers, suppliers, banking and reports; add customers, notes.

38 tools: 1 do something that can't be undone, 3 change things and 34 only read.

Tools: 0 delete, 1 irreversible, 3 write, 34 read.
  • Reads private data · 6
  • Reads text others write · 38
  • Can send data out · 0
  • 1 finding

Anlyon alternative

4 of these tools change something. Run those as governed actions.

Declare what an action changes, and Anlyon puts it under a shared limit, binds every approval to the exact request, and grades the outcome. It works on any HTTPS API you can describe as an action.

Anlyon does not run, proxy or govern this MCP server. A tool your own code calls directly is not routed through Anlyon and is not governed by it.

Import an OpenAPI spec →

Tools

Grouped by what each tool does, most consequential first. Open one for its reasons and full description; descriptions are the publisher's own words.

38 tools

Can't be undone 1Claude Code: ask
  • kashflow_list_invoice_paymentsThe payments recorded against one sales invoice (date, amount, method, bank account, note), by invoice number.Reads private dataReads text others write1 finding

    Why it is in this group

    • The name "kashflow_list_invoice_payments" says "list": a word for reading.
    • The description's first verb is "payment": a word that usually means money moves, which cannot be taken back.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    What it can reach

    • private-dataThe description's first sentence says "note": it reads notes.
    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.

    Findings

    • Warn

      The server marks "kashflow_list_invoice_payments" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The name "kashflow_list_invoice_payments" says "list": a word for reading.

      What this check looks for
    Description, as the server wrote it
    The payments recorded against one sales invoice (date, amount, method, bank account, note), by invoice number. SOAP GetInvoicePayment.

    Annotations the server declares

    • title: List payments of an invoice
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
Changes things 3Claude Code: ask
  • kashflow_add_invoice_noteWRITE: add a note to a sales invoice, by its InvoiceDBID (the numeric id in invoice replies).Reads text others writeNo findings

    Why it is in this group

    • The name "kashflow_add_invoice_note" says "add": a word for a change.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    WRITE: add a note to a sales invoice, by its InvoiceDBID (the numeric id in invoice replies). Existing notes and the invoice are not changed. SOAP InsertInvoiceNote.

    Annotations the server declares

    • title: Add invoice note
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • kashflow_create_customerWRITE: create a new customer.Reads text others writeNo findings

    Why it is in this group

    • The name "kashflow_create_customer" says "create": a word for a change.
    • The input takes a statement or command to run (input.code), which can change anything it can reach.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    WRITE: create a new customer. The code must be unique (KashFlow refuses a code that exists) and nothing existing is changed. Returns the new CustomerID. SOAP InsertCustomer.

    Annotations the server declares

    • title: Create customer
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • kashflow_create_supplierWRITE: create a new supplier.Reads text others writeNo findings

    Why it is in this group

    • The name "kashflow_create_supplier" says "create": a word for a change.
    • The input takes a statement or command to run (input.code), which can change anything it can reach.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    WRITE: create a new supplier. The code must be unique (KashFlow refuses a code that exists) and nothing existing is changed. Returns the new SupplierID. SOAP InsertSupplier.

    Annotations the server declares

    • title: Create supplier
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
Only reads 34Show 34 read-only tools
  • kashflow_find_customer_by_emailThe customer whose e-mail address matches.Reads private dataReads text others writeNo findings

    Why it is in this group

    • The name "kashflow_find_customer_by_email" says "find": a word for reading.

    What it can reach

    • private-dataThe name "kashflow_find_customer_by_email" says "find" and "email": it reads mail.
    • private-dataThe description's first sentence says "mail": it reads mail.
    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    • untrusted-inputThe name "kashflow_find_customer_by_email" says "find" and "email": it reads inbound email, which other people can write.
    • untrusted-inputThe description's first sentence says "mail": it reads inbound email, which other people can write.
    Description, as the server wrote it
    The customer whose e-mail address matches. SOAP GetCustomerByEmail.

    Annotations the server declares

    • title: Find customer by email
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • kashflow_get_aged_creditorsWho you owe money to at a date (default today), aged into current, three periods and older, per supplier.Reads text others writeNo findings

    Why it is in this group

    • The name "kashflow_get_aged_creditors" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Who you owe money to at a date (default today), aged into current, three periods and older, per supplier. SOAP GetAgedCreditors.

    Annotations the server declares

    • title: Get aged creditors
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • kashflow_get_aged_debtorsWho owes you money at a date (default today), aged into current, three periods and older, per customer.Reads text others writeNo findings

    Why it is in this group

    • The name "kashflow_get_aged_debtors" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Who owes you money at a date (default today), aged into current, three periods and older, per customer. SOAP GetAgedDebtors.

    Annotations the server declares

    • title: Get aged debtors
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • kashflow_get_balance_sheetThe balance sheet at a date (default today): fixed assets, current assets, current liabilities, capital and reserves with the lines of each.Reads text others writeNo findings

    Why it is in this group

    • The name "kashflow_get_balance_sheet" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    The balance sheet at a date (default today): fixed assets, current assets, current liabilities, capital and reserves with the lines of each. SOAP GetBalanceSheet.

    Annotations the server declares

    • title: Get balance sheet
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • kashflow_get_bank_balanceThe balance of one bank account on a date (default today).Reads text others writeNo findings

    Why it is in this group

    • The name "kashflow_get_bank_balance" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    The balance of one bank account on a date (default today). SOAP GetBankBalance.

    Annotations the server declares

    • title: Get bank balance
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • kashflow_get_company_detailsThe KashFlow company: name, address, contact, VAT registration, currency, payment terms and business type.Reads private dataReads text others writeNo findings

    Why it is in this group

    • The name "kashflow_get_company_details" says "get": a word for reading.

    What it can reach

    • private-dataThe description's first sentence says "contact": it reads contacts.
    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    The KashFlow company: name, address, contact, VAT registration, currency, payment terms and business type. SOAP GetCompanyDetails.

    Annotations the server declares

    • title: Get company details
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • kashflow_get_customerOne customer by its KashFlow customer code (the short code shown in the customer list, e.g.Reads text others writeNo findings

    Why it is in this group

    • The name "kashflow_get_customer" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    One customer by its KashFlow customer code (the short code shown in the customer list, e.g. ACME01). SOAP GetCustomer.

    Annotations the server declares

    • title: Get customer by code
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • kashflow_get_customer_balanceWhat one customer owes: the total invoiced value and the outstanding balance.Reads text others writeNo findings

    Why it is in this group

    • The name "kashflow_get_customer_balance" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    What one customer owes: the total invoiced value and the outstanding balance. SOAP GetCustomerBalance.

    Annotations the server declares

    • title: Get customer balance
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • kashflow_get_customer_by_idOne customer by its numeric CustomerID (as returned in other replies).Reads text others writeNo findings

    Why it is in this group

    • The name "kashflow_get_customer_by_id" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    • untrusted-inputThe description's first sentence says "reply": it reads comments, which other people can write.
    Description, as the server wrote it
    One customer by its numeric CustomerID (as returned in other replies). SOAP GetCustomerByID.

    Annotations the server declares

    • title: Get customer by id
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • kashflow_get_invoiceOne sales invoice by its invoice number: customer, dates, lines (description, quantity, rate, VAT), net, VAT, amount paid and a link.Reads text others writeNo findings

    Why it is in this group

    • The name "kashflow_get_invoice" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    One sales invoice by its invoice number: customer, dates, lines (description, quantity, rate, VAT), net, VAT, amount paid and a link. SOAP GetInvoice.

    Annotations the server declares

    • title: Get invoice by number
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • kashflow_get_invoice_notesThe notes attached to one sales invoice, by its InvoiceDBID (the numeric id in invoice replies, not the invoice number).Reads private dataReads text others writeNo findings

    Why it is in this group

    • The name "kashflow_get_invoice_notes" says "get": a word for reading.

    What it can reach

    • private-dataThe name "kashflow_get_invoice_notes" says "get" and "note": it reads notes.
    • private-dataThe description's first sentence says "note": it reads notes.
    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    • untrusted-inputThe description's first sentence says "reply": it reads comments, which other people can write.
    Description, as the server wrote it
    The notes attached to one sales invoice, by its InvoiceDBID (the numeric id in invoice replies, not the invoice number). SOAP GetInvoiceNotes.

    Annotations the server declares

    • title: Get invoice notes
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • kashflow_get_kpisKey figures for a date range (income, expenses, profit and similar, as name/value pairs).Reads text others writeNo findings

    Why it is in this group

    • The name "kashflow_get_kpis" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Key figures for a date range (income, expenses, profit and similar, as name/value pairs). SOAP GetKPIs.

    Annotations the server declares

    • title: Get KPIs
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • kashflow_get_profit_and_lossThe profit and loss report for a date range: turnover, cost of sales, gross profit, expenses and net profit, with the lines of each section.Reads text others writeNo findings

    Why it is in this group

    • The name "kashflow_get_profit_and_loss" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    The profit and loss report for a date range: turnover, cost of sales, gross profit, expenses and net profit, with the lines of each section. SOAP GetProfitAndLoss.

    Annotations the server declares

    • title: Get profit and loss
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • kashflow_get_receiptOne purchase (supplier invoice / receipt) by its receipt number: supplier, dates, lines, net, VAT, amount paid.Reads text others writeNo findings

    Why it is in this group

    • The name "kashflow_get_receipt" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    One purchase (supplier invoice / receipt) by its receipt number: supplier, dates, lines, net, VAT, amount paid. SOAP GetReceipt.

    Annotations the server declares

    • title: Get purchase by number
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • kashflow_get_supplierOne supplier by its KashFlow supplier code.Reads text others writeNo findings

    Why it is in this group

    • The name "kashflow_get_supplier" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    One supplier by its KashFlow supplier code. SOAP GetSupplier.

    Annotations the server declares

    • title: Get supplier by code
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • kashflow_get_trial_balanceThe trial balance for a date range: every nominal code with debit, credit and balance.Reads text others writeNo findings

    Why it is in this group

    • The name "kashflow_get_trial_balance" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    The trial balance for a date range: every nominal code with debit, credit and balance. SOAP GetTrialBalance.

    Annotations the server declares

    • title: Get trial balance
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • kashflow_get_vat_reportThe VAT return figures (boxes 1 to 9) for a period, and whether it was submitted to HMRC.Reads text others writeNo findings

    Why it is in this group

    • The name "kashflow_get_vat_report" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    The VAT return figures (boxes 1 to 9) for a period, and whether it was submitted to HMRC. SOAP GetVATReport.

    Annotations the server declares

    • title: Get VAT report
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • kashflow_list_bank_accountsThe bank accounts (AccountID, name, nominal code).Reads text others writeNo findings

    Why it is in this group

    • The name "kashflow_list_bank_accounts" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    The bank accounts (AccountID, name, nominal code). SOAP GetBankAccounts.

    Annotations the server declares

    • title: List bank accounts
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • kashflow_list_bank_transactionsThe transactions of one bank account (date, money in/out, VAT, type, comment, customer/supplier), by AccountID from kashflow_list_bank_accounts, paged here.Reads text others writeNo findings

    Why it is in this group

    • The name "kashflow_list_bank_transactions" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    • untrusted-inputThe description's first sentence says "comment": it reads comments, which other people can write.
    Description, as the server wrote it
    The transactions of one bank account (date, money in/out, VAT, type, comment, customer/supplier), by AccountID from kashflow_list_bank_accounts, paged here. SOAP GetBankTransactions.

    Annotations the server declares

    • title: List bank transactions
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • kashflow_list_customer_invoicesAll sales invoices of one customer, by numeric CustomerID (see kashflow_get_customer for the id), paged here.Reads text others writeNo findings

    Why it is in this group

    • The name "kashflow_list_customer_invoices" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    All sales invoices of one customer, by numeric CustomerID (see kashflow_get_customer for the id), paged here. SOAP GetInvoicesForCustomer.

    Annotations the server declares

    • title: List a customer's invoices
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • kashflow_list_customersAll customers (name, code, contact, email, phone, address, VAT number, payment terms, notes), paged here: the reply says total and next_offset.Reads private dataReads text others writeNo findings

    Why it is in this group

    • The name "kashflow_list_customers" says "list": a word for reading.

    What it can reach

    • private-dataThe description's first sentence says "contact": it reads contacts.
    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    • untrusted-inputThe description's first sentence says "email": it reads inbound email, which other people can write.
    Description, as the server wrote it
    All customers (name, code, contact, email, phone, address, VAT number, payment terms, notes), paged here: the reply says total and next_offset. SOAP GetCustomers.

    Annotations the server declares

    • title: List customers
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • kashflow_list_invoicesSales invoices dated within a range (inclusive; a bare end date means the end of that day), paged here.Reads text others writeNo findings

    Why it is in this group

    • The name "kashflow_list_invoices" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Sales invoices dated within a range (inclusive; a bare end date means the end of that day), paged here. Dates are yyyy-mm-dd. SOAP GetInvoicesByDateRange.

    Annotations the server declares

    • title: List invoices by date range
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • kashflow_list_nominal_codesThe chart of accounts: nominal codes with their names.Reads text others writeNo findings

    Why it is in this group

    • The name "kashflow_list_nominal_codes" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    The chart of accounts: nominal codes with their names. SOAP GetNominalCodes.

    Annotations the server declares

    • title: List nominal codes
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • kashflow_list_overdue_invoicesAll sales invoices past their due date and not paid in full, paged here.Reads text others writeNo findings

    Why it is in this group

    • The name "kashflow_list_overdue_invoices" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    All sales invoices past their due date and not paid in full, paged here. SOAP GetInvoices_Overdue.

    Annotations the server declares

    • title: List overdue invoices
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • kashflow_list_payments_by_dateCustomer payments received within a date range (date, amount, invoice, method, bank account).Reads text others writeNo findings

    Why it is in this group

    • The name "kashflow_list_payments_by_date" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    Customer payments received within a date range (date, amount, invoice, method, bank account). KashFlow returns them a page at a time: set page_number 1, 2, ... until a page comes back empty. Dates are yyyy-mm-dd. SOAP GetInvoicePaymentsByDateRange.

    Annotations the server declares

    • title: List invoice payments by date range
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • kashflow_list_productsThe product catalogue (name, code, description, price, stock level), paged here.Reads text others writeNo findings

    Why it is in this group

    • The name "kashflow_list_products" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    The product catalogue (name, code, description, price, stock level), paged here. SOAP GetProducts.

    Annotations the server declares

    • title: List products
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • kashflow_list_projectsThe projects defined in the account (id, name).Reads text others writeNo findings

    Why it is in this group

    • The name "kashflow_list_projects" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    The projects defined in the account (id, name). SOAP GetProjects.

    Annotations the server declares

    • title: List projects
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • kashflow_list_quotesAll sales quotes (same shape as invoices), paged here.Reads text others writeNo findings

    Why it is in this group

    • The name "kashflow_list_quotes" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    All sales quotes (same shape as invoices), paged here. SOAP GetQuotes.

    Annotations the server declares

    • title: List quotes
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • kashflow_list_recent_invoicesThe most recently created sales invoices.Reads text others writeNo findings

    Why it is in this group

    • The name "kashflow_list_recent_invoices" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    The most recently created sales invoices. SOAP GetInvoices_Recent.

    Annotations the server declares

    • title: List recent invoices
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • kashflow_list_recent_receiptsThe most recently created purchases (supplier invoices / receipts).Reads text others writeNo findings

    Why it is in this group

    • The name "kashflow_list_recent_receipts" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    The most recently created purchases (supplier invoices / receipts). SOAP GetReceipts_Recent.

    Annotations the server declares

    • title: List recent purchases
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • kashflow_list_supplier_receiptsAll purchases (supplier invoices / receipts) of one supplier, by numeric SupplierID (see kashflow_get_supplier), paged here.Reads text others writeNo findings

    Why it is in this group

    • The name "kashflow_list_supplier_receipts" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    All purchases (supplier invoices / receipts) of one supplier, by numeric SupplierID (see kashflow_get_supplier), paged here. SOAP GetReceiptsForSupplier.

    Annotations the server declares

    • title: List a supplier's purchases
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • kashflow_list_suppliersAll suppliers (name, code, contact, email, phone, address, VAT number, payment terms), paged here: the reply says total and next_offset.Reads private dataReads text others writeNo findings

    Why it is in this group

    • The name "kashflow_list_suppliers" says "list": a word for reading.

    What it can reach

    • private-dataThe description's first sentence says "contact": it reads contacts.
    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    • untrusted-inputThe description's first sentence says "email": it reads inbound email, which other people can write.
    Description, as the server wrote it
    All suppliers (name, code, contact, email, phone, address, VAT number, payment terms), paged here: the reply says total and next_offset. SOAP GetSuppliers.

    Annotations the server declares

    • title: List suppliers
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • kashflow_list_unpaid_invoicesAll sales invoices not yet paid in full, paged here.Reads text others writeNo findings

    Why it is in this group

    • The name "kashflow_list_unpaid_invoices" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    All sales invoices not yet paid in full, paged here. SOAP GetInvoices_Unpaid.

    Annotations the server declares

    • title: List unpaid invoices
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • kashflow_list_vat_ratesThe VAT rates set up in the account.Reads text others writeNo findings

    Why it is in this group

    • The name "kashflow_list_vat_rates" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    The VAT rates set up in the account. SOAP GetVATRates.

    Annotations the server declares

    • title: List VAT rates
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: 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.

Exfil surface

Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.

No private-data, untrusted-input, outbound path in this server alone: no tool is tagged outbound.

Can send data out0
Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.

Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.

Findings

Matches of fixed checks, with the text they matched.

1 warn
  • The server marks "kashflow_list_invoice_payments" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The name "kashflow_list_invoice_payments" says "list": a word for reading.

    What this check looks for

History

Changes to its tool definitions and to its remote endpoint, newest first.

No change seen yet. Its tools are rescanned every day, and a remote endpoint is looked at once a week.

Install

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

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

Run in a terminal.

Claude Code permissions

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

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__kashflow__kashflow_get_company_details",
      "mcp__kashflow__kashflow_list_customers",
      "mcp__kashflow__kashflow_get_customer",
      "mcp__kashflow__kashflow_get_customer_by_id",
      "mcp__kashflow__kashflow_find_customer_by_email",
      "mcp__kashflow__kashflow_get_customer_balance",
      "mcp__kashflow__kashflow_list_suppliers",
      "mcp__kashflow__kashflow_get_supplier",
      "mcp__kashflow__kashflow_get_invoice",
      "mcp__kashflow__kashflow_list_invoices",
      "mcp__kashflow__kashflow_list_customer_invoices",
      "mcp__kashflow__kashflow_list_unpaid_invoices",
      "mcp__kashflow__kashflow_list_overdue_invoices",
      "mcp__kashflow__kashflow_list_recent_invoices",
      "mcp__kashflow__kashflow_list_payments_by_date",
      "mcp__kashflow__kashflow_get_invoice_notes",
      "mcp__kashflow__kashflow_list_quotes",
      "mcp__kashflow__kashflow_get_receipt",
      "mcp__kashflow__kashflow_list_recent_receipts",
      "mcp__kashflow__kashflow_list_supplier_receipts",
      "mcp__kashflow__kashflow_list_products",
      "mcp__kashflow__kashflow_list_bank_accounts",
      "mcp__kashflow__kashflow_list_bank_transactions",
      "mcp__kashflow__kashflow_get_bank_balance",
      "mcp__kashflow__kashflow_list_nominal_codes",
      "mcp__kashflow__kashflow_list_vat_rates",
      "mcp__kashflow__kashflow_list_projects",
      "mcp__kashflow__kashflow_get_profit_and_loss",
      "mcp__kashflow__kashflow_get_balance_sheet",
      "mcp__kashflow__kashflow_get_trial_balance",
      "mcp__kashflow__kashflow_get_aged_debtors",
      "mcp__kashflow__kashflow_get_aged_creditors",
      "mcp__kashflow__kashflow_get_vat_report",
      "mcp__kashflow__kashflow_get_kpis"
    ],
    "ask": [
      "mcp__kashflow__kashflow_create_customer",
      "mcp__kashflow__kashflow_create_supplier",
      "mcp__kashflow__kashflow_list_invoice_payments",
      "mcp__kashflow__kashflow_add_invoice_note"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as kashflow. Review it before you use it.

Capability tags behind 38 rules
  • mcp__kashflow__kashflow_get_company_details private-data, untrusted-input
  • mcp__kashflow__kashflow_list_customers private-data, untrusted-input
  • mcp__kashflow__kashflow_get_customer untrusted-input
  • mcp__kashflow__kashflow_get_customer_by_id untrusted-input
  • mcp__kashflow__kashflow_find_customer_by_email private-data, untrusted-input
  • mcp__kashflow__kashflow_get_customer_balance untrusted-input
  • mcp__kashflow__kashflow_create_customer untrusted-input
  • mcp__kashflow__kashflow_list_suppliers private-data, untrusted-input
  • mcp__kashflow__kashflow_get_supplier untrusted-input
  • mcp__kashflow__kashflow_create_supplier untrusted-input
  • mcp__kashflow__kashflow_get_invoice untrusted-input
  • mcp__kashflow__kashflow_list_invoices untrusted-input
  • mcp__kashflow__kashflow_list_customer_invoices untrusted-input
  • mcp__kashflow__kashflow_list_unpaid_invoices untrusted-input
  • mcp__kashflow__kashflow_list_overdue_invoices untrusted-input
  • mcp__kashflow__kashflow_list_recent_invoices untrusted-input
  • mcp__kashflow__kashflow_list_invoice_payments private-data, untrusted-input
  • mcp__kashflow__kashflow_list_payments_by_date untrusted-input
  • mcp__kashflow__kashflow_get_invoice_notes private-data, untrusted-input
  • mcp__kashflow__kashflow_add_invoice_note untrusted-input
  • mcp__kashflow__kashflow_list_quotes untrusted-input
  • mcp__kashflow__kashflow_get_receipt untrusted-input
  • mcp__kashflow__kashflow_list_recent_receipts untrusted-input
  • mcp__kashflow__kashflow_list_supplier_receipts untrusted-input
  • mcp__kashflow__kashflow_list_products untrusted-input
  • mcp__kashflow__kashflow_list_bank_accounts untrusted-input
  • mcp__kashflow__kashflow_list_bank_transactions untrusted-input
  • mcp__kashflow__kashflow_get_bank_balance untrusted-input
  • mcp__kashflow__kashflow_list_nominal_codes untrusted-input
  • mcp__kashflow__kashflow_list_vat_rates untrusted-input
  • mcp__kashflow__kashflow_list_projects untrusted-input
  • mcp__kashflow__kashflow_get_profit_and_loss untrusted-input
  • mcp__kashflow__kashflow_get_balance_sheet untrusted-input
  • mcp__kashflow__kashflow_get_trial_balance untrusted-input
  • mcp__kashflow__kashflow_get_aged_debtors untrusted-input
  • mcp__kashflow__kashflow_get_aged_creditors untrusted-input
  • mcp__kashflow__kashflow_get_vat_report untrusted-input
  • mcp__kashflow__kashflow_get_kpis untrusted-input

Pin

Keep the decision: fail CI when the tools change, follow every change, or show a badge.

Pin in CI

Fail a build when the tools you reviewed are not the tools the server serves today.

curl -s "https://anlyon.dev/api/v1/servers/io.usefulapi/kashflow/verify?hash=e3bd3c55ffa0b78f677785d936e68aaa2b3ed40f7c20f22d6bfe2578be163c93" | jq -e '.changed == false'

Pinned hash e3bd3c55ffa0, from Oct 25, 2026, 17:23 UTC.

Watch

Get told when its tools change: a new tool, a new description, a new class.

https://anlyon.dev/servers/io.usefulapi/kashflow/changes.xml

An Atom feed. Works in any feed reader or Slack's RSS app.

Badge

anlyon.dev badge for io.usefulapi/kashflow
[![anlyon.dev](https://anlyon.dev/badge/io.usefulapi/kashflow.svg)](https://anlyon.dev/servers/io.usefulapi/kashflow)

Source: MCP Registry · repository. Synced Oct 25, 2026, 17:22 UTC.