跳转到主要内容

Model Context Protocol

让账本,融入对话。

把 Beancount 接入你熟悉的 AI 工具。询问财务状况、处理账本文件,让每次变更都能在 Git 中追溯。

直接提问

从一个问题开始,沿着答案追溯到账本。

此处为示例数据,未连接真实账本。
你

我今天净资产是多少?

你的 AI 助手

你今天净资产为 128,450.32 USD。

查询账本中的余额,再核对答案背后的查询结果。
答案的依据
runBqlQuery
SELECT sum(position) WHERE account ~ 'Assets|Liabilities'
Beancount

适用于兼容 MCP 的客户端

  • Claude Code
  • Claude Desktop
  • Cursor
  • Windsurf
  • Zed

连接你已经在用的客户端

选择你的客户端,添加一次服务器,然后授权它可以访问的账本。

Claude Code

  1. 在你的终端中运行这一条命令。

  2. 打开 Claude Code 并运行 /mcp 进行认证。登录 Web Beancount,批准一个账本或全部账本。

  3. 批准一次。凭据将从此自动刷新。

客户端设置文档
终端
claude mcp add --transport http beancount https://beancount.io/api-gateway/mcp

有多个账本?一次性全部批准。助理会调用 listLedgers 查看它可以访问的内容,并在每次调用时指明账本名称,因此一个服务器就能覆盖所有账簿。

使用你的 Web Beancount 账户来授权服务器可以访问哪些账本。

AI 能做什么

服务器为你的账本和银行连接提供专注的工具——账本动词如下所示。AI 会组合它们:发现你的文件结构、读取上下文、查询答案、提出编辑建议。

账本和银行工具。你的客户端决定如何使用它们。

runBqlQuery

对余额、交易和账户运行 BQL(Beancount Query Language)查询。

listLedgerFiles

浏览账本仓库的目录结构。

readLedgerFiles

读取你的 .beancount 文件和其他账本文档的内容。

updateLedgerFiles

在一次原子 git 提交中修改文件,并支持 dry_run 预览;createLedgerFiles 和 deleteLedgerFiles 用于新增和删除文件。

你的账本,安全守护

一个拥有你的账本写入权限的 AI,是靠设计而非承诺来赢得信任的。

限定范围的 OAuth 2.1

由你决定一个连接可以访问什么:单个账本或全部账本。只授权你的个人账本,该连接就无法触及你的业务账簿——影响范围由你设定。

预演预览

文件工具(createLedgerFiles、updateLedgerFiles、deleteLedgerFiles)和 appendLedgerText 支持 dry_run 模式:它会校验并预览确切的改动而不写入任何内容,这样你的客户端可以先向你展示差异。

每次编辑都是一次 git 提交

更改会以真实提交("AI edit: …")的形式写入你的账本仓库——这是一份完整的审计轨迹,你可以使用标准 git 工具查看和回滚。

无状态服务器

MCP 服务器不会在工具调用之间保留会话状态。你选择的 AI 客户端和模型会接收你请求的结果;连接前,请了解它们的数据政策。

你的整个账本已经是一个 git 仓库。

了解 Git for Beancount 的工作原理

常见问题

连接之前,先了解这些。

想知道它是怎么构建的吗?

在博客上阅读工程常见问题
什么是 MCP,为什么它对 Beancount 很重要?

MCP(Model Context Protocol)是一个开放标准,让 AI 助手以结构化、安全的方式调用外部工具和数据源。你的 AI 客户端不再猜测或要求你粘贴数据,而是直接连接到你的账本——它查询你的真实数据、读取你的实际文件,并进行精确编辑。

哪些 AI 客户端支持 Beancount MCP 服务器?

任何支持 OAuth 2.1 的 MCP 兼容客户端都可以开箱即用,包括 Claude Code、Claude Desktop、Cursor、Windsurf 和 Zed。不支持 OAuth 2.1 的客户端可以使用在 beancount.io 账户设置中生成的静态令牌进行连接。

如何连接我的账本?

将服务器 URL 添加到客户端的 MCP 配置中。首次使用时,客户端会打开浏览器窗口——用你的 Web Beancount 账户登录,并选择它只能访问单个账本还是全部账本。客户端会从此处自动存储并刷新凭据。

AI 实际上能对我的账本做什么?

服务器为每个操作提供一个独立的工具——beancount.io/.well-known/ 下的机器可读发现清单列出了当前的工具集。账本工具可以运行 Beancount Query Language 查询(runBqlQuery)、浏览仓库(listLedgerFiles)、读取账本文档(readLedgerFiles)、按日期顺序添加指令(appendLedgerText),以及在一次原子 git 提交中创建、修改或删除文件(createLedgerFiles、updateLedgerFiles、deleteLedgerFiles,均支持 dry_run 预览模式)。银行工具可以拉取、导入或丢弃暂存的交易,并管理已关联的连接;关联全新的银行需要在浏览器中完成,而不是通过 MCP。API 密钥和账户设置保留在 Beancount.io 网页应用中。AI 会组合这些工具来回答问题并提出编辑建议。

AI 能在不知情的情况下修改我的账本吗?

新的指令通过 appendLedgerText 添加,文件改动则通过文件工具——createLedgerFiles、updateLedgerFiles 和 deleteLedgerFiles——完成。dry_run 模式会预览计划中的改动而不提交任何内容;在真正提交之前是否征求你的确认取决于客户端。每个已提交的改动都会成为一次真实的 git 提交——完整的审计记录,可以用标准 git 工具撤销。提交过程可能在写入之后才报告校验错误,因此请先预览,之后再核对账本。

我的数据会发送给第三方吗?

你的账本数据会经过 Web Beancount 后端,以工具结果的形式返回给 AI 客户端。你选择的 AI 模型也会接收这些结果,因此模型提供商的数据政策同样适用。每个获授权的会话只能访问一本账本。

下一次对话,把你的账本也带上。

Beancount MCP 服务器今天对所有 Web Beancount 用户开放。你的账本只需一次 git push 即可完成。