项目简介

Monarch Money MCP服务器是一个基于Model Context Protocol (MCP) 的后端服务,旨在将您的Monarch Money个人财务平台数据与大型语言模型(LLM)应用(如Claude Desktop)集成。它允许LLM通过预定义的工具访问您的账户、交易、预算和现金流信息,并支持创建或更新交易。

主要功能点

  • 账户管理: 查看所有金融账户、余额和机构信息;获取投资账户的持仓;请求账户数据实时更新。
  • 交易访问与操作: 检索交易记录(支持筛选);创建新交易;修改现有交易。
  • 财务分析: 获取预算信息(已花费、剩余金额);分析指定时间范围内的现金流(收入/支出)。
  • 安全认证: 一次性设置,支持多重身份验证(MFA),凭据不通过LLM客户端传输,会话持久化。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/robcerda/monarch-mcp-server.git
    cd monarch-mcp-server
  2. 安装依赖:
    pip install -r requirements.txt
    pip install -e .
  3. 进行一次性身份验证设置: 在项目根目录运行:
    python login_setup.py
    按照提示输入您的Monarch Money邮箱、密码和双因素认证码(如果启用)。会话将自动安全地保存到系统密钥环中。

服务器配置 (用于MCP客户端)

您需要将以下配置添加到您的MCP客户端(例如Claude Desktop)的配置文件中,以便客户端能够连接并启动Monarch Money MCP服务器。请务必将'/path/to/your/monarch-mcp-server'替换为您的实际项目路径。

配置示例 (JSON格式):

{
  "mcpServers": {
    "Monarch Money": {
      "command": "/opt/homebrew/bin/uv",
      "args": [
        "run",
        "--with",
        "mcp[cli]",
        "--with-editable",
        "/path/to/your/monarch-mcp-server",
        "mcp",
        "run",
        "/path/to/your/monarch-mcp-server/src/monarch_mcp_server/server.py"
      ]
    }
  }
}

参数说明:

  • '"Monarch Money"': 这是您在MCP客户端中看到的服务器名称。
  • '"command"': 用于启动MCP服务器进程的命令。此处示例使用了'uv',请根据您的Python环境和安装情况调整。
  • '"args"': 传递给'command'的参数列表,用于指定如何运行服务器。
    • '"--with mcp[cli]"': 确保'mcp'命令行接口可用。
    • '"--with-editable /path/to/your/monarch-mcp-server"': 允许'uv'加载您本地克隆的Monarch Money MCP服务器项目。
    • '"mcp run /path/to/your/monarch-mcp-server/src/monarch_mcp_server/server.py"': 实际运行MCP服务器主文件的指令。

基本使用方法

配置并重启MCP客户端后,您可以在客户端中直接通过自然语言调用以下工具来与Monarch Money进行交互:

  • 'get_accounts': 查看所有金融账户。
  • 'get_transactions': 获取近期交易记录(可按日期、账户、数量筛选)。
  • 'get_budgets': 检查预算状态和支出情况。
  • 'get_cashflow': 分析指定时间段内的现金流。
  • 'create_transaction': 添加新交易。
  • 'update_transaction': 修改现有交易。
  • 'refresh_accounts': 请求金融机构更新账户数据。

例如,在您的MCP客户端中可以说:

  • 'Use get_accounts to show me all my financial accounts' (使用get_accounts显示我所有的金融账户)
  • 'Show me my last 50 transactions using get_transactions with limit 50' (使用get_transactions显示我最近50笔交易)

信息

分类

生产力应用