# KashFlow MCP by usefulapi (remote · kashflow.usefulapi.io)

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

- Trust score: 18/100 (low)
- Change this week: −46
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `kashflow.usefulapi.io`: 18/100 (this document), [markdown](https://verifymcp.io/servers/io-usefulapi-kashflow/kashflow.md), [page](https://verifymcp.io/servers/io-usefulapi-kashflow/kashflow)

## Channel facts

- Endpoint: `https://kashflow.usefulapi.io/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.14.3`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Endpoint Security**: 46/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not yet verified: we couldn't confirm whether this endpoint requires it.
  - HTTPS enforcement could not be verified: the plaintext port redirected somewhere other than https, so enforcement is unproven.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 0/100
  - Transport check failed: declared streamable-http, but the endpoint redirected instead of responding directly.
- **Schema Quality & AI Usability**: 0/100
  - Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 0/100
  - Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.
- **Tool Safety**: 0/100
  - Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.
- **Capabilities**: 0/100
  - Capabilities not yet verified: we couldn't read the endpoint's capabilities.

**Unverified: 5 categories.** Categories scored 0 because we could not verify them: authentication we do not have, an unreachable endpoint, or not enough scan history. We only credit what we can confirm.

## Install

### How do I install the KashFlow MCP by usefulapi server?

KashFlow MCP by usefulapi is a hosted endpoint at https://kashflow.usefulapi.io/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

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

### Cursor

```json
{
  "mcpServers": {
    "io-usefulapi-kashflow": {
      "url": "https://kashflow.usefulapi.io/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "io-usefulapi-kashflow": {
      "type": "http",
      "url": "https://kashflow.usefulapi.io/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.io-usefulapi-kashflow]
url = "https://kashflow.usefulapi.io/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "io-usefulapi-kashflow": {
      "type": "remote",
      "url": "https://kashflow.usefulapi.io/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add io-usefulapi-kashflow --url 'https://kashflow.usefulapi.io/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  io-usefulapi-kashflow:
    url: "https://kashflow.usefulapi.io/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "io-usefulapi-kashflow": {
      "Transport": "http",
      "Url": "https://kashflow.usefulapi.io/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add io-usefulapi-kashflow -t streamable-http -u 'https://kashflow.usefulapi.io/mcp'
```

### Other

```json
{
  "mcpServers": {
    "io-usefulapi-kashflow": {
      "type": "http",
      "url": "https://kashflow.usefulapi.io/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-02 (score 18, −50)

- [security regression] Endpoint reachability: reachable → not serving MCP
- [security regression] Stability: 0.23 → unverified
- [security regression] Tool safety: pass → unverified
- [security regression] Authorization: pass → unverified
- [functional regression] Schema quality: 100 → unverified
- [functional regression] Capabilities: pass → unverified
- [functional regression] Tool coverage: 100 → unverified

### 2026-10-31 (score 68, +3)

- [security improvement] Authorization: partial → pass
- [functional improvement] MCP protocol: fail → pass
- [functional] New prompt “add_a_customer_or_a_supplier”
- [functional] New prompt “check_bank_balances_and_transactions”
- [functional] New prompt “find_who_owes_you_money”
- [functional] New prompt “prepare_your_vat_return_figures”
- [functional] New prompt “read_or_add_a_note_on_an_invoice”
- [functional] New prompt “review_financial_statements_and_key_figures”
- [functional] MCP protocol version: 2025-06-18 → 2025-11-25
- [functional] Server version: 1.10.0 → 1.12.0
- [functional] Server version: 1.9.0 → 1.10.0
- [functional] Server version: 1.8.2 → 1.9.0

### 2026-10-30 (score 65, +1)

- [functional] Server version: 1.8.1 → 1.8.2
- [functional] Server version: 1.8.0 → 1.8.1

### 2026-10-29 (score 64, 0)

- [functional] Server version: 1.7.0 → 1.8.0
- [functional] Server version: 1.6.0 → 1.7.0

### 2026-10-28 (score 64, +1)

- [functional] Server version: 1.4.0 → 1.6.0

### 2026-10-27 (score 63, 0)

- [functional] Server version: 1.3.0 → 1.4.0

### 2026-10-26 (score 63, +1)

- [functional improvement] Stability: unverified → 0.03

### 2026-10-25 (score 62)

First indexed and scored.

## MCP tools (38)

### `kashflow_get_company_details` (~39 tokens)

Get company details

The KashFlow company: name, address, contact, VAT registration, currency, payment terms and business type. SOAP GetCompanyDetails.

### `kashflow_list_customers` (~93 tokens)

List customers

All customers (name, code, contact, email, phone, address, VAT number, payment terms, notes), paged here: the reply says total and next_offset. SOAP GetCustomers.

Input parameters:

- `limit` (integer): How many records to return (default 100, max 500).
- `offset` (integer): How many records to skip (default 0), to get the next page.

### `kashflow_get_customer` (~58 tokens)

Get customer by code

One customer by its KashFlow customer code (the short code shown in the customer list, e.g. ACME01). SOAP GetCustomer.

Input parameters:

- `customer_code` (string, required): The customer code, e.g. ACME01.

### `kashflow_get_customer_by_id` (~45 tokens)

Get customer by id

One customer by its numeric CustomerID (as returned in other replies). SOAP GetCustomerByID.

Input parameters:

- `customer_id` (integer, required): The numeric CustomerID.

### `kashflow_find_customer_by_email` (~39 tokens)

Find customer by email

The customer whose e-mail address matches. SOAP GetCustomerByEmail.

Input parameters:

- `email` (string, required): The customer's e-mail address.

### `kashflow_get_customer_balance` (~50 tokens)

Get customer balance

What one customer owes: the total invoiced value and the outstanding balance. SOAP GetCustomerBalance.

Input parameters:

- `customer_code` (string, required): The customer code, e.g. ACME01.

### `kashflow_create_customer` (~254 tokens)

Create customer

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.

Input parameters:

- `address1` (string)
- `address2` (string)
- `address3` (string)
- `address4` (string)
- `code` (string, required): A unique customer code, e.g. ACME01.
- `contact` (string): Contact person.
- `country_code` (string): Two-letter ISO country code, e.g. GB.
- `country_name` (string): Country name, e.g. United Kingdom.
- `email` (string)
- `mobile` (string)
- `name` (string, required): The customer / company name.
- `notes` (string)
- `payment_terms_days` (integer): Payment terms in days.
- `postcode` (string)
- `tax_region` (string): VAT classification of the customer: uk (default, domestic), eu (EC customer) or outside_eu. Set it for customers outside the UK.
- `telephone` (string)
- `vat_number` (string)
- `website` (string)

### `kashflow_list_suppliers` (~92 tokens)

List suppliers

All suppliers (name, code, contact, email, phone, address, VAT number, payment terms), paged here: the reply says total and next_offset. SOAP GetSuppliers.

Input parameters:

- `limit` (integer): How many records to return (default 100, max 500).
- `offset` (integer): How many records to skip (default 0), to get the next page.

### `kashflow_get_supplier` (~35 tokens)

Get supplier by code

One supplier by its KashFlow supplier code. SOAP GetSupplier.

Input parameters:

- `supplier_code` (string, required): The supplier code.

### `kashflow_create_supplier` (~206 tokens)

Create supplier

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.

Input parameters:

- `address1` (string)
- `address2` (string)
- `address3` (string)
- `address4` (string)
- `code` (string, required): A unique supplier code, e.g. OFFICE01.
- `contact` (string): Contact person.
- `email` (string)
- `eu_supplier` (boolean): True for a supplier in another EU country (EC supplier). Default false (UK).
- `mobile` (string)
- `name` (string, required): The supplier / company name.
- `notes` (string)
- `payment_terms_days` (integer): Payment terms in days.
- `postcode` (string)
- `telephone` (string)
- `vat_number` (string)
- `website` (string)

### `kashflow_get_invoice` (~65 tokens)

Get invoice by number

One sales invoice by its invoice number: customer, dates, lines (description, quantity, rate, VAT), net, VAT, amount paid and a link. SOAP GetInvoice.

Input parameters:

- `invoice_number` (integer, required): The invoice number, e.g. 1042.

### `kashflow_list_invoices` (~121 tokens)

List invoices by date range

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.

Input parameters:

- `end_date` (string, required): Last invoice date, yyyy-mm-dd.
- `limit` (integer): How many records to return (default 100, max 500).
- `offset` (integer): How many records to skip (default 0), to get the next page.
- `start_date` (string, required): First invoice date, yyyy-mm-dd.

### `kashflow_list_customer_invoices` (~99 tokens)

List a customer's invoices

All sales invoices of one customer, by numeric CustomerID (see kashflow_get_customer for the id), paged here. SOAP GetInvoicesForCustomer.

Input parameters:

- `customer_id` (integer, required): The numeric CustomerID.
- `limit` (integer): How many records to return (default 100, max 500).
- `offset` (integer): How many records to skip (default 0), to get the next page.

### `kashflow_list_unpaid_invoices` (~75 tokens)

List unpaid invoices

All sales invoices not yet paid in full, paged here. SOAP GetInvoices_Unpaid.

Input parameters:

- `limit` (integer): How many records to return (default 100, max 500).
- `offset` (integer): How many records to skip (default 0), to get the next page.

### `kashflow_list_overdue_invoices` (~80 tokens)

List overdue invoices

All sales invoices past their due date and not paid in full, paged here. SOAP GetInvoices_Overdue.

Input parameters:

- `limit` (integer): How many records to return (default 100, max 500).
- `offset` (integer): How many records to skip (default 0), to get the next page.

### `kashflow_list_recent_invoices` (~44 tokens)

List recent invoices

The most recently created sales invoices. SOAP GetInvoices_Recent.

Input parameters:

- `count` (integer): How many invoices (default 20, max 500).

### `kashflow_list_invoice_payments` (~52 tokens)

List payments of an invoice

The payments recorded against one sales invoice (date, amount, method, bank account, note), by invoice number. SOAP GetInvoicePayment.

Input parameters:

- `invoice_number` (integer, required): The invoice number.

### `kashflow_list_payments_by_date` (~123 tokens)

List invoice payments by date range

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.

Input parameters:

- `end_date` (string, required): Last payment date, yyyy-mm-dd.
- `page_number` (integer): Page number, starting at 1 (default 1).
- `start_date` (string, required): First payment date, yyyy-mm-dd.

### `kashflow_get_invoice_notes` (~57 tokens)

Get invoice notes

The notes attached to one sales invoice, by its InvoiceDBID (the numeric id in invoice replies, not the invoice number). SOAP GetInvoiceNotes.

Input parameters:

- `invoice_id` (integer, required): The invoice's InvoiceDBID.

### `kashflow_add_invoice_note` (~101 tokens)

Add invoice note

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.

Input parameters:

- `invoice_id` (integer, required): The invoice's InvoiceDBID.
- `note` (string, required): The note text.
- `note_date` (string): Note date, yyyy-mm-dd or yyyy-mm-ddThh:mm:ss (default: now, UTC).

### `kashflow_list_quotes` (~70 tokens)

List quotes

All sales quotes (same shape as invoices), paged here. SOAP GetQuotes.

Input parameters:

- `limit` (integer): How many records to return (default 100, max 500).
- `offset` (integer): How many records to skip (default 0), to get the next page.

### `kashflow_get_receipt` (~56 tokens)

Get purchase by number

One purchase (supplier invoice / receipt) by its receipt number: supplier, dates, lines, net, VAT, amount paid. SOAP GetReceipt.

Input parameters:

- `receipt_number` (integer, required): The purchase (receipt) number.

### `kashflow_list_recent_receipts` (~49 tokens)

List recent purchases

The most recently created purchases (supplier invoices / receipts). SOAP GetReceipts_Recent.

Input parameters:

- `count` (integer): How many purchases (default 20, max 500).

### `kashflow_list_supplier_receipts` (~102 tokens)

List a supplier's purchases

All purchases (supplier invoices / receipts) of one supplier, by numeric SupplierID (see kashflow_get_supplier), paged here. SOAP GetReceiptsForSupplier.

Input parameters:

- `limit` (integer): How many records to return (default 100, max 500).
- `offset` (integer): How many records to skip (default 0), to get the next page.
- `supplier_id` (integer, required): The numeric SupplierID.

### `kashflow_list_products` (~76 tokens)

List products

The product catalogue (name, code, description, price, stock level), paged here. SOAP GetProducts.

Input parameters:

- `limit` (integer): How many records to return (default 100, max 500).
- `offset` (integer): How many records to skip (default 0), to get the next page.

### `kashflow_list_bank_accounts` (~29 tokens)

List bank accounts

The bank accounts (AccountID, name, nominal code). SOAP GetBankAccounts.

### `kashflow_list_bank_transactions` (~111 tokens)

List bank transactions

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.

Input parameters:

- `account_id` (integer, required): The bank account's AccountID.
- `limit` (integer): How many records to return (default 100, max 500).
- `offset` (integer): How many records to skip (default 0), to get the next page.

### `kashflow_get_bank_balance` (~62 tokens)

Get bank balance

The balance of one bank account on a date (default today). SOAP GetBankBalance.

Input parameters:

- `account_id` (integer, required): The bank account's AccountID.
- `date` (string): Balance date, yyyy-mm-dd (default today, UTC).

### `kashflow_list_nominal_codes` (~72 tokens)

List nominal codes

The chart of accounts: nominal codes with their names. SOAP GetNominalCodes.

Input parameters:

- `limit` (integer): How many records to return (default 100, max 500).
- `offset` (integer): How many records to skip (default 0), to get the next page.

### `kashflow_list_vat_rates` (~28 tokens)

List VAT rates

The VAT rates set up in the account. SOAP GetVATRates.

### `kashflow_list_projects` (~26 tokens)

List projects

The projects defined in the account (id, name). SOAP GetProjects.

### `kashflow_get_profit_and_loss` (~82 tokens)

Get profit and loss

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.

Input parameters:

- `end_date` (string, required): End of the period, yyyy-mm-dd.
- `start_date` (string, required): Start of the period, yyyy-mm-dd.

### `kashflow_get_balance_sheet` (~64 tokens)

Get balance sheet

The balance sheet at a date (default today): fixed assets, current assets, current liabilities, capital and reserves with the lines of each. SOAP GetBalanceSheet.

Input parameters:

- `date` (string): Balance sheet date, yyyy-mm-dd (default today, UTC).

### `kashflow_get_trial_balance` (~109 tokens)

Get trial balance

The trial balance for a date range: every nominal code with debit, credit and balance. SOAP GetTrialBalance.

Input parameters:

- `end_date` (string, required): End of the period, yyyy-mm-dd.
- `limit` (integer): How many records to return (default 100, max 500).
- `offset` (integer): How many records to skip (default 0), to get the next page.
- `start_date` (string, required): Start of the period, yyyy-mm-dd.

### `kashflow_get_aged_debtors` (~105 tokens)

Get aged debtors

Who owes you money at a date (default today), aged into current, three periods and older, per customer. SOAP GetAgedDebtors.

Input parameters:

- `date` (string): Report date, yyyy-mm-dd (default today, UTC).
- `limit` (integer): How many records to return (default 100, max 500).
- `offset` (integer): How many records to skip (default 0), to get the next page.

### `kashflow_get_aged_creditors` (~105 tokens)

Get aged creditors

Who you owe money to at a date (default today), aged into current, three periods and older, per supplier. SOAP GetAgedCreditors.

Input parameters:

- `date` (string): Report date, yyyy-mm-dd (default today, UTC).
- `limit` (integer): How many records to return (default 100, max 500).
- `offset` (integer): How many records to skip (default 0), to get the next page.

### `kashflow_get_vat_report` (~77 tokens)

Get VAT report

The VAT return figures (boxes 1 to 9) for a period, and whether it was submitted to HMRC. SOAP GetVATReport.

Input parameters:

- `end_date` (string, required): End of the VAT period, yyyy-mm-dd.
- `start_date` (string, required): Start of the VAT period, yyyy-mm-dd.

### `kashflow_get_kpis` (~110 tokens)

Get KPIs

Key figures for a date range (income, expenses, profit and similar, as name/value pairs). SOAP GetKPIs.

Input parameters:

- `end_date` (string, required): End of the period, yyyy-mm-dd.
- `exclude_same_day_payments` (boolean): Leave out invoices paid the day they were issued (default false).
- `exclude_vat` (boolean): Leave VAT out of the figures (default false).
- `start_date` (string, required): Start of the period, yyyy-mm-dd.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/io-usefulapi-kashflow/kashflow#diagnostics

## Score history

- 2026-11-05: 18
- 2026-11-04: 18
- 2026-11-03: 18
- 2026-11-02: 18
- 2026-11-01: 68
- 2026-10-31: 68
- 2026-10-30: 65
- 2026-10-29: 64
- 2026-10-28: 64
- 2026-10-27: 63
- 2026-10-26: 63
- 2026-10-25: 62

## Common questions

### What is the KashFlow MCP by usefulapi server?

KashFlow MCP by usefulapi is listed in the public MCP registry as io.usefulapi/kashflow. Read KashFlow invoices, customers, suppliers, banking and reports; add customers, notes. This page covers its hosted endpoint (https://kashflow.usefulapi.io/mcp).

### Is the KashFlow MCP by usefulapi server safe to use?

KashFlow MCP by usefulapi scores 18 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the KashFlow MCP by usefulapi server expose?

KashFlow MCP by usefulapi exposes 38 tools: kashflow_get_company_details, kashflow_list_customers, kashflow_get_customer, kashflow_get_customer_by_id, kashflow_find_customer_by_email, and 33 more. Their descriptions and schemas cost roughly 3,061 tokens of context every time the server is loaded.

### Does the KashFlow MCP by usefulapi server require authentication?

Its publisher declares no required credentials for KashFlow MCP by usefulapi. We have not been able to confirm that against the live endpoint, and a server can require authorisation without declaring it here.

### Is the KashFlow MCP by usefulapi server still maintained?

KashFlow MCP by usefulapi is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What did VerifyMCP test on the KashFlow MCP by usefulapi server?

VerifyMCP ran 4 checks on KashFlow MCP by usefulapi, covering TLS certificate, HSTS header, DNSSEC and Transport. 7 items could not be completed, a gap on our side rather than a finding about KashFlow MCP by usefulapi: Authorization, HTTPS, Schema quality, Stability and 3 more. 5 categories score 0 for that reason, because we only credit what we can confirm. Supply Chain Security and Provenance & Transparency do not apply to a hosted endpoint, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.

## Links

- Remote endpoint: https://kashflow.usefulapi.io/mcp
- Repository: https://github.com/m190/usefulapi-mcp
- Website: https://usefulapi.io/kashflow/
- Changelog RSS feed: https://verifymcp.io/servers/io-usefulapi-kashflow/kashflow.xml
- Changelog JSON feed: https://verifymcp.io/servers/io-usefulapi-kashflow/kashflow/changelog.json
- Trust report (JSON): https://verifymcp.io/servers/io-usefulapi-kashflow/kashflow.json
- HTML version of this page: https://verifymcp.io/servers/io-usefulapi-kashflow/kashflow
