GnuCash MCP server
io.github.tillawy/gnucash-mcp·v0.1.1Read a GnuCash book and import bank statements into it.
0 stars653 downloads/wk
Reviews
Write oneNobody has reviewed GnuCash yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
GnuCash tools (10, 3 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
add_transactionAdd a balanced two-split transaction unless it already exists.
copy_transactionAdd a copy of an existing transaction, keeping all its splits.
create_accountwrite actionCreate an account, e.g. 'Expenses:Dining' of type 'EXPENSE'.
delete_transactionwrite actionPermanently delete a transaction and its splits.
find_transactionsFind transactions across all accounts by a word, newest first.
get_accountGet one account by full name (e.g. 'Assets:Current Assets:Savings Account').
import_transactionsImport many statement rows at once; duplicates are reported, not added.
list_accountsList every account in the GnuCash book with its type and balance.
list_transactionsList transactions of an account, newest first, within optional date bounds.
update_transactionwrite actionChange an existing transaction; fields left out stay as they are.
Public scan report
scanner v0.1.10 · 2026-10-13 · same rubric, same numbers if you re-run it
- Code scan6 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitylocal package, no credentials required12/15
- Maintenancelast push 3 days ago15/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
How GnuCash compares
Against every graded Finance MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 92/100
- higher than 95% of 1,761 Finance servers
- Tools
- 10
- the typical Finance server has 8
- Tools that change things
- 30%
- typical: 0%. Fewer write tools means less an agent can break
- Downloads a week
- 653
- more than 94% of 421 Finance servers with a package
What its tools let an agent do: 5 read · 3 create · 1 change · 1 delete
Install GnuCash in Claude Code, Cursor or VS Code
claude mcp add gnucash-mcp -- uvx gnucash-mcp
What the publisher says
From the GnuCash repository's README, as published. We do not edit it. Read it on GitHub
gnucash-mcp
<!-- mcp-name: io.github.tillawy/gnucash-mcp -->
An MCP server that lets Claude read your GnuCash book and import bank statements into it. Upload a statement CSV from any bank, and Claude works out its layout, proposes a category for each row, and shows a preview. It flags duplicates before writing anything.
It has two parts:
idempotent writes.
- gnucash_storage: a piecash wrapper, configured per book, with read helpers and
- gnucash_mcp: the MCP server that exposes the tools and prompts over stdio.
Requirements: a SQLite book
GnuCash saves books as XML by default, usually gzip-compressed. piecash, which this project is built on, can't read XML. It only reads GnuCash's SQL formats, and this server opens SQLite files. To convert your book:
- Open it in GnuCash.
- Choose File > Save As.
- Set Data Format to sqlite3, pick a file name, and save.
- Point book_path in your book TOML at the new file.
Keep using the SQLite file in GnuCash from then on. The XML file won't see the imported transactions. If book_path points at an XML book, every tool fails with a message explaining this conversion.
You also need uv and Python 3.13 or newer. uv installs Python for you if needed.
Configure a book
Create a TOML file for your book, for example ~/gnucash/personal.toml:
book_path = "personal.gnucash" # relative to this TOML file, or an absolute path
bank_account = "Assets:Current Assets:Checking Account" # default bank side for imports
open_if_lock = false # open for writing even while GnuCash has the file open
do_backup = true # piecash writes a timestamped backup before writing
# Optional: "posting" (booking date) or "transaction" (when the purchase happened).
date_source = "posting"
# Optional hints about your bank's statement format, added to the import prompts.
statement_notes = '''
Details holds the merchant and a card reference "REF <12 digits>" (use it as
external_id). The card date inside Details is YY/MM/DD.
'''Only book_path is required.
statement_notes is the place for your bank's quirks: where a reference ID hides, which of two date columns to use, or what an odd column means. Claude reads the notes during the column-mapping step, but still shows you the mapping to confirm. That way the server stays bank-agnostic, and each user's bank knowledge lives in their own config.
datesource picks which date becomes the transaction date when a statement has two: the bank's posting (booking) date, or the transaction date when you actually paid. Card purchases often post a day or two later, and the card date is often only inside the description. If datesource is unset, Claude asks during import whenever a statement has both. Setting it is recommended. For rows without a reference ID, the date is part of duplicate detection, so switching between the two dates across imports could let the same row in twice.
Install
The server runs with uvx, so there's nothing to install globally. Point GNUCASHMCPCONFIG at your book TOML, using an absolute path.
Claude Code:
claude mcp add gnucash -e GNUCASH_MCP_CONFIG=/absolute/path/to/personal.toml -- uvx gnucash-mcpClaude Desktop: add this to claudedesktopconfig.json (on macOS it's in ~/Library/Application Support/Claude/) and restart Claude Desktop:
{
"mcpServers": {
"gnucash": {
"command": "uvx",
"args": ["gnucash-mcp"],
"env": {"GNUCASH_MCP_CONFIG": "/absolute/path/to/personal.toml"}
}
}
}If Claude Desktop can't find uvx, replace "uvx" with its full path (which uvx).
Tools and prompts
Tools:
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
GnuCash: common questions
- Is GnuCash MCP server safe?
- Yes, by our scan: it is graded A (92/100). Read the GnuCash safety report
- How do I install GnuCash?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does GnuCash need an API key?
- No secret keys are declared. It reads 1 setting from the environment.
- Is GnuCash maintained?
- The last commit was 24 days ago (2026-10-11). The latest release is v0.1.1.
- What can I use instead of GnuCash?
- Servers from other publishers that do the same job: Beancount.io MCP server, E Arveldaja MCP server and Inter Bank MCP server. Compare all GnuCash alternatives.
- How does GnuCash compare with other Finance MCP servers?
- safety score 92/100 (higher than 95% of 1,761 Finance servers); tools 10 (the typical Finance server has 8); tools that change things 30% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.
Alternatives to GnuCash
Same job from other publishers: the closest match first, then the best rated.
Beancount.ioQuery, edit, and reconcile a hosted Beancount ledger: BQL, reports, files, and bank imports.not reviewedEstablishedA- E ArveldajaEstonian e-arveldaja (RIK e-Financials) accounting — invoices, bank import, reports.not reviewedEstablishedB
- not reviewedEstablishedB
- Finance Toolkit200+ transparent financial metrics calculated from raw statements, not third-party endpoints.not reviewedEstablishedA
BankMCP™Read-only MCP server for your own bank accounts via Enable Banking. Self-hosted, one user.not reviewedEstablishedA