acumulus-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@acumulus-mcp create an invoice for Acme BV for €500 in consulting"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
acumulus-mcp
MCP server for Acumulus — let an AI assistant (Claude Desktop, Claude Code, Cursor, …) read and modify your Acumulus administration through natural language, over the official Acumulus API.
Runs locally over stdio. Your Acumulus credentials stay on your machine; there is no telemetry and no proxy.
Install
pip install acumulus-mcpRequires Python 3.10+.
Related MCP server: Exact Online MCP Server
Configure credentials
The server authenticates with your Acumulus contract code, username
and an API token (generate one in Acumulus under your profile; it travels
in the API's <password> field). Provide them as environment variables:
export ACUMULUS_CONTRACT_CODE=123456
export ACUMULUS_USERNAME=your-username
export ACUMULUS_API_TOKEN=your-api-token
# optional: validate writes without persisting them
export ACUMULUS_TESTMODE=1Register in your MCP client
Claude Code:
claude mcp add acumulus \
-e ACUMULUS_CONTRACT_CODE=123456 \
-e ACUMULUS_USERNAME=your-username \
-e ACUMULUS_API_TOKEN=your-api-token \
-- acumulus-mcpClaude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"acumulus": {
"command": "acumulus-mcp",
"env": {
"ACUMULUS_CONTRACT_CODE": "123456",
"ACUMULUS_USERNAME": "your-username",
"ACUMULUS_API_TOKEN": "your-api-token"
}
}
}
}Restart your client, then try: "Use the acumulus whoami tool to test the connection."
Tools
Tool | What it does |
| Sanity-check the connection (lists the account picklist). |
| Fetch reference data: |
| Add an invoice ( |
| Escape hatch — call any Acumulus endpoint directly (e.g. |
The acumulus_request tool means every Acumulus function is reachable even
before it gets a dedicated wrapper — the credential/envelope is added for you;
you only pass the endpoint path and the function-specific fields.
Safety
Set ACUMULUS_TESTMODE=1 to have Acumulus validate write calls without
persisting them — do a dry run before pointing it at the live administration.
License
AGPL-3.0-or-later. For a commercial license, contact nick@easeo.nl.
Available Tools
4 toolsacumulus_requestA
Call any Acumulus function endpoint directly.
Use this for endpoints not covered by the dedicated tools below.
Args: api_path: Path below the stable base, matching the Acumulus docs, e.g. "picklists/picklist_vattypes.php", "invoices/invoice_add.php", "invoices/invoice_set_payment_status.php", "entry/entry_info.php". fields: Extra fields merged into the request envelope. Nested dicts become nested elements; a list value repeats its element (e.g. {"customer": {"invoice": {"line": [{...}, {...}]}}}). Do NOT include the contract/credentials block — that is added for you.
Returns: JSON-encoded response from Acumulus.
Inputs: api_path (required), fields. Returns: result
create_invoiceA
Add an invoice to Acumulus (invoices/invoice_add.php).
Args: customer: Customer-block fields. Common ones: type, contactid, companyname1, fullname, address1, postalcode, city, countrycode, vatnumber, email, overwriteifexists. lines: One dict per invoice line. Common fields: product, itemnumber, unitprice (excl. VAT, 4 decimals), vatrate (defaults to 21), quantity (defaults to 1), nature. invoice: Optional invoice-block fields: concept, number, vattype, issuedate, costcenter, accountnumber, paymentstatus, paymentdate, description, template, invoicenotes.
Set ACUMULUS_TESTMODE=1 to validate without persisting.
Inputs: lines (required), customer (required), invoice. Returns: result
list_picklistA
List an Acumulus picklist (reference data for dropdowns/validation).
Args: picklist: The picklist name. Common values: "accounts" (bank/ledger accounts), "contacts", "products", "vattypes", "costcenters", "costheadings", "companytypes". The endpoint called is picklists/picklist_.php.
Returns the parsed response plus the extracted item list under items.
Inputs: picklist (required). Returns: result
whoamiA
Sanity-check the Acumulus connection by listing the account picklist.
Inputs: no named parameters. Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 4 tools
whoami and list_picklist with picklist="accounts" perform essentially the same call, creating genuine redundancy. acumulus_request also overlaps with every dedicated tool by design, though its description explicitly steers usage toward uncovered endpoints, which mitigates the fuzziness.
create_invoice and list_picklist follow a clean verb_noun pattern, but whoami is a bare verb-less word and acumulus_request is a namespaced prefix_noun, so the set mixes three conventions. Still readable but not predictable.
Four tools is on the thin side, but for an API wrapper the generic acumulus_request plus two focused helpers and a connection check is defensible. whoami is arguably redundant given list_picklist, keeping it just shy of ideal.
acumulus_request makes any Acumulus endpoint reachable, so there are no true dead ends. However dedicated coverage is sparse — invoice creation exists but no dedicated get/update/delete invoice or payment-status tools, leaving common lifecycle operations to the generic escape hatch.
Maintenance
Related MCP Connectors
Persistent memory, hybrid search and a goal graph for AI agents, over stdio or remote HTTP.
AI accounting: ask about your live AccountsOS books in plain English. Read-only tools for transactions, cash balances, invoices, bills, VAT, filing deadlines and reports across 32 countries. OAuth sign-in; free 14-day trial at accounts-os.com.
Query your books, company data, business health, and ship invoices from your AI assistant.
Affiliate network reporting in your AI client. Bring your own keys. Most adapters experimental.
Related MCP Servers
- FlicenseBqualityBmaintenanceEnables an AI assistant to read and manage a local project-management database over stdio: listing and creating projects, tasks, expenses, chats and people, and pulling money, margin, deadline and overdue summaries. It runs on the same service layer and SQLite file as the bundled web UI, so figures shown to the assistant and to the human always agree.14-
- FlicenseNot gradedqualityCmaintenanceEnables connecting AI assistants to Exact Online through its official REST API with OAuth2 authentication and automatic token refresh. Provides curated tools for reading and, optionally, writing common accounting entities such as accounts, contacts, items, journal entries and sales/purchase invoices, plus generic GET/POST/PUT/DELETE tools for any other endpoint, over local stdio or hosted HTTP transports.1-
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to query product footprints, inspect transport activity data, and submit events from iLEAP-conformant endpoints through natural language, using MCP tools over Streamable-HTTP or stdio.1MIT

@klappay/mcpofficial
AlicenseNot gradedqualityBmaintenanceLets an AI assistant run locally over stdio to inspect and test the Klap Core API — looking up charges and timelines, listing webhooks and deliveries, checking accepted token/network pairs, querying metrics, and, in test mode, creating charges, re-checking them on-chain, retrying deliveries and driving sandbox payments. Live environments are read-only unless writes are explicitly opted into, and money-moving or endpoint-management operations are never exposed.41 npmMIT