MCP Hub
Back to servers

Monarch MCP Server

Access Monarch financial data — accounts, transactions, budgets, and more

Stars
2
Updated
Mar 3, 2026
Validated
Mar 4, 2026

Quick Install

uvx monarch-mcp-jamiew

Monarch Money MCP Server

An MCP server for Monarch Money — gives AI assistants like Claude access to your financial accounts, transactions, budgets, and more.

Originally forked from @colvint/monarch-money-mcp but has diverged significantly with a full rewrite, many new features, and a modern FastMCP architecture.

Built with the MonarchMoney Python library by @hammem — a fantastic unofficial API for Monarch Money with full MFA support. We currently use the community fork by @bradleyseanf which tracks the latest Monarch Money API changes.

Features

  • 19 tools covering accounts, transactions, budgets, cashflow, investments, categories, goals, net worth, recurring transactions, and more
  • MCP resources for quick access to categories, accounts, and institutions
  • MCP prompts for guided financial analysis workflows
  • Smart output formatting — compact transaction format reduces token usage by ~80%
  • Natural language dates — "last month", "30 days ago", "this year" all work
  • Batch operations — parallel multi-account queries, bulk transaction updates
  • Spending analysis — multi-month trend analysis with category/account breakdowns
  • Tool annotations — proper read/write metadata for MCP clients

Setup

1. Install dependencies

cd /path/to/monarch-mcp
uv sync

2. Configure your MCP client

Add to your .mcp.json (Claude Desktop, Claude Code, etc.):

{
  "mcpServers": {
    "monarch-money": {
      "command": "/path/to/uv",
      "args": [
        "--directory",
        "/path/to/monarch-mcp",
        "run",
        "python",
        "server.py"
      ],
      "env": {
        "MONARCH_EMAIL": "your-email@example.com",
        "MONARCH_PASSWORD": "your-password",
        "MONARCH_MFA_SECRET": "your-mfa-secret-key"
      }
    }
  }
}

Use absolute paths — find yours with which uv and pwd.

3. Get your MFA secret

  1. Go to Monarch Money settings and enable 2FA
  2. When shown the QR code, look for "Can't scan?" or "Enter manually"
  3. Copy the secret key (a string like T5SPVJIBRNPNNINFSH5W7RFVF2XYADYX)
  4. Use this as your MONARCH_MFA_SECRET

Tools

ToolDescription
get_accountsList accounts with balances
get_transactionsTransactions with date/account/category filtering
search_transactionsSearch by merchant name or keyword
get_transaction_categoriesCategory list (compact by default)
create_transactionCreate a manual transaction
update_transactionUpdate a single transaction
update_transactions_bulkUpdate multiple transactions in parallel
get_budgetsBudget data and spending analysis
get_cashflowIncome and expense analysis
get_account_holdingsInvestment holdings
get_account_historyAccount balance history
get_institutionsLinked financial institutions
get_recurring_transactionsRecurring transaction detection
set_budget_amountSet a budget category amount
create_manual_accountCreate a manually-tracked account
refresh_accountsTrigger account data refresh
get_complete_financial_overviewCombined 5-API call in parallel
analyze_spending_patternsMulti-month trend analysis
get_usage_analyticsTool usage stats and optimization tips

Transaction format

By default, transactions return a compact format with the fields that matter:

{
  "id": "123456789012345678",
  "date": "2025-03-15",
  "amount": -12.50,
  "merchant": "Corner Deli",
  "plaidName": "CORNER DELI NYC",
  "category": "Restaurants & Bars",
  "categoryId": "cat_001",
  "account": "Main Credit Card",
  "needsReview": true
}

pending and notes are included only when present. Set verbose=True on any tool for the full API response with all metadata.

Session management

Sessions are cached in a .mm directory for faster subsequent logins. If you hit auth issues:

  • Delete .mm/session.pickle to clear the cached session
  • Set MONARCH_FORCE_LOGIN=true in your env config to force a fresh login
  • Make sure your system clock is accurate (required for TOTP)

Development

Local setup

Create a .env file (git-ignored):

MONARCH_EMAIL="your-email@example.com"
MONARCH_PASSWORD="your-password"
MONARCH_MFA_SECRET="YOUR_TOTP_SECRET_KEY"

Tests

uv run pytest tests/ -v                          # unit tests (no creds needed)
uv run pytest tests/test_integration.py -v        # integration tests (needs .env)
uv run scripts/health_check.py                    # quick API connectivity check

CI checks

Run all checks locally (same as GitHub Actions CI):

uv run python scripts/ci.py

Log analysis

Tools for measuring and optimizing token usage across MCP sessions:

uv run scripts/analyze_logs.py                    # full report
uv run scripts/analyze_logs.py --json             # JSON output
uv run scripts/eval_session.py snapshot           # mark log position
# ... use tools in Claude ...
uv run scripts/eval_session.py analyze            # analyze new entries

Security

Warning: Monarch Money does not provide an official API. This server uses unofficial API access that requires your actual account credentials. Use with appropriate caution.

  • Your credentials have full account access — treat them like passwords
  • The MFA secret (TOTP key) provides ongoing access
  • Session files in .mm/ contain auth tokens — keep them secure
  • Never commit .env or .mcp.json files to version control
  • This is an unofficial API — Monarch Money could change or restrict access at any time

Credits

This project started as a fork of colvint/monarch-money-mcp by @colvint. Thanks for the original implementation!

Reviews

No reviews yet

Sign in to write a review