KashFlow MCP by usefulapi
Read KashFlow invoices, customers, suppliers, banking and reports; add customers, notes.
Sollte ich dies verwenden
Qualität und Sicherheit
Befunde (4)
- LOWin kashflow_find_customer_by_email
- LOWin kashflow_list_customer_invoices
- LOWin kashflow_list_supplier_receipts
- LOWin kashflow_list_bank_transactions
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"kashflow": {
"url": "https://kashflow.usefulapi.io/mcp"
}
}
}Remote-Endpunkte
https://kashflow.usefulapi.io/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (38)
🟢kashflow_get_company_details
The KashFlow company: name, address, contact, VAT registration, currency, payment terms and business type. SOAP GetCompanyDetails.
Eingabe-Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢kashflow_list_customers(limit, offset)
All customers (name, code, contact, email, phone, address, VAT number, payment terms, notes), paged here: the reply says total and next_offset. SOAP GetCustomers.
Eingabe-Schema
{
"type": "object",
"properties": {
"limit": {
"description": "How many records to return (default 100, max 500).",
"type": "integer",
"minimum": 1,
"maximum": 500
},
"offset": {
"description": "How many records to skip (default 0), to get the next page.",
"type": "integer",
"minimum": 0,
"maximum": 10000000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢kashflow_get_customer(customer_code)
One customer by its KashFlow customer code (the short code shown in the customer list, e.g. ACME01). SOAP GetCustomer.
Eingabe-Schema
{
"type": "object",
"properties": {
"customer_code": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "The customer code, e.g. ACME01."
}
},
"required": [
"customer_code"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢kashflow_get_customer_by_id(customer_id)
One customer by its numeric CustomerID (as returned in other replies). SOAP GetCustomerByID.
Eingabe-Schema
{
"type": "object",
"properties": {
"customer_id": {
"type": "integer",
"minimum": 1,
"maximum": 2147483647,
"description": "The numeric CustomerID."
}
},
"required": [
"customer_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢kashflow_find_customer_by_email(email)
The customer whose e-mail address matches. SOAP GetCustomerByEmail.
Eingabe-Schema
{
"type": "object",
"properties": {
"email": {
"type": "string",
"minLength": 3,
"maxLength": 254,
"description": "The customer's e-mail address."
}
},
"required": [
"email"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢kashflow_get_customer_balance(customer_code)
What one customer owes: the total invoiced value and the outstanding balance. SOAP GetCustomerBalance.
Eingabe-Schema
{
"type": "object",
"properties": {
"customer_code": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "The customer code, e.g. ACME01."
}
},
"required": [
"customer_code"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡kashflow_create_customer(code, name, contact, email, telephone, ...)
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.
Eingabe-Schema
{
"type": "object",
"properties": {
"code": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "A unique customer code, e.g. ACME01."
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "The customer / company name."
},
"contact": {
"description": "Contact person.",
"type": "string",
"maxLength": 200
},
"email": {
"type": "string",
"maxLength": 254
},
"telephone": {
"type": "string",
"maxLength": 50
},
"mobile": {
"type": "string",
"maxLength": 50
},
"address1": {
"type": "string",
"maxLength": 200
},
"address2": {
"type": "string",
"maxLength": 200
},
"address3": {
"type": "string",
"maxLength": 200
},
"address4": {
"type": "string",
"maxLength": 200
},
"postcode": {
"type": "string",
"maxLength": 20
},
"country_name": {
"description": "Country name, e.g. United Kingdom.",
"type": "string",
"maxLength": 100
},
"country_code": {
"description": "Two-letter ISO country code, e.g. GB.",
"type": "string",
"pattern": "^[A-Za-z]{2}$"
},
"website": {
"type": "string",
"maxLength": 200
},
"vat_number": {
"type": "string",
"maxLength": 50
},
"tax_region": {
"description": "VAT classification of the customer: uk (default, domestic), eu (EC customer) or outside_eu. Set it for customers outside the UK.",
"type": "string",
"enum": [
"uk",
"eu",
"outside_eu"
]
},
"payment_terms_days": {
"description": "Payment terms in days.",
"type": "integer",
"minimum": 0,
"maximum": 3650
},
"notes": {
"type": "string",
"maxLength": 5000
}
},
"required": [
"code",
"name"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢kashflow_list_suppliers(limit, offset)
All suppliers (name, code, contact, email, phone, address, VAT number, payment terms), paged here: the reply says total and next_offset. SOAP GetSuppliers.
Eingabe-Schema
{
"type": "object",
"properties": {
"limit": {
"description": "How many records to return (default 100, max 500).",
"type": "integer",
"minimum": 1,
"maximum": 500
},
"offset": {
"description": "How many records to skip (default 0), to get the next page.",
"type": "integer",
"minimum": 0,
"maximum": 10000000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢kashflow_get_supplier(supplier_code)
One supplier by its KashFlow supplier code. SOAP GetSupplier.
Eingabe-Schema
{
"type": "object",
"properties": {
"supplier_code": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "The supplier code."
}
},
"required": [
"supplier_code"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡kashflow_create_supplier(code, name, contact, email, telephone, ...)
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.
Eingabe-Schema
{
"type": "object",
"properties": {
"code": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "A unique supplier code, e.g. OFFICE01."
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "The supplier / company name."
},
"contact": {
"description": "Contact person.",
"type": "string",
"maxLength": 200
},
"email": {
"type": "string",
"maxLength": 254
},
"telephone": {
"type": "string",
"maxLength": 50
},
"mobile": {
"type": "string",
"maxLength": 50
},
"address1": {
"type": "string",
"maxLength": 200
},
"address2": {
"type": "string",
"maxLength": 200
},
"address3": {
"type": "string",
"maxLength": 200
},
"address4": {
"type": "string",
"maxLength": 200
},
"postcode": {
"type": "string",
"maxLength": 20
},
"website": {
"type": "string",
"maxLength": 200
},
"vat_number": {
"type": "string",
"maxLength": 50
},
"eu_supplier": {
"description": "True for a supplier in another EU country (EC supplier). Default false (UK).",
"type": "boolean"
},
"payment_terms_days": {
"description": "Payment terms in days.",
"type": "integer",
"minimum": 0,
"maximum": 3650
},
"notes": {
"type": "string",
"maxLength": 5000
}
},
"required": [
"code",
"name"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢kashflow_get_invoice(invoice_number)
One sales invoice by its invoice number: customer, dates, lines (description, quantity, rate, VAT), net, VAT, amount paid and a link. SOAP GetInvoice.
Eingabe-Schema
{
"type": "object",
"properties": {
"invoice_number": {
"type": "integer",
"minimum": 1,
"maximum": 2147483647,
"description": "The invoice number, e.g. 1042."
}
},
"required": [
"invoice_number"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢kashflow_list_invoices(start_date, end_date, limit, offset)
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.
Eingabe-Schema
{
"type": "object",
"properties": {
"start_date": {
"type": "string",
"description": "First invoice date, yyyy-mm-dd."
},
"end_date": {
"type": "string",
"description": "Last invoice date, yyyy-mm-dd."
},
"limit": {
"description": "How many records to return (default 100, max 500).",
"type": "integer",
"minimum": 1,
"maximum": 500
},
"offset": {
"description": "How many records to skip (default 0), to get the next page.",
"type": "integer",
"minimum": 0,
"maximum": 10000000
}
},
"required": [
"start_date",
"end_date"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢kashflow_list_customer_invoices(customer_id, limit, offset)
All sales invoices of one customer, by numeric CustomerID (see kashflow_get_customer for the id), paged here. SOAP GetInvoicesForCustomer.
Eingabe-Schema
{
"type": "object",
"properties": {
"customer_id": {
"type": "integer",
"minimum": 1,
"maximum": 2147483647,
"description": "The numeric CustomerID."
},
"limit": {
"description": "How many records to return (default 100, max 500).",
"type": "integer",
"minimum": 1,
"maximum": 500
},
"offset": {
"description": "How many records to skip (default 0), to get the next page.",
"type": "integer",
"minimum": 0,
"maximum": 10000000
}
},
"required": [
"customer_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢kashflow_list_unpaid_invoices(limit, offset)
All sales invoices not yet paid in full, paged here. SOAP GetInvoices_Unpaid.
Eingabe-Schema
{
"type": "object",
"properties": {
"limit": {
"description": "How many records to return (default 100, max 500).",
"type": "integer",
"minimum": 1,
"maximum": 500
},
"offset": {
"description": "How many records to skip (default 0), to get the next page.",
"type": "integer",
"minimum": 0,
"maximum": 10000000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢kashflow_list_overdue_invoices(limit, offset)
All sales invoices past their due date and not paid in full, paged here. SOAP GetInvoices_Overdue.
Eingabe-Schema
{
"type": "object",
"properties": {
"limit": {
"description": "How many records to return (default 100, max 500).",
"type": "integer",
"minimum": 1,
"maximum": 500
},
"offset": {
"description": "How many records to skip (default 0), to get the next page.",
"type": "integer",
"minimum": 0,
"maximum": 10000000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢kashflow_list_recent_invoices(count)
The most recently created sales invoices. SOAP GetInvoices_Recent.
Eingabe-Schema
{
"type": "object",
"properties": {
"count": {
"description": "How many invoices (default 20, max 500).",
"type": "integer",
"minimum": 1,
"maximum": 500
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢kashflow_list_invoice_payments(invoice_number)
The payments recorded against one sales invoice (date, amount, method, bank account, note), by invoice number. SOAP GetInvoicePayment.
Eingabe-Schema
{
"type": "object",
"properties": {
"invoice_number": {
"type": "integer",
"minimum": 1,
"maximum": 2147483647,
"description": "The invoice number."
}
},
"required": [
"invoice_number"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢kashflow_list_payments_by_date(start_date, end_date, page_number)
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.
Eingabe-Schema
{
"type": "object",
"properties": {
"start_date": {
"type": "string",
"description": "First payment date, yyyy-mm-dd."
},
"end_date": {
"type": "string",
"description": "Last payment date, yyyy-mm-dd."
},
"page_number": {
"description": "Page number, starting at 1 (default 1).",
"type": "integer",
"minimum": 1,
"maximum": 100000
}
},
"required": [
"start_date",
"end_date"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢kashflow_get_invoice_notes(invoice_id)
The notes attached to one sales invoice, by its InvoiceDBID (the numeric id in invoice replies, not the invoice number). SOAP GetInvoiceNotes.
Eingabe-Schema
{
"type": "object",
"properties": {
"invoice_id": {
"type": "integer",
"minimum": 1,
"maximum": 2147483647,
"description": "The invoice's InvoiceDBID."
}
},
"required": [
"invoice_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡kashflow_add_invoice_note(invoice_id, note, note_date)
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.
Eingabe-Schema
{
"type": "object",
"properties": {
"invoice_id": {
"type": "integer",
"minimum": 1,
"maximum": 2147483647,
"description": "The invoice's InvoiceDBID."
},
"note": {
"type": "string",
"minLength": 1,
"maxLength": 5000,
"description": "The note text."
},
"note_date": {
"description": "Note date, yyyy-mm-dd or yyyy-mm-ddThh:mm:ss (default: now, UTC).",
"type": "string"
}
},
"required": [
"invoice_id",
"note"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢kashflow_list_quotes(limit, offset)
All sales quotes (same shape as invoices), paged here. SOAP GetQuotes.
Eingabe-Schema
{
"type": "object",
"properties": {
"limit": {
"description": "How many records to return (default 100, max 500).",
"type": "integer",
"minimum": 1,
"maximum": 500
},
"offset": {
"description": "How many records to skip (default 0), to get the next page.",
"type": "integer",
"minimum": 0,
"maximum": 10000000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢kashflow_get_receipt(receipt_number)
One purchase (supplier invoice / receipt) by its receipt number: supplier, dates, lines, net, VAT, amount paid. SOAP GetReceipt.
Eingabe-Schema
{
"type": "object",
"properties": {
"receipt_number": {
"type": "integer",
"minimum": 1,
"maximum": 2147483647,
"description": "The purchase (receipt) number."
}
},
"required": [
"receipt_number"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢kashflow_list_recent_receipts(count)
The most recently created purchases (supplier invoices / receipts). SOAP GetReceipts_Recent.
Eingabe-Schema
{
"type": "object",
"properties": {
"count": {
"description": "How many purchases (default 20, max 500).",
"type": "integer",
"minimum": 1,
"maximum": 500
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢kashflow_list_supplier_receipts(supplier_id, limit, offset)
All purchases (supplier invoices / receipts) of one supplier, by numeric SupplierID (see kashflow_get_supplier), paged here. SOAP GetReceiptsForSupplier.
Eingabe-Schema
{
"type": "object",
"properties": {
"supplier_id": {
"type": "integer",
"minimum": 1,
"maximum": 2147483647,
"description": "The numeric SupplierID."
},
"limit": {
"description": "How many records to return (default 100, max 500).",
"type": "integer",
"minimum": 1,
"maximum": 500
},
"offset": {
"description": "How many records to skip (default 0), to get the next page.",
"type": "integer",
"minimum": 0,
"maximum": 10000000
}
},
"required": [
"supplier_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢kashflow_list_products(limit, offset)
The product catalogue (name, code, description, price, stock level), paged here. SOAP GetProducts.
Eingabe-Schema
{
"type": "object",
"properties": {
"limit": {
"description": "How many records to return (default 100, max 500).",
"type": "integer",
"minimum": 1,
"maximum": 500
},
"offset": {
"description": "How many records to skip (default 0), to get the next page.",
"type": "integer",
"minimum": 0,
"maximum": 10000000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢kashflow_list_bank_accounts
The bank accounts (AccountID, name, nominal code). SOAP GetBankAccounts.
Eingabe-Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢kashflow_list_bank_transactions(account_id, limit, offset)
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.
Eingabe-Schema
{
"type": "object",
"properties": {
"account_id": {
"type": "integer",
"minimum": 1,
"maximum": 2147483647,
"description": "The bank account's AccountID."
},
"limit": {
"description": "How many records to return (default 100, max 500).",
"type": "integer",
"minimum": 1,
"maximum": 500
},
"offset": {
"description": "How many records to skip (default 0), to get the next page.",
"type": "integer",
"minimum": 0,
"maximum": 10000000
}
},
"required": [
"account_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢kashflow_get_bank_balance(account_id, date)
The balance of one bank account on a date (default today). SOAP GetBankBalance.
Eingabe-Schema
{
"type": "object",
"properties": {
"account_id": {
"type": "integer",
"minimum": 1,
"maximum": 2147483647,
"description": "The bank account's AccountID."
},
"date": {
"description": "Balance date, yyyy-mm-dd (default today, UTC).",
"type": "string"
}
},
"required": [
"account_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢kashflow_list_nominal_codes(limit, offset)
The chart of accounts: nominal codes with their names. SOAP GetNominalCodes.
Eingabe-Schema
{
"type": "object",
"properties": {
"limit": {
"description": "How many records to return (default 100, max 500).",
"type": "integer",
"minimum": 1,
"maximum": 500
},
"offset": {
"description": "How many records to skip (default 0), to get the next page.",
"type": "integer",
"minimum": 0,
"maximum": 10000000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢kashflow_list_vat_rates
The VAT rates set up in the account. SOAP GetVATRates.
Eingabe-Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢kashflow_list_projects
The projects defined in the account (id, name). SOAP GetProjects.
Eingabe-Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢kashflow_get_profit_and_loss(start_date, end_date)
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.
Eingabe-Schema
{
"type": "object",
"properties": {
"start_date": {
"type": "string",
"description": "Start of the period, yyyy-mm-dd."
},
"end_date": {
"type": "string",
"description": "End of the period, yyyy-mm-dd."
}
},
"required": [
"start_date",
"end_date"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢kashflow_get_balance_sheet(date)
The balance sheet at a date (default today): fixed assets, current assets, current liabilities, capital and reserves with the lines of each. SOAP GetBalanceSheet.
Eingabe-Schema
{
"type": "object",
"properties": {
"date": {
"description": "Balance sheet date, yyyy-mm-dd (default today, UTC).",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢kashflow_get_trial_balance(start_date, end_date, limit, offset)
The trial balance for a date range: every nominal code with debit, credit and balance. SOAP GetTrialBalance.
Eingabe-Schema
{
"type": "object",
"properties": {
"start_date": {
"type": "string",
"description": "Start of the period, yyyy-mm-dd."
},
"end_date": {
"type": "string",
"description": "End of the period, yyyy-mm-dd."
},
"limit": {
"description": "How many records to return (default 100, max 500).",
"type": "integer",
"minimum": 1,
"maximum": 500
},
"offset": {
"description": "How many records to skip (default 0), to get the next page.",
"type": "integer",
"minimum": 0,
"maximum": 10000000
}
},
"required": [
"start_date",
"end_date"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢kashflow_get_aged_debtors(date, limit, offset)
Who owes you money at a date (default today), aged into current, three periods and older, per customer. SOAP GetAgedDebtors.
Eingabe-Schema
{
"type": "object",
"properties": {
"date": {
"description": "Report date, yyyy-mm-dd (default today, UTC).",
"type": "string"
},
"limit": {
"description": "How many records to return (default 100, max 500).",
"type": "integer",
"minimum": 1,
"maximum": 500
},
"offset": {
"description": "How many records to skip (default 0), to get the next page.",
"type": "integer",
"minimum": 0,
"maximum": 10000000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢kashflow_get_aged_creditors(date, limit, offset)
Who you owe money to at a date (default today), aged into current, three periods and older, per supplier. SOAP GetAgedCreditors.
Eingabe-Schema
{
"type": "object",
"properties": {
"date": {
"description": "Report date, yyyy-mm-dd (default today, UTC).",
"type": "string"
},
"limit": {
"description": "How many records to return (default 100, max 500).",
"type": "integer",
"minimum": 1,
"maximum": 500
},
"offset": {
"description": "How many records to skip (default 0), to get the next page.",
"type": "integer",
"minimum": 0,
"maximum": 10000000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢kashflow_get_vat_report(start_date, end_date)
The VAT return figures (boxes 1 to 9) for a period, and whether it was submitted to HMRC. SOAP GetVATReport.
Eingabe-Schema
{
"type": "object",
"properties": {
"start_date": {
"type": "string",
"description": "Start of the VAT period, yyyy-mm-dd."
},
"end_date": {
"type": "string",
"description": "End of the VAT period, yyyy-mm-dd."
}
},
"required": [
"start_date",
"end_date"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢kashflow_get_kpis(start_date, end_date, exclude_vat, exclude_same_day_payments)
Key figures for a date range (income, expenses, profit and similar, as name/value pairs). SOAP GetKPIs.
Eingabe-Schema
{
"type": "object",
"properties": {
"start_date": {
"type": "string",
"description": "Start of the period, yyyy-mm-dd."
},
"end_date": {
"type": "string",
"description": "End of the period, yyyy-mm-dd."
},
"exclude_vat": {
"description": "Leave VAT out of the figures (default false).",
"type": "boolean"
},
"exclude_same_day_payments": {
"description": "Leave out invoices paid the day they were issued (default false).",
"type": "boolean"
}
},
"required": [
"start_date",
"end_date"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Community
Nachweis