Monarch Mcp Server

MCP Server for use with Monarch Money

LLM Mart 0 views 0 listing impressions
Transport
Not stated
Package
—
Registry id
—

No install snippet on purpose. A working MCP config is a command, its arguments and an environment block — the last two are where API keys live, so this catalogue never stores them and cannot publish them. Follow the link above for the authors' own instructions.

A Model Context Protocol (MCP) server for integrating with the Monarch Money personal finance platform. This server provides seamless access to your financial accounts, transactions, budgets, and analytics through Claude Desktop and Claude Code.

My MonarchMoney referral: https://www.monarchmoney.com/referral/ufmn0r83yf?r_source=share

Built with the MonarchMoneyCommunity Python library - An actively maintained community fork of the Monarch Money API with full MFA support.

monarch-mcp-server MCP server

🚀 Quick Start

If you plan to use this MCP server locally / on the same computer as Claude Desktop or similar, start with the Local Installation section.

For other deployment scenarios - like containerized deployment or cloud hosting - start with the Containerized Deployment section.

1. Local Installation

  1. Clone this repository:

    git clone https://github.com/robcerda/monarch-mcp-server.git
    cd monarch-mcp-server
    
  2. Install dependencies:

    Using uv (recommended):

    uv sync --locked
    

    --locked installs exactly what uv.lock pins, verified against the hashes it records, and refuses to re-resolve. Without it, uv sync is free to pick up whatever versions happen to satisfy the ranges today.

    Using pip:

    pip install -r requirements-lock.txt --require-hashes
    pip install -e . --no-deps
    

    requirements-lock.txt is generated from uv.lock and pins every transitive dependency with hashes, so --require-hashes gives the pip path the same guarantee as the uv one. --no-deps on the second command stops pip re-resolving what the first command just pinned.

    pip install -r requirements.txt still works and installs exactly the same set. That file is now a one line include of requirements-lock.txt, kept so existing setups and scripts do not break. The pins moved out of it because a root requirements.txt gets resolved as an independent manifest, which had started producing a pinned set that disagreed with uv.lock.

  3. Configure Claude Desktop: Add this to your Claude Desktop configuration file:

    macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

    Windows: %APPDATA%\Claude\claude_desktop_config.json

    {
      "mcpServers": {
        "Monarch Money": {
          "command": "/opt/homebrew/bin/uv",
          "args": [
            "run",
            "--locked",
            "--project",
            "/path/to/your/monarch-mcp-server",
            "monarch-mcp-server"
          ]
        }
      }
    }
    

    Important: Replace /path/to/your/monarch-mcp-server with your actual path!

    uv run --locked --project resolves dependencies from the repo's uv.lock, and monarch-mcp-server is the console script declared in pyproject.toml. --locked matters: without it, a lockfile that has drifted from pyproject.toml is silently re-resolved against PyPI and the recorded hashes stop being enforced. With it, drift is a startup error. Earlier versions of this README used uv run --with 'mcp[cli]', which builds a fresh unpinned environment on every launch and silently picks up whatever the newest release happens to be. That is what broke every install when the MCP SDK published 2.0, and the client only reported it as the server disconnecting. Pinning the launch to the lockfile means a new upstream release cannot change what your server runs.

  4. Restart Claude Desktop

OR

  1. Configure Claude Code (CLI): Add this to your Claude Code configuration file:

    Global (all projects):

From the project's README.