MCP server for Monarch Money β accounts, transactions, budgets, cashflow, investments, and more
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
A Model Context Protocol (MCP) server for integrating with the Monarch Money personal finance platform through Claude Desktop.
.mcpb), uvx, or pipTwo operating modes:
The server starts in read-only mode by default. Write tools are hidden and blocked until you explicitly opt in.
| Read-only (default) | Write mode | |
|---|---|---|
| View accounts, transactions, budgets | Yes | Yes |
| Analyze cashflow, spending, net worth | Yes | Yes |
| Create transactions, tags, categories, rules | No | Yes |
| Update accounts, budgets, splits | No | Yes |
| Delete transactions, tags, accounts | No | Yes |
Enables toggling write mode on/off directly from the Claude Desktop app.
.mcpb from Releases.mcpb fileTo enable write tools: Settings > Extensions > Monarch Money MCP Server > Configure β toggle "Enable write tools" and click Save.
Also works with Claude Desktop, but write mode cannot be toggled from the app β set it in the config instead.
Add to your MCP config file:
To enable write tools:
Contributors: See docs/releasing.md for the release process, version scheme, and pre-release testing via TestPyPI.
Add to your MCP config using the full path to your Python interpreter:
To enable write tools, add "--enable-write" to args.
Then add to your MCP config using the Python interpreter from your dev environment:
To enable write tools, add "--enable-write" to args.
Authentication happens automatically in your browser the first time the MCP server starts without a saved session.
Key details:
python login_setup.py in a terminal for headless environmentsFor technical details on the auth architecture, see docs/authentication.md.
| Tool | Description | Mode |
|---|---|---|
| Auth | ||
setup_authentication | Get setup instructions | read |
check_auth_status | Check authentication status | read |
debug_session_loading | Debug keyring issues | read |
| Accounts | ||
get_accounts | Get all financial accounts | read |
get_account_holdings | Get investment holdings | read |
get_account_history | Get historical balance data | read |
get_recent_account_balances | Get daily balances | read |
get_account_snapshots_by_type | Net worth by account type | read |
get_aggregate_snapshots | Daily aggregate net value | read |
get_institutions | Get connected institutions | read |
get_account_type_options | Get valid account types | read |
refresh_accounts | Request account data refresh | read |
create_manual_account | Create manual account | write |
update_account | Update account settings | write |
delete_account | Delete an account | write |
| Transactions | ||
get_transactions | Get transactions with filtering (date, account, category, tag, search, needs_review, and more) | read |
get_transaction_details | Get full transaction detail | read |
get_transactions_summary | Aggregate transaction stats | read |
get_transaction_splits | Get split information | read |
get_recurring_transactions | Get recurring transactions | read |
find_merchant_id_by_name | Search recent transactions for a merchant and return distinct IDs | read |
create_transaction | Create new transaction | write |
update_transaction | Update existing transaction (clear notes with clear_notes, unlink goal with clear_goal) | write |
delete_transaction | Delete a transaction | write |
update_transaction_splits | Create/modify/delete splits | write |
update_recurring_merchant | Mark/unmark a merchant as recurring, update its frequency/amount, or deactivate it β is_recurring is required on every call (requires --enable-write) | write |
| Tags | ||
get_transaction_tags | Get all tags | read |
create_transaction_tag | Create new tag | write |
delete_transaction_tag | Delete a tag | write |
set_transaction_tags | Set tags on a transaction | write |
| Categories | ||
get_transaction_categories | Get all categories | read |
get_transaction_category_groups | Get category groups | read |
create_transaction_category | Create a category | write |
delete_transaction_category | Delete a category | write |
| Rules | ||
get_transaction_rules | List every transaction rule with its criteria, actions, and recent application stats | read |
create_transaction_rule | Create a transaction rule with full criteria + actions (category, tags, merchant, amount, splitsβ¦) | write |
update_transaction_rule | Update a rule by id; merges overrides onto the current rule (handles Monarch's REPLACE semantics) | write |
delete_transaction_rule | Delete a rule by ID | write |
| Budgets & Cashflow | ||
get_budgets | Get budget information | read |
get_cashflow | Get cashflow analysis | read |
get_cashflow_summary | Get cashflow summary | read |
set_budget_amount | Set budget for category | write |
| Other | ||
get_subscription_details | Get subscription status | read |
get_credit_history | Get credit score history | read |
This project has two complementary test surfaces:
1. Mocked unit tests (the quality gate) β fast, offline, no Monarch connection. These run in CI and must stay green:
The Monarch client is mocked, so these never touch a real account. Live e2e tests (below) are deselected by default.
2. Live end-to-end (e2e) integration tests β exercise the MCP tools against a real Monarch account to verify they handle the live API robustly (adversarial/edge inputs, server-side error paths). They are opt-in and never run in CI:
Prerequisites: a stored keyring token (run python login_setup.py once), or MONARCH_EMAIL /
MONARCH_PASSWORD in the environment. Without these, the suite skips. The tests create and delete
data prefixed with MCP-Test- and self-clean (a post-suite sweep removes any residue). See
tests/integration/README.md for details and safety notes.
There is also a separate agent test skill (
.claude/skills/test-monarch-mcp/) that drives an AI agent to verify it calls the tools correctly β distinct from the two pytest suites above.
Forked from @robcerda's monarch-mcp-server, maintained by vargahis.
Built on the monarchmoneycommunity Python library.
Thanks to:
MIT License
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/monarch-money)<a href="https://allmcps.com/mcp/monarch-money"><img src="https://allmcps.com/api/badge/monarch-money?style=directory" alt="Monarch Money on AllMCPs" /></a>