Access Monarch financial data — accounts, transactions, budgets, and more
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.
cd /path/to/monarch-mcp
uv syncAdd 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.
T5SPVJIBRNPNNINFSH5W7RFVF2XYADYX)MONARCH_MFA_SECRET| Tool | Description |
|---|---|
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 |
get_account_history | Account balance history |
get_institutions | Linked financial institutions |
get_recurring_transactions | Recurring transaction detection |
set_budget_amount | Set a budget category amount |
create_manual_account | Create a manually-tracked account |
refresh_accounts | Trigger account data refresh |
get_complete_financial_overview | Combined 5-API call in parallel |
analyze_spending_patterns | Multi-month trend analysis |
get_usage_analytics | Tool usage stats and optimization tips |
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.
Sessions are cached in a .mm directory for faster subsequent logins. If you hit auth issues:
.mm/session.pickle to clear the cached sessionMONARCH_FORCE_LOGIN=true in your env config to force a fresh loginCreate a .env file (git-ignored):
MONARCH_EMAIL="your-email@example.com"
MONARCH_PASSWORD="your-password"
MONARCH_MFA_SECRET="YOUR_TOTP_SECRET_KEY"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 checkRun all checks locally (same as GitHub Actions CI):
uv run python scripts/ci.pyTools 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 entriesWarning: Monarch Money does not provide an official API. This server uses unofficial API access that requires your actual account credentials. Use with appropriate caution.
.mm/ contain auth tokens — keep them secure.env or .mcp.json files to version controlThis project started as a fork of colvint/monarch-money-mcp by @colvint. Thanks for the original implementation!