Skip to content

MCP (Model Context Protocol)

Model Context Protocol (MCP) 是由 Anthropic 开发的开放协议,使 AI 模型能够安全地连接到外部数据源和工具。它为 AI 工具提供了一种标准化的方式,可以在保证安全性和用户控制权的同时访问信息并执行操作。

通过 MCP 协议,您可以使用您喜爱的 AI 工具添加交易(例如,使用自然语言创建交易、批量导入不同格式的交易)、查询交易数据(例如,使用您的AI工具对历史交易数据进行分析)等。

请注意:如果你使用第三方的大语言模型服务,请谨慎使用 MCP 功能,因为你的隐私数据会发送给第三方大模型服务。

配置

ezBookkeeping 默认没有启用 MCP 服务器,你可以修改配置文件中的 enable_mcp 或修改环境变量开启 MCP 功能,具体可以参考 配置 - MCP,开启后在桌面版的 “用户设置” -> “安全” 页面中会出现 “生成令牌” 按钮。

与 AI 工具集成

ezBookkeeping 的 MCP 服务需要通过特殊的令牌进行访问,您可以在 ezBookkeeping 桌面版的 “用户设置” -> “安全” 页面中点击 “生成令牌” 按钮,输入当前用户密码即可。也可以通过 ezBookkeeping 的命令行工具 user-session-new 进行生成,具体可以参考 命令行

如果访问 MCP 服务器的 IP 地址固定(例如家庭内部网络),可以设置允许请求 MCP 服务器的 IP 地址,具体可以参考 配置 - MCP

然后,您可以将以下代码复制到您的 AI 工具的 MCP 服务器配置中,即可让您的 AI 工具访问与操作 ezBookkeeping 的数据。

json
{
    "mcpServers": {
        "ezbookkeeping-mcp": {
            "type": "streamable-http",
            "url": "http://{domain}/mcp",
            "headers": {
                "Authorization": "Bearer {token}"
            }
        }
    }
}

支持的 MCP 工具

添加交易

MCP Tool 名称

add_transaction

请求参数

字段类型必选描述
typestring必选交易类型(income、expense、transfer)
timestring必选RFC 3339 格式的交易时间(例如 2023-01-01T12:00:00Z)
category_namestring必选交易的二级分类名
account_namestring必选交易的账户名
amountstring必选交易金额
destination_account_namestring可选转账交易的目标账户名
destination_amountstring可选转账交易的目标金额
tagsstring[]可选交易标签的列表(最多允许10个标签)
commentstring可选交易备注
dry_runboolean可选如果设置为 true,交易不会被保存,仅进行验证

返回参数

字段类型必选描述
successboolean必选本次处理是否成功
dry_runboolean可选本次处理是否仅为验证(交易未实际添加)
account_balancenumber可选交易添加后的账户余额(对于负债账户为未清余额)
destination_account_balancenumber可选交易(仅转账交易)添加后的目标账户余额(对于负债账户为未清余额)

查询交易

MCP Tool 名称

query_transactions

请求参数

字段类型必选描述
start_timestring必选RFC 3339 格式的查询开始时间(例如 2023-01-01T12:00:00Z)
end_timestring必选RFC 3339 格式的查询结束时间(例如 2023-01-01T12:00:00Z)
typestring可选用于筛选的交易类型(income、expense、transfer)
category_namestring可选用于筛选交易的一级或二级分类名称
account_namestring可选用于筛选交易的账户名
commentstring可选在交易描述中搜索的关键词
countnumber可选返回结果最大的数量(默认:100)
pagenumber可选用于分页的页码(默认:1)
response_fieldsstring可选结果中包含的可选字段列表,使用逗号分隔(留空表示所有字段,可选字段:time, currency, category_name, account_name, comment)

返回参数

字段类型必选描述
total_countnumber必选符合查询的所有交易数量
current_pagenumber必选结果当前页码
total_pagenumber必选查询所有可用的页码数,根据 total_count 和 count 计算
transactionsMCPTransactionInfo[]必选符合查询的交易列表

MCPTransactionInfo

字段类型必选描述
timestring可选RFC 3339 格式的交易时间(例如 2023-01-01T12:00:00Z)
typestring必选交易类型(income、expense、transfer)
amountstring必选指定货币下的交易金额
currencystring可选交易的货币代码(例如 USD、EUR)
category_namestring可选交易的二级分类名
account_namestring可选交易的账户名
destination_amountstring可选转账交易的目标金额
destination_currencystring可选转账交易目标金额的货币代码
destination_account_namestring可选转账交易的目标账户名
commentstring可选交易备注

查询所有账户名

MCP Tool 名称

query_all_accounts

请求参数

返回参数

字段类型必选描述
cashAccountsstring[]可选现金账户名称列表
checkingAccountsstring[]可选借记账户名称列表
savingsAccountsstring[]可选储蓄账户名称列表
creditCardAccountsstring[]可选信用卡账户名称列表
virtualAccountsstring[]可选虚拟账户名称列表
debtAccountsstring[]可选负债账户名称列表
receivableAccountsstring[]可选应收款项账户名称列表
certificateOfDepositAccountsstring[]可选定期存款账户名称列表
investmentAccountsstring[]可选投资账户名称列表

查询所有账户余额

MCP Tool 名称

query_all_accounts_balance

请求参数

返回参数

字段类型必选描述
cashAccountsMCPAccountBalanceInfo[]可选现金账户余额列表
checkingAccountsMCPAccountBalanceInfo[]可选借记账户余额列表
savingsAccountsMCPAccountBalanceInfo[]可选储蓄账户余额列表
creditCardAccountsMCPAccountBalanceInfo[]可选信用卡账户未清余额列表
virtualAccountsMCPAccountBalanceInfo[]可选虚拟账户余额列表
debtAccountsMCPAccountBalanceInfo[]可选负债账户未清余额列表
receivableAccountsMCPAccountBalanceInfo[]可选应收款项账户余额列表
certificateOfDepositAccountsMCPAccountBalanceInfo[]可选定期存款账户余额列表
investmentAccountsMCPAccountBalanceInfo[]可选投资账户余额列表

MCPAccountBalanceInfo

字段类型必选描述
namestring必选账户名称
typestring必选账户类型(asset、liability)
balancestring可选账户当前余额
outstandingBalancestring可选账户当前未清余额(正数表示欠款金额)
currencystring必选账户货币代码(例如 USD、EUR)

查询所有交易分类名

MCP Tool 名称

query_all_transaction_categories

请求参数

返回参数

字段类型必选描述
incomeCategoriesMap<string, string[]>必选收入分类列表,字段名为一级分类名,字段值为二级字段名列表
expenseCategoriesMap<string, string[]>必选支出分类列表,字段名为一级分类名,字段值为二级字段名列表
transferCategoriesMap<string, string[]>必选转账分类列表,字段名为一级分类名,字段值为二级字段名列表

查询所有交易标签名

MCP Tool 名称

query_all_transaction_tags

请求参数

返回参数

字段类型必选描述
tagsstring[]必选交易标签列表

查询最新的汇率

MCP Tool 名称

query_latest_exchange_rates

请求参数

字段类型必选描述
currenciesstring必选用于查询汇率的货币列表,使用逗号分隔(例如 USD,CNY,EUR)

返回参数

字段类型必选描述
base_currencystring必选基准货币代码(例如 USD)
update_timestring必选汇率的最后更新时间(RFC 3339 格式,例如 "2023-01-01T12:00:00Z")
ratesMCPQueryExchangeRateInfo[]必选指定货币的汇率

MCPQueryExchangeRateInfo

字段类型必选描述
currencystring必选货币代码(例如 USD)
rate_to_basestring必选该货币1元可兑换的基础货币数量

Released under the MIT License.