Skip to main content
Glama
Beancount MCP
by bex-co

Pick your way in

Related MCP server: Beanquery MCP Server

Try it in 30 seconds

No install. No empty-ledger setup. Just record your first real transaction:

  1. Sign up at beancount.io/sign-up — already have an account? Log in.

  2. Open your ledger (create one if prompted — it takes seconds).

  3. Record a transaction — on the web open your ledger's Journal and add an entry; on mobile tap Add Transaction. Try a coffee run: Expenses:Dining 12.50 paid from Assets:Checking.

  4. See it land — check the journal, then watch the income statement and balance sheet update.

That's the whole idea: double-entry books you can read as plain text, with reports, phone, terminal, and agents on top of the same ledger.

You don't install Beancount yourself — one command installs bea, which provisions its engine for you.

brew install bex-co/tap/bea      # macOS / Linuxbrew
# or: uv tool install beancount-io   # anywhere with uv + Python 3.12+
bea --no-input init books --currency USD --date 2026-08-01 \
  --opening-balance "Assets:Checking 1000"
cd books
bea add transaction "Coffee" --date 2026-08-02 \
  --posting "Expenses:Dining 12.50" --posting "Assets:Checking"
bea check && bea report balance-sheet

Checking now holds 987.50 USD — validated, formatted, and readable as plain text.

Then: record two or three real transactions · open the live demo and click through the balance sheet and account trees · automate with the CLI tutorial or point your coding agent at the skills.

Who this is for

Every surface, one ledger

You want to…

Use

Start

Work from the terminal or scripts

bea CLI and Python library

CLI tutorial · reference

See polished reports in a browser

Web dashboard

Live demo · dashboard/

Track money on the go

iOS & Android apps

Mobile apps · mobile/

Let an agent do your books

Agent skills and MCP

Agents and MCP

Self-host the whole stack

Backend cluster

Self-host

Your ledger stays the same plain-text file across all of them — hosted or local-first, with no hosted service required for CLI and skills workflows.

Mobile apps

Review your finances, add transactions, scan receipts, and edit ledger files from the native Beancount client. The same open ledger stays available from the web, terminal, Python, and agent workflows.

Agents and MCP

Beancount.io is built for the agent era: your ledger is text an agent can read, and every write is validated and reversible.

  • Coding-agent skills (local ledger) — sixteen beancount-* workflows for Claude Code and Codex: scaffold a ledger, record everyday entries, payroll runs, investment trades and property events, import bank and payment-processor exports without duplicates, reconcile against statements, migrate from Mint/Monarch/QuickBooks, query finances in plain language (including profit by client or project), explain balance-sheet movements, prepare supported accrual drafts, track invoices and bills with the payments against them, and run a confirm-gated month-end close. Install the skills (native Windows: Windows PowerShell 5.1) → ask your first question → first-month guide → migration guide. Unified suite distribution and OpenClaw/Hermes installation record the current publication and host compatibility limits.

  • MCP server — point any MCP client at a deployment to query and edit a ledger from an agent. Also listed on the official MCP Registry as io.beancount/beancount (OAuth sign-in).

{
  "mcpServers": {
    "beancount": {
      "type": "http",
      "url": "https://your-deployment/api-gateway/mcp",
      "headers": { "Authorization": "Bearer [REDACTED]" }
    }
  }
}

Tools cover BQL queries, file reads and edits, entry and receipt insertion, statement parsing, bank import, and more. URI-addressed resources and accounting prompts support spending reports, month-end close, reconciliation and import categorization — e.g. /mcp__beancount__close-month in Claude Code. Use tools/list, resources/templates/list, and prompts/list against your deployment for its current catalog. File edits, directive appends, and bank imports preview with dry_run, every call re-authorizes, and failures return a machine code plus the next call to make. Per-host notes for Claude, Claude Code, ChatGPT, Cursor, Copilot, OpenClaw, and Hermes Agent: MCP docs; contract: ADR 0007.

How it compares

Beancount.io

Plain Beancount + Fava

Spreadsheet / SaaS finance app

Your data

Plain-text .bean files you own

Plain-text .bean files you own

Locked in a database / their cloud

Reports

Web, mobile, CLI, and Python reports

Web reports (Fava)

Built-in, but not programmable

On your phone

Native iOS & Android apps

Browser only

Native app, tied to the service

AI agents

CLI, skills, and MCP built in

Do it yourself

No agent access

Self-host

Yes — hosted, local-only, or your server

Yes, manual

No

Cost / license

Free, MIT

Free, open source

Subscription

Beancount.io stands on Beancount and Fava rather than replacing them — existing ledgers keep working. Full credits: ACKNOWLEDGEMENTS.md.

Self-host

Hosted, local-only, or your own infrastructure — same ledger either way.

FAQ

Yes. Your ledger is a plain-text file. Local CLI and skills workflows never require the hosted service; if you self-host, everything runs on your server. You choose where the file lives.

Beancount.io builds on both (Fava ships inside the CLI). It adds native mobile apps, a one-install CLI, hosted or self-hosted collaboration, and first-class agent workflows — while your .bean files remain standard Beancount that Fava and other tools can still read.

Yes — the migration guide converts an export and keeps importing without duplicating transfers.

No. Use the hosted service at beancount.io, run everything locally with the CLI, or self-host on one server with deploy/docker/. Same ledger either way.

Run from source

There is no root package to install; each package owns its dependencies and checks.

Web dashboard (Node.js 22, Yarn 4 via Corepack, plus a Beancount.io API endpoint):

cd dashboard && corepack enable && yarn install --immutable
cp .env.example .env && yarn dev   # http://localhost:5173

See the dashboard setup guide. Containers instead? deploy/docker-mac/ runs the full stack locally on macOS; deploy/docker/ is the persistent single-server install.

Mobile app (Node.js 20.19.4+, Yarn Classic):

cd mobile && yarn install && yarn start

See the mobile development guide.

CLI from this checkout:

cd cli && uv sync --all-groups && uv run bea --help

bea upgrade updates through whichever package manager installed it. Full command tree, automation contract, and exit codes: CLI reference and generated command reference.

Package

Check

Dashboard

cd dashboard && yarn format:check && yarn lint && yarn test && yarn build

Mobile

cd mobile && yarn format:check && yarn lint && yarn typecheck && yarn test:unit

CLI

cd cli && make check-all

Skills

python3 scripts/skills/ci-check.py

Every active package has path-filtered CI, and a repository-wide secret scan gates every push and pull request. Run scripts/lint-deadcode.sh from the repository root to check for unused files and symbols (scripts/fix-deadcode.sh applies removals; review the diff and rerun full checks).

Package

What it is

dashboard/

Active web client: ledgers, journal, reports, Monaco editor, imports, collaboration, AI assistant (React 19 + TanStack Start + Apollo)

mobile/

Active iOS & Android client (Expo + React Native + Apollo)

cli/

Active bea CLI (including a local read-only MCP server, bea mcp) and Python tooling (releases)

skills/

One Beancount.io ledger suite with sixteen beancount-* workflows; install the versioned beancount-io plugin or the complete source collection.

backend-cluster/

Active backend: GraphQL/REST gateway, ledger service, IDL, and agent sandbox

The dashboard and mobile app are clients for the Beancount.io API served by backend-cluster/ — hosted, or self-run. Skills have two audiences: Beancount users get skills/; repository contributors get .agents/skills/ (see .agents/AGENTS.md). The root .claude/skills links to .agents/skills so Claude Code and Codex share the internal workflows.

Contributing

Contributions are welcome across product UI, accounting workflows, accessibility, translations, tests, Python tooling, and agent skills. Start with the contributing guide, browse open issues and the public adoption roadmap, and keep changes focused on one package when possible.

Read our code of conduct before participating. Report vulnerabilities privately through the security policy.

If Beancount.io is the kind of open, programmable finance software you want to see more of, star the repository and help more developers find it.

Community

Acknowledgements

Beancount.io stands on Beancount and Fava — the vendored fava package inside cli/src/fava ships as bundled subprocess resources in the single beancount-io distribution, and the rest of the plain-text accounting stack (beanquery, beangulp, rustledger) is used as unmodified upstream dependencies. Full credits and license compliance: ACKNOWLEDGEMENTS.md.

License

MIT © Beancount.io applies by default. The customer skill suite under skills/ uses MIT No Attribution (MIT-0), including its instructions, references, and fixtures. Upstream projects remain under their own licenses.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      MCP Server to query from your Beancount ledger, or submit transaction.
      11
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      An experimental server implementing the Model Context Protocol to allow AI assistants to query and analyze financial data stored in Beancount ledger files using the Beancount Query Language.
      52
      MIT
    • A
      license
      B
      quality
      A
      maintenance
      open-source personal finance app with a first-party MCP server. 91 HTTP tools (OAuth 2.1 + DCR) and 87 stdio tools cover transactions, budgets, accounts, portfolio analytics, FX conversion, loans, subscriptions, goals, importers, and rules. Users self-host with Docker + PostgreSQL or use the managed cloud
      89
      30
      AGPL 3.0
    • F
      license
      Not graded
      quality
      C
      maintenance
      A read-only MCP server that gives AI agents structured access to a Beancount personal finance ledger.
      1
      -