
Beancount.io
Query, edit, and reconcile a hosted Beancount ledger: BQL, reports, files, and bank imports.
Connector by beancount.ioOfficial · Domain verified by the MCP Registry
Install
Works with Claude Code, VS Code, Cursor, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install connector/beancount-io-beancount
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Remote endpoint
https://beancount.io/api-gateway/mcpRemote (HTTP)
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: finance-accounting, document-processing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.
- Tools
- 14 read · 13 write · 10 delete
- Secrets
- None asked for
- Install scripts
- Nothing to install (hosted)
- Runs as
- Hosted (remote endpoint)
Tools by what they do 37
Read from the source code; the running server may list different tools.
Read 14 · Look things up without changing anything.
checkLedgergetEntryContextgetLedgerContextlistBankConnectionslistLedgerEntrieslistLedgerFileslistLedgerslistStagedBankTransactionspreviewLedgerSetupreadLedgerFilesreconcile-accountrunBqlQuery
Show 2 more tools
runBqlQueryStructuredspending-report
Write 13 · Create, change, send or run things.
addLedgerEntriesappendLedgerTextcategorize-importsclose-monthcreateLedgercreatePullRequestgenerateTempAssetUploadUrlinsertReceiptTransactionparseFileparseReceiptrefreshManagedPricesrenameLedgerFile
Show 1 more tools
setLedgerStar
Delete 10 · Delete, drop, revoke or wipe things.
deleteEntrySourcedeleteEntrySourcesdeleteLedgerleaveLedgermergePullRequestrejectPullRequestremoveLedgerCollaboratorsetLedgerCollaboratorupdateEntrySourceupdateLedger
Network hosts it talks to 1
beancount.io· found in remote endpoint, install command
Files it touches
- Any path the agent passes to its tools
Tools (37)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
addLedgerEntriesAdd Structured Ledger EntriesAppend entries [{type,entry}]. Supports transaction, commodity, price, note, balance, open, close, budget, document, event. Budget interval uses lowercase daily/weekly/monthly/quarterly/yearly. One posting per transaction may omit its amount and is written elided. An unbalanced transaction is refused with UNBALANCED, and entries that would add bean-check errors (a second open for an open account, a balance against an unopened account), or a budget for an account the ledger lacks, with VALIDATION_FAILED naming each error, unless allowInvalid records them deliberately. ledger is required unless …
appendLedgerTextAppend Beancount Directive TextDescription is built at runtime.
categorize-importsCategorize Staged Bank TransactionsSync a linked bank, deduplicate the staged transactions against what the ledger already holds, propose a counter-account for each from the ledger's own history, and write the confirmed ones.
checkLedgerCheck Ledger Validityread-onlyCheck one ledger's validity in one call: bean-check errors with file and line, entry counts per directive type, and the latest commit.
close-monthClose The MonthMonth-end close ritual: reconcile active accounts, verify balance assertions, check recurring-entry completeness, sweep flagged entries, and report the period's P&L. Reports what it cannot verify instead of forcing a tie-out.
createLedgerCreate LedgerCreate a ledger owned by the authenticated user. Requires name; accepts description, private, template (STARTER default, including null: options and accounts without transactions; SAMPLE: demonstration transactions), a setup specification (mutually exclusive with template), and a requestId for idempotent retries.
createPullRequestCreate Pull RequestPropose a set of file changes as a pull request. Requires title, description, clearCommitMessage, and changes [{path,content}]; an omitted baseBranch targets main. A repository server failure is SERVICE_UNAVAILABLE naming the failed step.
deleteEntrySourceDelete Entry Sourcecan change or delete dataDelete one entry's source text, addressed by entryHash (listLedgerEntries' entry_hash) and sha256sum from getEntryContext. A write that would add a bean-check error the ledger did not have — deleting an entry a balance assertion depends on, re-dating it past one — is refused with VALIDATION_FAILED naming each new error; pass allowInvalid: true to commit it anyway.
deleteEntrySourcesDelete Several Entry Sourcescan change or delete dataDelete several entries' source text in one commit; entries is a list of {entryHash, sha256sum}. Returns the deleted count. A write that would add a bean-check error the ledger did not have — deleting an entry a balance assertion depends on, re-dating it past one — is refused with VALIDATION_FAILED naming each new error; pass allowInvalid: true to commit it anyway.
deleteLedgerDelete Ledgercan change or delete dataPermanently delete a ledger, including its history.
generateTempAssetUploadUrlCreate Temporary Asset Upload URLCreate a presigned PUT URL bound to the current user. Optional filename and mimeType preserve the upload metadata. Upload the bytes to uploadUrl before using objectKey in an ingestion workflow.
getEntryContextRead Entry Source Contextread-onlyRead the source context around one entry, addressed by the entry_hash listLedgerEntries returns; updateEntrySource and deleteEntrySource take the same hash and this result's sha256sum. Same data as the entry-context resource. A result with `generated_from` is a copy a plugin or a pad generated from that source entry (amortize_over, forecast, padding): it shares the source's slice and sha256sum, so editing or deleting it would change the source and every other copy; address the `generated_from` entry instead.
getLedgerContextRead Ledger Vocabularyread-onlyRead a ledger's working vocabulary in one call: attributes, open accounts, currencies, payees, years, and source files. Counts accompany truncated lists so a large ledger does not flood context.
insertReceiptTransactionInsert Receipt TransactionPromote the caller-owned temporary receipt named by receiptObjectKey into receipt storage and append the confirmed transaction. input carries date, payee, description, postings [{account,amountNumber,amountCurrency}], and documentAccount. ledger is required unless pinned. Applies immediately.
leaveLedgerLeave Ledgercan change or delete dataRemove the authenticated user's own access to a ledger they collaborate on.
Show 22 more tools
listBankConnectionsList Linked Banks And Their Accountsread-onlyList linked bank connections (item_id) and their accounts (account_id), the ids the bank sync, import, and connection tools take.
listLedgerEntriesList Journal Entriesread-onlyList journal entries, each with the entry_hash getEntryContext, updateEntrySource, and deleteEntrySource take. Narrows by account, filter, time, and directiveTypes; pages with limit and offset; total counts every match. Same data as the journal resource.
listLedgerFilesList Ledger Files & Directoriesread-onlyDescription is built at runtime.
listLedgersList Accessible Ledgersread-onlyList the ledgers this credential can reach — every one when `page` and `limit` are omitted. A pinned credential returns its one ledger; for an unpinned credential, ledger tools take one of these as `ledger: owner/name`.
listStagedBankTransactionsList Bank Transactions Staged For Importread-onlyList bank transactions staged for import. Each row's `transactionId` — not its `id` — is what importStagedBankTransactions and discardStagedBankTransactions take; optional accountId filter.
mergePullRequestMerge Pull Requestcan change or delete dataMerge a pull request into its base branch; the merge applies immediately. A merge that would take a free ledger past its directive limit is RESOURCE_LIMIT_REACHED. A repository server failure is SERVICE_UNAVAILABLE naming the failed step.
parseFileParse Uploaded FileParse a caller-owned temporary upload into transaction rows. s3ObjectKey comes from the upload operation; fileFormat names the format (csv, pdf, xlsx, json, etc.). Consumes AI quota. Does not write ledger entries.
parseReceiptParse Receipt and Recommend AccountsParse the caller-owned temporary image/PDF named by objectKey and recommend accounts. Pinned credentials may omit ledger; others must select it. Consumes extraction and recommendation tokens, without inserting entries.
previewLedgerSetupPreview Ledger Setupread-onlyPreview a ledger setup (ADR021) without creating anything: returns the files, account list, and validation result the specification would produce. Accepts the same setup object as createLedger.
readLedgerFilesRead Ledger File Contentsread-onlyDescription is built at runtime.
reconcile-accountReconcile An Account Against A StatementDiff one account against one statement period, classify every discrepancy, and — after confirmation — append the missing transactions plus a period-end balance assertion that proves the account ties out.
refreshManagedPricesRefresh Managed Price FeedsRe-fetch the ledger's managed price feeds now and return each source's status (the ledgerManagedPrices records). Never edits the ledger. ledger is required unless pinned.
rejectPullRequestReject Pull Requestcan change or delete dataReject a pull request by closing it without merging; applies immediately.
removeLedgerCollaboratorRemove Ledger Collaboratorcan change or delete dataRemove a collaborator's access to a ledger.
renameLedgerFileRename Ledger FileMove oldPath to newPath preserving content in one atomic commit. Refuses when oldPath is still `include`d unless updateIncludes rewrites those lines in the same commit. Pinned credentials can omit ledger.
runBqlQueryRun Beancount Query (BQL)read-onlyDescription is built at runtime.
runBqlQueryStructuredRun BQL with Typed Resultsread-onlyExecute BQL and return the typed table (column names, types, and rows) or structured text result. Uses the same query contract as REST JSON and GraphQL queryShell.
setLedgerCollaboratorAdd or Update Ledger Collaboratorcan change or delete dataAdd a collaborator to a ledger, or change an existing collaborator's permission (read, write, or admin).
setLedgerStarStar or Unstar a LedgerSet starred:true to star a ledger or false to unstar it for the authenticated user. ledger selects owner/name and defaults to the credential pin.
spending-reportReport On SpendingAnswer analytical questions about the ledger with shown, re-runnable BQL — spending, trends, net worth, burn rate, subscriptions. Strictly read-only; every figure comes from a query the user can see.
updateEntrySourceUpdate Entry Sourcecan change or delete dataReplace one entry's source text with newContent, addressed by entryHash (listLedgerEntries' entry_hash) and sha256sum from getEntryContext. Returns the entry's new hash as newEntryHash; the request's entryHash is stale after the commit. A replacement that would take a free ledger past its directive limit is RESOURCE_LIMIT_REACHED. A write that would add a bean-check error the ledger did not have — deleting an entry a balance assertion depends on, re-dating it past one — is refused with VALIDATION_FAILED naming each new error; pass allowInvalid: true to commit it anyway.
updateLedgerUpdate Ledger Settingscan change or delete dataChange a ledger's name, description, or privacy; omitted fields stay as they are.
Signals
- Stars
- 312
- Forks
- 39
- Open issues
- 1
- Last commit (this folder)
- Oct 24, 2026 (5 days ago)
- Last release
- Oct 5, 2026 (24 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- Registry name
io.beancount/beancount- Version
- 1.0.0
- Auth
- Auth not stated
- License
- MIT
- Repository
- github.com/bex-co/beancount-io
- First seen
- Oct 24, 2026
- Last checked
- Oct 25, 2026
Cite this page
Beancount.io MCP server. Agent Mart. https://agentmart.dev/connectors/beancount-io-beancount (last updated 2026-10-25)