使用说明
GnuCash MCP服务器
一 MCP(模型上下文协议) 服务器 GnuCash,允许AI助手读取和查询您的财务数据。
此服务器使用 官方GnuCash Python绑定,提供与所有GnuCash文件格式的完全兼容性,包括gzip压缩的XML和SQLite数据库。
先决条件
GnuCash Python绑定必须安装在您的系统上。这些是GnuCash本身的一部分 无法通过pip安装.
Ubuntu/Debian
sudo apt install gnucash python3-gnucash
菲多拉
sudo dnf install gnucash python3-gnucash
Arch Linux
sudo pacman -S gnucash
验证安装
python3 -c "import gnucash; print('GnuCash bindings OK')"
快速开始
# Clone the repository
git clone https://github.com/jmceleney/gnucash-mcp.git
cd gnucash-mcp
# Create a virtual environment with access to system packages
python3 -m venv --system-site-packages .venv
source .venv/bin/activate
pip install mcp
# Run the server (GNUCASH_FILE is required)
GNUCASH_FILE=/path/to/your/finances.gnucash python3 server.py
配置
克劳德代码
claude mcp add gnucash \
-e GNUCASH_FILE=/path/to/your/finances.gnucash \
-- /path/to/gnucash-mcp/.venv/bin/python3 /path/to/gnucash-mcp/server.py
要启用写入模式(允许创建事务):
claude mcp add gnucash \
-e GNUCASH_FILE=/path/to/your/finances.gnucash \
-- /path/to/gnucash-mcp/.venv/bin/python3 /path/to/gnucash-mcp/server.py --write
克劳德桌面版
添加到配置文件中:
- Linux:
~/.config/claude/claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"gnucash": {
"command": "/path/to/gnucash-mcp/.venv/bin/python3",
"args": ["/path/to/gnucash-mcp/server.py"],
"env": {
"GNUCASH_FILE": "/path/to/your/finances.gnucash"
}
}
}
}
对于写入模式,添加 "--write" 到args数组。
可用工具
读取工具(始终可用)
| 工具 | 说明 |
|---|---|
list_accounts() |
列出所有帐户及其类型。 |
get_account_balance(account_name) |
获取余额(支持部分名称匹配)。 |
get_transactions(account_name, limit) |
获取最近的交易记录(默认值:20)。 |
search_accounts(query) |
按名称搜索帐户(不区分大小写)。 |
get_account_info(account_name) |
获取详细的帐户信息。 |
写入工具(必需 --write 旗帜)
| 工具 | 说明 |
|---|---|
add_transaction(from_account, to_account, amount, description, date, memo) |
在两个账户之间创建交易。 |
commit() |
将待处理的更改保存到磁盘(退出时也会自动保存)。 |
帐户名称
使用点符号: Assets.Current Assets.Checking Account
部分匹配工作:
Checking Account火柴Assets.Current Assets.Checking Accountelectric火柴Expenses.Utilities.Electric
查询示例
- “我的支票账户余额是多少?”
- “显示最近的储蓄交易”
- “列出所有费用账户”
- “搜索包含‘实用程序’的帐户”
- “将50美元从支票转入储蓄”(写入模式)
故障排除
“没有名为'gnucash'的模块”
通过系统包管理器安装GnuCash Python绑定。
“没有名为'mcp'的模块”
激活venv并安装: pip install mcp
文件已锁定
如果GnuCash桌面应用程序未运行,服务器会自动删除过时的锁文件。如果GnuCash已打开,请先关闭它。
“未设置GNUCASH_FILE环境变量”
这 GNUCASH_FILE 环境变量是必需的。在运行服务器或MCP配置中设置它。
为什么不使用uvx/pipx?
这些工具创建了无法访问系统包的隔离环境。GnuCash Python绑定仅作为系统包可用,因此我们必须使用 --system-site-packages.
局限性
- 系统相关性:需要在系统范围内安装GnuCash
- 单个文件:一次打开一个文件
- 相同货币交易:写入模式仅支持相同货币的账户之间的交易
许可证
麻省理工学院
