cashbook-mcp
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
cashbook-mcp
An MCP server, read-only toward your banks, that syncs your bank accounts, cards, investments and loans from Pluggy (through the free MeuPluggy connector, Brazilian Open Finance) into a local encrypted DuckDB file, and lets an MCP client such as Claude query them. It runs as a claude.ai custom connector, so it works on the web, on mobile and in scheduled routines without your PC switched on.
Unofficial. Not affiliated with or endorsed by Pluggy.
What it does
Pulls accounts, transactions, card bills, investments and loans per connected bank, daily at
REFRESH_ATand whenever Pluggy reports fresh data.Keeps the history it has seen in one DuckDB file encrypted with a key that never sits next to the data. Pluggy only provides a limited window; yours keeps growing.
Classifies transactions (spending, income, internal transfers, card bill payments) so totals are not double counted, with personal, business and consolidated scopes for owners who run a company.
Tracks net worth from daily balance snapshots, forecasts cash for the next 30 to 90 days and reports changes in recurring charges.
Lets the assistant fix a classification after asking you: journaled, capped and reversible.
Offers an owner page at
/adminto connect banks with MeuPluggy, set each connection's role and each account's purpose, reload and disconnect.One owner per instance: only Google logins in
ALLOWED_EMAILSget a token or an admin session.
Related MCP server: goetta-finance
Tools
Every response carries data_as_of per connection and any connection problem.
Tool | Purpose |
| Start here: balances, cards, upcoming bills, month to date, business block, net worth, forecast, connection problems |
| Connected banks and their accounts |
| Filtered, paginated transaction search; full rows by id |
| Card bills |
| Investments and their movements |
| Loans and installments |
| Categories present in the data |
| Aggregations by scope ( |
| What changed since a cursor (new, updated, removed), for routines that resume where they stopped |
| Net worth over time; projected cash balance for the next 30 to 90 days |
| Recurring-charge candidates; price increases, new, stopped and duplicate charges |
| Queue of transactions the server is unsure about, with hints |
| The one local write path: change a transaction's kind and/or category, undo a batch, list batches |
| The schema, and |
All tools are read-only except reclassify_transactions and undo_reclassification, which change local labels only.
Prompts: monthly_review, subscriptions_audit, upcoming_bills, review_classifications, weekly_review.
Security model, in short
The server never changes anything at Pluggy. Its only non-GET calls are
POST /authandPOST /connect_token.Locally there is one write path: the assistant can set the kind and/or category of specific transactions. Every change is journaled, reversible and capped per day.
Only a verified Google login listed in
ALLOWED_EMAILScan use the connector or/admin.query_sqlallows oneSELECT/WITHstatement, parsed by DuckDB, on a locked-down reader connection: no files, network, extensions,ATTACHor writes. 10 s timeout, 1,000 rows.Transaction text is written by third parties (anyone can send you a PIX with a message). It is cleaned, capped and wrapped in untrusted markers when suspicious, and the tool descriptions say it is data, not instructions.
The database file is encrypted; the key lives in
secrets/db.key, outside the data volume.It does not defend against a shell on the host. See SECURITY.md and docs/architecture.md.
Quick start
You need Docker, an HTTPS address for the server, a free Pluggy account and a Google OAuth Web client. The full walk-through is in the tutorial. In short:
mkdir -p data secrets && cp .env.example .env # edit PUBLIC_URL and ALLOWED_EMAILS
# put pluggy.json and google-oauth.json in secrets/, then:
sudo chown -R 10001:10001 data secrets
docker run --rm -v "$PWD/data:/data" -v "$PWD/secrets:/secrets" \
ghcr.io/trainedloop/cashbook-mcp:0.2 cashbook-admin init
docker compose up -dBefore the first release the image is not published yet. Build it from this checkout with
docker build -t cashbook-mcp:dev ., usecashbook-mcp:devin place ofghcr.io/trainedloop/cashbook-mcp:0.2above, and pointimage:indocker-compose.ymlat it.
Upgrading from 0.1 recreates the store; see "Upgrading from 0.1" in the tutorial.
examples/tailscale-sidecar/ shows a deployment with a Tailscale sidecar: its own hostname on port 443, no port published on the host, and a firewall unit that isolates the container. ROADMAP.md lists planned work.
Development
uv sync
uv run pytest -q && uv run ruff check .
npm --prefix web ci && npm --prefix web test -- --run # admin SPA
npm --prefix web run build # writes src/cashbook_mcp/admin_web/staticMIT licensed. See LICENSE.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
This server cannot be deployed
Maintenance
Related MCP Connectors
Brazilian Open Finance MCP — 30+ banks (Itaú, Nubank, etc.) to Claude/Cursor. Read-only.
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
Read-only finance MCP server. Connects your banks, cards, payment apps, books and payroll into one ledger for your AI. Can't move money. Open source (AGPL-3.0), free during beta.
Hosted PostgreSQL MCP server for Claude, ChatGPT and Cursor, with each action switched per account.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP server for the Pluggy Open Finance Brazil API, enabling connection to bank accounts and management of financial data including transactions, accounts, investments, and payment intents through natural language.12 npmMIT
- AlicenseNot gradedqualityBmaintenanceA local-first MCP server that connects SimpleFIN bank accounts to Claude, storing data in a local DuckDB file and providing a web dashboard.2MIT
- FlicenseNot gradedqualityDmaintenanceRead-only MCP server for connecting to Pluggy Open Finance Brasil, exposing accounts, balances, transactions, and investments to Claude agents.-
- AlicenseNot gradedqualityDmaintenanceMCP server for personal finance via Open Finance, consolidating accounts and cards and answering spending questions with aggregated numbers. Provides tools for category spending, recurring subscriptions, budgets, card bills, and installment forecasts, with data stored locally in an encrypted SQLite database.2ISC