mcpField
M
Monarch MCP

Monarch MCP

本地服务
github.com/vargahis生产力1320 周前更新

关于 Monarch MCP

Monarch MCP 将 Claude Desktop 等 MCP 客户端连接到 Monarch Money,用于查询和管理个人财务。它涵盖账户、交易、预算和现金流等;默认禁用更改操作,需显式启用写入模式。

主要功能

  1. 01读取账户与投资持仓
  2. 02筛选并分析交易
  3. 03查看预算和现金流
  4. 04写入模式下创建和更新财务记录
  5. 05浏览器登录并将令牌存入系统密钥环

适用场景

  1. 01查看账户余额和净资产
  2. 02分析近期支出与现金流
  3. 03检查预算进度
  4. 04启用写入后编辑交易、标签或规则

MCP 相关

该 MCP 服务将 Monarch Money 财务操作作为工具提供给客户端,默认仅开放只读访问。显式启用前,写入工具会被隐藏并禁止调用。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库
安装包
pypimonarch-mcp0.1.4
mcpbmonarch-mcp-v0.1.4.mcpb

工具

38

收录的工具列表 · 更新于 2 周前

此工具无需参数。

详细介绍

Monarch Money MCP 服务

通过 Claude Desktop 与 Monarch Money 个人财务平台集成的模型上下文协议(MCP)服务。

概览

  • 安全设计 — 基于浏览器登录,令牌存储在操作系统密钥链中(绝不会存储在配置文件或环境变量中)
  • 默认安全 — 只读模式可防止意外更改;写入工具需要明确选择启用
  • 功能全面 — 提供 44 种工具,涵盖账户、交易、拆分、预算、现金流、标签、类别、交易规则、定期商户和信用记录
  • 易于安装 — 可通过 Claude Desktop 扩展(.mcpb)、uvx 或 pip 安装

两种运行模式:

服务默认以只读模式启动。在明确选择启用之前,写入工具处于隐藏和禁用状态。

只读模式(默认)写入模式
查看账户、交易、预算是是
分析现金流、支出、净资产是是
创建交易、标签、类别、规则否是
更新账户、预算、拆分否是
删除交易、标签、账户否是

快速开始

安装
选项 1:Claude Desktop 扩展(.mcpb)— 推荐用于 Claude Desktop

可直接在 Claude Desktop 应用中切换启用或禁用写入模式。

  1. 从 Releases 下载最新的 .mcpb
  2. 在 Claude Desktop 中:Settings > Extensions > Advanced Settings > Install Extensions — 选择 .mcpb 文件
  3. 重启 Claude Desktop

要启用写入工具:Settings > Extensions > Monarch Money MCP Server > Configure — 切换 "Enable write tools" 并点击 Save。


选项 2:uvx(无需安装)— 推荐用于 Agent(例如 Claude Code 或 Cursor)

也适用于 Claude Desktop,但无法在应用中切换写入模式 — 请在配置中设置。

将以下内容添加到 MCP 配置文件:

{
  "mcpServers": {
    "Monarch Money": {
      "command": "uvx",
      "args": ["monarch-mcp"]
    }
  }
}

要启用写入工具:

{
  "mcpServers": {
    "Monarch Money": {
      "command": "uvx",
      "args": ["monarch-mcp", "--enable-write"]
    }
  }
}

选项 3:pip install — 推荐用于本地安装和 venv
pip install monarch-mcp

贡献者:有关发布流程、版本方案以及通过 TestPyPI 进行预发布测试的信息,请参阅 docs/releasing.md。

使用 Python 解释器的完整路径将以下内容添加到 MCP 配置中:

{
  "mcpServers": {
    "Monarch Money": {
      "command": "/path/to/bin/python3",
      "args": ["-m", "monarch_mcp"]
    }
  }
}

要启用写入工具,请在 args 中添加 "--enable-write"。


选项 4:克隆并安装 — 推荐用于开发
git clone https://github.com/vargahis/monarch-mcp.git
cd monarch-mcp
pip install -e .

然后使用开发环境中的 Python 解释器将以下内容添加到 MCP 配置中:

{
  "mcpServers": {
    "Monarch Money": {
      "command": "/path/to/bin/python3",
      "args": ["-m", "monarch_mcp"]
    }
  }
}

要启用写入工具,请在 args 中添加 "--enable-write"。

身份验证

首次在没有已保存会话的情况下启动 MCP 服务时,会自动在浏览器中进行身份验证。

  1. 启动(或重启)Claude Desktop
  2. 服务检测到不存在令牌后,会在浏览器中打开登录页面
  3. 输入 Monarch Money 邮箱和密码
  4. 如果启用了 MFA,请提供 2FA 验证码
  5. 身份验证完成后,令牌会保存到系统密钥环中 — 即可使用

要点:

  • 仅在浏览器中输入凭据 — 绝不会通过 Claude Desktop 输入
  • 令牌存储在操作系统密钥环中 — 重启后仍然有效,可持续数周或数月
  • 会话过期后自动重新验证 — 下次调用工具时会再次触发浏览器登录
  • 全面支持 MFA
  • 备用方案:在无头环境中,可在终端运行 python login_setup.py

有关身份验证架构的技术详情,请参阅 docs/authentication.md。

使用示例
Show me all my financial accounts
What were my last 50 transactions?
How's my budget looking this month?
Analyze my cashflow for the last 3 months
Create a tag called "Business Expenses" in red

可用工具

工具描述模式
身份验证
setup_authentication获取设置说明读取
check_auth_status检查身份验证状态读取
debug_session_loading排查密钥环问题读取
账户
get_accounts获取所有金融账户读取
get_account_holdings获取投资持仓读取
get_account_history获取历史余额数据读取
get_recent_account_balances获取每日余额读取
get_account_snapshots_by_type按账户类型查看净资产读取
get_aggregate_snapshots每日汇总净值读取
get_institutions获取已连接的金融机构读取
get_account_type_options获取有效的账户类型读取
refresh_accounts请求刷新账户数据读取
create_manual_account创建手动账户写入
update_account更新账户设置写入
delete_account删除账户写入
交易
get_transactions获取交易记录并进行筛选(日期、账户、类别、标签、搜索、需要_审核等)读取
get_transaction_details获取完整的交易详情读取
get_transactions_summary汇总交易统计数据读取
get_transaction_splits获取拆分信息读取
get_recurring_transactions获取周期性交易读取
find_merchant_id_by_name搜索近期交易,查找商家并返回不重复的 ID读取
create_transaction创建新交易写入
update_transaction更新现有交易(使用 clear_notes 清除备注,使用 clear_goal 取消关联目标)写入
delete_transaction删除交易写入
update_transaction_splits创建、修改或删除拆分写入
update_recurring_merchant将商家标记为周期性商家或取消标记,更新其频率或金额,或停用该商家——每次调用都必须提供 is_recurring(需要 --enable-write)写入
标签
get_transaction_tags获取所有标签读取
create_transaction_tag创建新标签写入
delete_transaction_tag删除标签写入
set_transaction_tags为交易设置标签写入
类别
get_transaction_categories获取所有类别读取
get_transaction_category_groups获取类别组读取
create_transaction_category创建类别写入
delete_transaction_category删除类别写入
规则
get_transaction_rules列出所有交易规则及其条件、操作和近期应用统计数据读取
create_transaction_rule创建具有完整条件和操作(类别、标签、商家、金额、拆分等)的交易规则写入
update_transaction_rule按 ID 更新规则;将覆盖项合并到当前规则中(处理 Monarch 的 REPLACE 语义)写入
delete_transaction_rule按 ID 删除规则写入
预算与现金流
get_budgets获取预算信息读取
get_cashflow获取现金流分析读取
get_cashflow_summary获取现金流摘要读取
set_budget_amount设置类别预算写入
其他
get_subscription_details获取订阅状态读取
get_credit_history获取信用评分历史读取

测试

本项目包含两类互为补充的测试:

1. 模拟单元测试(质量门槛) — 快速、离线运行,无需连接 Monarch。这些测试会在 CI 中运行,必须保持通过:

uv run pytest tests/

Monarch 客户端使用了模拟对象,因此这些测试不会访问真实账户。下文的实时端到端测试默认不运行。

2. 实时端到端(e2e)集成测试 — 使用真实 Monarch 账户测试 MCP 工具,验证其能否可靠处理实时 API(恶意输入/边缘输入、服务端错误路径)。这些测试需主动启用,且不会在 CI 中运行:

MONARCH_LIVE_TESTS=1 uv run pytest tests/integration -m integration

前提条件:已保存密钥环令牌(运行一次 python login_setup.py),或在环境中设置 MONARCH_EMAIL/MONARCH_PASSWORD。如果没有这些凭据,测试套件将跳过。测试会创建并删除前缀为 MCP-Test- 的数据,并自动清理(测试套件运行后会扫描并移除任何残留数据)。详情和安全说明请参阅 tests/integration/README.md。

此外,还有一个独立的 Agent 测试技能(.claude/skills/test-monarch-mcp/),用于驱动 AI Agent 验证其是否能正确调用工具,与上述两个 pytest 测试套件不同。

🙏 致谢

基于 @robcerda 的 monarch-mcp-server 分叉,由 vargahis 维护。

基于 monarchmoneycommunity Python 库构建。

感谢:

许可证

MIT 许可证

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。