
Bookie
io.github.yuens1002Published by GitHub account yuens1002v0.8.5Updated Oct 24, 2026
Double-entry bookkeeping MCP server — import bank CSVs, categorize, reconcile, tax reports.
Overview
Bookie is a double-entry bookkeeping MCP server that lets an assistant import bank CSVs, categorize spending, reconcile accounts, and produce tax reports.
- What you can do
- Bookie keeps a correct double-entry ledger behind the assistant, with integer-cent money math and deterministic categorization rules. Tools cover creating and archiving accounts, recording balanced transactions, splitting a payment across categories, importing bank or card CSVs with preview and dedup, managing auto-categorization rules, re-categorizing entries, reconciling statements, attaching receipts, and generating or exporting monthly and fiscal-year reports such as Schedule C and Schedule E. It also exposes account and annual report resources and canned prompts for month-end close, categorizing uncategorized entries, and tax summaries.
- When to use it
- Useful for freelancers, solopreneurs, and rental property owners who already work inside an MCP-capable assistant and want books that are actually correct rather than an improvised spreadsheet. It is not aimed at users who want a dashboard UI, multi-user access, or who are satisfied with QuickBooks.
- Requirements
- Node 24 or newer, a Neon Postgres database (neonctl and a free Neon account for setup), and an MCP-capable host such as Claude Desktop, Claude.ai, Cursor, or VS Code. Required secrets are BOOKIE_DB_URL, BOOKIE_DB_DIRECT_URL, and BOOKIE_API_KEY, printed by the setup script. Optional email and receipt storage need RESEND_API_KEY, RESEND_FROM, and AWS bucket credentials.
Installation
In SourceWeft
- Open Bookie in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
bookie
An MCP server that keeps books for freelancers and landlords — driven from Claude or GPT instead of QuickBooks.
Ask your LLM to import a bank statement, categorize spending, reconcile a month, or generate a Schedule C. Bookie provides the correct double-entry ledger underneath — so the model reasons over real numbers, not a spreadsheet it's improvising on the fly.
This is for you if: you're a solopreneur, freelancer, or rental property owner already living in Claude or GPT, you're comfortable with a 5-minute setup, and you want books that are actually correct.
Not for you if: you want a dashboard UI, you need multi-user access, or you're satisfied with QuickBooks / a spreadsheet.
What you need before starting
- Node ≥ 24
- neonctl —
npm install -g neonctl(free Neon account; needed for the DB) - An MCP-capable host: Claude Desktop, Claude.ai, Cursor, VS Code, or any host supporting the MCP stdio or HTTP transport
Quick start (local, stdio)
Recommended — from source, fully automated:
npm run setup opens a browser to log into Neon; new to Neon? Use the "Sign up for an account" link and pick GitHub/Google/Microsoft rather than email+password — it completes in the same browser round-trip, no email-verification detour that could interrupt the CLI mid-wait.
npm run setup prints a ready-to-paste Claude Desktop config block at the end:
Adding another machine to the same ledger — no clone needed: stdio is a local process — every machine running a stdio MCP client spawns its own copy of the server, so each one otherwise needs its own checkout. Once the Neon DB is provisioned (via npm run setup above, on any one machine), every other machine just needs the same connection strings — no git clone, no npm install, no npm run build to keep in sync. Point that machine's MCP host at the published package instead:
npx fetches and runs the published version on demand — every machine pointed at the same BOOKIE_DB_URL shares one ledger, without any of them (besides the original) needing a checkout.
Bootstrapping a DB without cloning at all: if you don't have connection strings yet from any machine (e.g. you created the Neon project manually instead of via npm run setup), push bookie's bundled schema directly:
Then use the same npx -y bookie-mcp config above.
Quick start (remote, HTTP — for Claude.ai mobile)
Deploy to Railway with one click:
Railway pulls the pre-built image from GHCR — no source build needed. Set the required env vars when prompted. See docs/DEPLOYING.md for the full walkthrough (env var reference, Neon + Resend setup, Claude.ai OAuth connector).
Why no UI?
The host LLM already reads CSVs, sees receipt images, and writes prose. Bookie owns the things an LLM shouldn't improvise: a correct double-entry ledger, integer-cent money math, deterministic categorization rules, and reproducible reports. The model handles language and vision; the server handles the books.
Tools
The full, always-current tool reference lives in docs/TOOLS.md (regenerate with npm run docs:tools). Today:
Resources
Bookie exposes two MCP resources that an LLM can read without calling a tool:
Prompts
Three canned workflow prompts guide the LLM through common bookkeeping tasks:
Configuration
See .env.example for the full reference. Key variables:
Docs
- Architecture — data model, transports, layering
- Deploying — Railway + Neon + Resend setup
- Roadmap — phased plan
- Changelog — what shipped
- Releasing — versioning + release process
- Tools — generated manual
- Contributing — setup, conventions, tests
Safety
Bookie stores financial data in your Neon Postgres database; connection strings live in .env (gitignored) and Railway env vars — never commit them. The HTTP transport requires auth on every /mcp request: either a static Bearer token (BOOKIE_API_KEY) or an OAuth JWT issued by the /token endpoint. Always set at least one before exposing the server beyond localhost. See docs/DEPLOYING.md for the full Claude.ai connector OAuth setup.
License
MIT
Source: README.md at commit 02ca240
Tools
0Version history
1- v0.8.5LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts