Monarch MCP Server

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

Local serverstdioPython

What is the Monarch MCP server?

Most developer tooling work still happens through a UI a human drives. Monarch MCP server moves it into the conversation instead. Access Monarch financial data — accounts, transactions, budgets, and more.

The short version

Originally forked from @colvint/monarch-money-mcp but has diverged into a full rewrite on a modern FastMCP architecture. It's grown from a handful of tools to a broad toolset — adding server-side transaction search, parallel bulk transaction updates, multi-month spending-pattern analysis with forecasting, and a single-call financial overview that fans out to five Monarch APIs at once. Responses are tuned hard for token efficiency: the default compact transaction format cuts payload size by ~80%, categories return just id+name unless you ask

  • Tools — covering accounts, transactions, budgets, cashflow, investments, categories, recurring transactions, and spending analysis
  • Structured output — — every tool returns a typed schema (outputSchema + machine-readable structured content) with a text fallback for older clients
  • MCP resources — for quick access to categories, accounts, and institutions, plus parameterized templates for per-account holdings and history (accounts://{account_id}/holdings|history)
  • MCP prompts — for guided financial analysis workflows, with live argument autocompletion
  • Smart output formatting — — compact transaction format reduces token usage by ~80%
  • Natural language dates — — "last month", "30 days ago", "this year" all work

The tools it exposes

The server publishes 14 tools. What each one is for:

  • get_accounts — List accounts with balances
  • get_transactions — Transactions with date/account/category filtering
  • search_transactions — Search by merchant name or keyword
  • get_transaction_categories — Category list (compact by default)
  • create_transaction — Create a manual transaction
  • update_transaction — Update a single transaction
  • update_transactions_bulk — Update multiple transactions in parallel
  • get_budgets — Budget data and spending analysis
  • get_cashflow — Income and expense analysis
  • get_account_holdings — Investment holdings for an account (requires account_id)
  • get_account_history — Account balance history
  • get_institutions — Linked financial institutions

What it needs from you

Configuration is passed through the environment: MONARCH_EMAIL, MONARCH_PASSWORD, MONARCH_MFA_SECRET, YOUR_TOTP_SECRET_KEY. Treat anything key-shaped as a real credential — scope it to the minimum the server needs, and rotate it if it ever lands in a shared config.

Getting it running

Installation goes through your MCP client rather than a global install: point it at monarch-mcp-jamiew on PyPI and it is fetched when the client starts. The copy-paste blocks for Claude Desktop, Claude Code and Cursor are further down this page.

How it compares

Plenty of developer tooling servers cover similar ground. The differences that matter in practice are scope of access and how much setup stands between you and a working tool call. Monarch's toolset — get_accounts, get_transactions, search_transactions and 11 more — is a fair guide to whether it matches your workflow. It is maintained by jamiew; worth a glance at recent repository activity before you build anything load-bearing on it.

SyncDev reviews every entry in this directory against the project's own documentation before publishing, and revisits them as servers change.

Things to watch

  • It runs with your machine's permissions. That is convenient and also the reason to think about what you point it at before you approve a tool call.
  • With 14 tools registered it takes up a noticeable share of the context window; turn it off in projects that never touch Monarch.
  • Missing credentials fail quietly in some clients — if no tools show up, check the environment block first.
  • Keep per-call confirmation enabled while you learn its behaviour; it is the cheapest safeguard you have.

Available tools

ToolWhat it does
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 for an account (requires account_id)
get_account_historyAccount balance history
get_institutionsLinked financial institutions
get_recurring_transactionsRecurring transaction detection
set_budget_amountSet a budget category amount

How to install the Monarch MCP server

{
  "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"
      }
    }
  }
}

Configuration as documented by the project. Restart the client after saving.

Configuration

VariableDescriptionRequired
MONARCH_EMAILConfiguration value read at startup.Optional
MONARCH_PASSWORDConfiguration value read at startup.Optional
MONARCH_MFA_SECRETCredential the server authenticates with.Yes
YOUR_TOTP_SECRET_KEYCredential the server authenticates with.Yes

Example prompts to try

  • Use Monarch to get accounts.
  • Use Monarch to get transactions.
  • Use Monarch to search transactions.

Frequently asked questions

It connects Monarch to MCP-compatible AI assistants such as Claude and Cursor, exposing 14 tools (get_accounts, get_transactions, search_transactions, and more) that the assistant can call on your behalf. Instead of copying data back and forth by hand, the assistant works with Monarch directly.