Self-hosted · Model Context Protocol

Monarch Money for your AI assistant.

Search and bulk-edit transactions, compare spending across months, and get a financial overview in one call.

Accounts & investments Transaction search Spending analysis Budgets & cashflow Splits & recurring schedules Bulk edits

Run the PyPI release without cloning: uvx monarch-mcp-jamiew

Uses unofficial API access with full account access, including writes. Runs locally; requested data goes to your MCP client. Protect credentials, session tokens, and logs.

28 tools in the source checkout·Structured output·Read and write access

Capabilities

What this fork adds

Search, bulk edits, spending analysis, splits, and recurring tools beyond the original server. Unlike the original and the enhanced Python fork, it also offers the MCP features below. Other forks overlap on financial tools.

Structured output

Typed results with outputSchema and a text fallback for older clients.

Resources & templates

Accounts, categories, and institutions as resources, with per-account holdings and history templates.

Guided prompts

Spending analysis, budget review, financial health, and categorization prompts with argument completion.

Natural-language dates

Use dates such as "last month", "30 days ago", and "this year".

Tool annotations

Read/write labels help clients distinguish queries from changes. They are not access controls.

Performance

Less data to process

Compact records and combined queries

Compact output

Compact transactions and categories by default. Set verbose=True for full details.

One-call overview

get_complete_financial_overview combines accounts, budgets, cashflow, transactions, and categories. Batch analysis reports progress.

Reference

Available tools

These tools are included in 0.5.2. Run uvx monarch-mcp-jamiew through your MCP client.

Accounts & Transactions

get_accounts
List financial accounts with balances.
get_transactions
Filter transactions by date, account, category, or pending/posted status.
Key features
  • Natural language dates: "last month", "30 days ago", "this year"
  • Compact records by default; verbose mode for full details
  • Pagination with limit and offset
get_budgets
Get budget data and spending limits.
get_cashflow
Get income and expense totals.
get_transaction_categories
List transaction categories.
get_transaction_rules
Read compact rules, criteria, and actions in priority order, 25 per page. Use next_offset to continue or verbose=True for full details.
get_household_members
List household members and IDs for ownership updates.

Search & Edits

search_transactions
Search by merchant or keyword, optionally pending/posted only.
create_transaction
Create a manual transaction.
update_transaction
Update transaction fields or assign an owner. Empty owner_user_id sets Shared; omitted/null preserves ownership.
update_transactions_bulk
Update fields or owners in parallel, with per-item success/failure.
get_transaction_splits
Read a transaction's splits.
update_transaction_splits
Replace all splits on a transaction. An empty list removes them.
create_transaction_rule
Make a rule that looks for a merchant, statement text, or amount, then sets a category, merchant name, tags, or review status. It can also update past transactions.
update_transaction_rule
Change a rule. Anything you leave out stays the same. It can also update past transactions.
delete_transaction_rule
Delete a rule. Transactions it already changed stay as they are.

Investment & Banking

get_account_holdings
Get investment holdings for an account (requires account_id).
get_all_holdings
Get holdings grouped by brokerage account, excluding other account types.
get_account_history
Page through balance history with inclusive ISO date bounds applied before paging. Defaults to 100 snapshots; use next_offset to continue.
get_institutions
List linked financial institutions.
refresh_accounts
Request a refresh of account data from financial institutions.

Planning & Budgets

get_recurring_transactions
Forecast scheduled occurrences, not payment status. Date filters accept ISO or natural language; no dates selects this month, and one date fills the missing bound. Use get_transactions(is_recurring=True) for posted history. Do not count forecasts and matched transactions twice; isPast does not mean paid.
update_recurring_transaction
Edit a merchant-wide schedule. Use stream.merchant.id and the current merchant name. Omitted settings stay unchanged; use Monarch's frequency and signed amount. This does not cancel subscriptions, move money, or create posted transactions.
set_budget_amount
Set a budget category amount.
create_manual_account
Create a manually tracked account for cash or assets.

Spending Analysis

get_spending_summary
Get spending summaries grouped by category, account, or month.
get_complete_financial_overview
Get compact financial summaries. Set verbose=True for full sections. Transaction samples are capped at 500; check batch_metadata.transactions_truncated.
Combines 5 API calls
  • All accounts with current balances
  • Transaction totals for the period's sample
  • Budget status and performance
  • Cashflow analysis (income vs expenses)
  • Transaction and category details in verbose mode
analyze_spending_patterns
Summarize monthly spending with optional forecasts and explicit upstream errors. Transaction samples are capped at 2,000; check batch_metadata.transactions_truncated.
Includes
  • Monthly spending trends by category
  • Account usage patterns
  • Compact budget totals; full details with verbose=True
  • Average-based spending forecasts (optional)
Setup

Install the server

Run uvx monarch-mcp-jamiew through your local stdio MCP client

Install uv. Provide your Monarch email and password, plus MONARCH_MFA_SECRET for TOTP-based 2FA.

01 Claude Desktop

Add the monarch-money entry below to mcpServers in claude_desktop_config.json (~/Library/Application Support/Claude/ on macOS, %APPDATA%\Claude\ on Windows), then restart Claude:

{
  "mcpServers": {
    "monarch-money": {
      "command": "uvx",
      "args": ["monarch-mcp-jamiew"],
      "env": {
        "MONARCH_EMAIL": "your-email@example.com",
        "MONARCH_PASSWORD": "your-password",
        "MONARCH_MFA_SECRET": "your-mfa-secret-key"
      }
    }
  }
}
02 Claude Code
claude mcp add monarch-money \
  -e MONARCH_EMAIL=your-email@example.com \
  -e MONARCH_PASSWORD=your-password \
  -e MONARCH_MFA_SECRET=your-mfa-secret-key \
  -- uvx monarch-mcp-jamiew
03 Codex CLI
codex mcp add monarch-money \
  --env MONARCH_EMAIL=your-email@example.com \
  --env MONARCH_PASSWORD=your-password \
  --env MONARCH_MFA_SECRET=your-mfa-secret-key \
  -- uvx monarch-mcp-jamiew
04 Everything else

Use your client's local stdio setup. The CLI examples above can save credentials in shell history; edit a protected config file directly to avoid that.

  • .mcp.json: save the standard config in your project root for Claude Code's project scope. Do not commit credentials.
  • OpenClaw: add the server to ~/.openclaw/openclaw.json under mcpServers, then restart the gateway.
  • Hermes: configure ~/.hermes/config.yaml under mcp_servers: in YAML, then run /reload-mcp. See the README example.
  • Cursor · VS Code · Windsurf · Cline · Zed: follow the client's instructions for the command, arguments, and environment variables. Config keys and file locations differ.
Stuck? Ask your agent

"Install the Monarch Money MCP server from github.com/jamiew/monarch-mcp. The PyPI package runs via uvx monarch-mcp-jamiew and needs MONARCH_EMAIL, MONARCH_PASSWORD, and MONARCH_MFA_SECRET for TOTP-based 2FA."

🔑 Getting your MFA secret

1. Enable 2FA in Monarch Money settings
2. Click "Can't scan?" when shown the QR code
3. Copy the TOTP secret key, not the rotating six-digit code
4. Use this as your MONARCH_MFA_SECRET

05 Talk to your assistant

Example prompts after setup:

"Show me my account balances"
"Get all transactions from last month"
"Analyze my spending patterns for the last 3 months"
"What's my complete financial overview for this quarter?"
Acknowledgements

Credits

Built on open source tools

MCP Server

Author: Jamie Dubs  ·  @jamiew

FastMCP rewrite of @colvint's server, with analysis tools and structured output.

View repository →

MonarchMoney Library

Author: @bradleyseanf

The monarchmoneycommunity fork that provides API access to Monarch Money, descended from @hammem's original library.

View library →

Model Context Protocol

By: Anthropic

Open protocol for connecting AI assistants to external data sources.

Learn more →

Monarch Money

Service: Financial management

Platform for tracking accounts, budgets, and investments.

Visit Monarch Money →