个人财务集成服务

ZenMoney MCP Server是一个用于将Claude与ZenMoney个人财务跟踪应用集成的模型上下文协议服务器,提供账户管理、交易查询和预算浏览等功能。

  • by germanKoch
  • Python
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 germanKoch/zenmoney-mcp

使用说明

ZenMoney MCP服务器

一种用于集成Claude的MCP(模型上下文协议)服务器 ZenMoney --个人财务跟踪应用程序。

特性

  • 查看账户和余额
  • 搜索和筛选交易
  • 创建、更新和删除交易
  • 浏览类别树和预算
  • 按收款人名称分类建议

快速入门(uvx)

运行服务器最简单的方法是 uvx --无需克隆或手动安装。需要 紫外线 待安装。

将服务器添加到Claude Desktop(设置→ 开发者→ 编辑配置):

{
  "mcpServers": {
    "zenmoney": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/germanKoch/zenmoney-mcp", "zenmoney-mcp"]
    }
  }
}

或者将其添加到Claude Code中:

claude mcp add zenmoney -- uvx --from git+https://github.com/germanKoch/zenmoney-mcp zenmoney-mcp

就是这样。第一次使用时,浏览器窗口会打开ZenMoney登录页面——登录,令牌会保存到 ~/.config/zenmoney-mcp/token.json 然后自动刷新。

授权

服务器按照以下优先级顺序解析凭据:

1.环境变量

直接通过环境传递令牌数据——这对于无头设置或已经拥有令牌时很有用(例如 Zerro.app/令牌):

变量 描述
ZENMONEY_ACCESS_TOKEN OAuth访问令牌(别名: ZENMONEY_TOKEN)
ZENMONEY_REFRESH_TOKEN OAuth刷新令牌——允许服务器在访问令牌过期时刷新访问令牌
ZENMONEY_TOKEN_TYPE 令牌类型(通常 bearer)
ZENMONEY_EXPIRES_IN 令牌寿命(秒)
{
  "mcpServers": {
    "zenmoney": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/germanKoch/zenmoney-mcp", "zenmoney-mcp"],
      "env": {
        "ZENMONEY_ACCESS_TOKEN": "your_access_token",
        "ZENMONEY_REFRESH_TOKEN": "your_refresh_token",
        "ZENMONEY_TOKEN_TYPE": "bearer",
        "ZENMONEY_EXPIRES_IN": "86400"
      }
    }
  }
}

要是…就好了 ZENMONEY_ACCESS_TOKEN 如果设置了(无刷新令牌),则令牌将按原样使用,不会刷新——访问令牌将在24小时后过期。

2.已保存的令牌文件

通过OAuth获得(或刷新)的令牌存储在 ~/.config/zenmoney-mcp/token.json.用覆盖位置 ZENMONEY_TOKEN_FILE 环境变量。

3.浏览器OAuth流(自动)

如果找不到有效令牌,服务器将:

  1. 在端口上启动本地HTTP服务器 3000
  2. 打开带有ZenMoney登录页面的浏览器
  3. 登录后,将授权码替换为令牌
  4. 保存令牌并在到期时自动刷新

从源代码运行

git clone https://github.com/germanKoch/zenmoney-mcp.git
cd zenmoney-mcp
uv sync
uv run zenmoney-mcp

本地结账的Claude Desktop配置:

{
  "mcpServers": {
    "zenmoney": {
      "command": "uv",
      "args": ["run", "--directory", "/absolute/path/to/zenmoney-mcp", "zenmoney-mcp"]
    }
  }
}

可用工具

工具 说明
get_accounts 列出有余额的账户
get_transactions 按日期、帐户或类别筛选的交易
create_transaction 创建支出、收入或转移
update_transaction 更新现有交易
delete_transaction 删除交易
get_categories 类别树
get_budgets 一段时间内每个类别的预算
suggest_category 按收款人名称分类建议

示例提示

  • “显示我的账户和余额”
  • “我上周花了什么?”
  • “从我的Tinkoff卡中记录500卢布的杂货费”
  • “一月份我在咖啡馆花了多少钱?”