by robcerda
MCP Server for use with Monarch Money
# Add to your Claude Code skills
git clone https://github.com/robcerda/monarch-mcp-serverA Model Context Protocol (MCP) server for integrating with the Monarch Money personal finance platform. This server provides seamless access to your financial accounts, transactions, budgets, and analytics through Claude Desktop and Claude Code.
My MonarchMoney referral: https://www.monarchmoney.com/referral/ufmn0r83yf?r_source=share
Built with the MonarchMoneyCommunity Python library - An actively maintained community fork of the Monarch Money API with full MFA support.
Clone this repository:
git clone https://github.com/robcerda/monarch-mcp-server.git
cd monarch-mcp-server
Install dependencies:
Using pip:
pip install -r requirements.txt
pip install -e .
Using uv (alternative):
uv sync
Configure Claude Desktop: Add this to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"Monarch Money": {
"command": "/opt/homebrew/bin/uv",
"args": [
"run",
"--with",
"mcp[cli]",
"--with-editable",
"/path/to/your/monarch-mcp-server",
"mcp",
"run",
"/path/to/your/monarch-mcp-server/src/monarch_mcp_server/server.py"
]
}
}
}
No comments yet. Be the first to share your thoughts!
Important: Replace /path/to/your/monarch-mcp-server with your actual path!
Restart Claude Desktop
OR
Configure Claude Code (CLI): Add this to your Claude Code configuration file:
Global (all projects):
macOS/Linux: ~/.claude.json
Windows: %USERPROFILE%\.claude.json
{
"mcpServers": {
"Monarch Money": {
"command": "/opt/homebrew/bin/uv",
"args": [
"run",
"--with",
"mcp[cli]",
"--with-editable",
"/path/to/your/monarch-mcp-server",
"mcp",
"run",
"/path/to/your/monarch-mcp-server/src/monarch_mcp_server/server.py"
]
}
}
}
Project-level (specific directory):
Create .mcp.json in your project directory:
{
"Monarch Money": {
"command": "/opt/homebrew/bin/uv",
"args": [
"run",
"--with",
"mcp[cli]",
"--with-editable",
"/path/to/your/monarch-mcp-server",
"mcp",
"run",
"/path/to/your/monarch-mcp-server/src/monarch_mcp_server/server.py"
]
}
}
If installed via pip instead of uv, use:
{
"command": "python",
"args": ["/path/to/your/monarch-mcp-server/src/monarch_mcp_server/server.py"]
}
Important: Replace /path/to/your/monarch-mcp-server with your actual path!
Restart Claude Code
Important: For security and MFA support, authentication is done outside of Claude.
Open Terminal and run:
Using python:
cd /path/to/your/monarch-mcp-server
python login_setup.py
Using uv:
cd /path/to/your/monarch-mcp-server
uv run python login_setup.py
Follow the prompts:
Once authenticated, use these tools directly in Claude Desktop or Claude Code:
get_accounts - View all your financial accountsget_transactions - Recent transactions with filteringget_budgets - Budget information and spendingget_cashflow - Income/expense analysis| Tool | Description | Parameters |
|------|-------------|------------|
| setup_authentication | Get setup instructions | None |
| check_auth_status | Check authentication status | None |
| get_accounts | Get all financial accounts | None |
| get_transactions | Get transactions with filtering | limit, offset, start_date, end_date, account_id |
| get_budgets | Get budget information | None |
| get_cashflow | Get cashflow analysis | start_date, end_date |
| get_account_holdings | Get investment holdings | account_id |
| create_transaction | Create new transaction | account_id, amount, description, date, category_id, merchant_name |
| update_transaction | Update existing transaction | transaction_id, amount, description, category_id, date |
| refresh_accounts | Request account data refresh | None |
Use get_accounts to show me all my financial accounts
Show me my last 50 transactions using get_transactions with limit 50
Use get_budgets to show my current budget status
Get my cashflow for the last 3 months using get_cashflow
YYYY-MM-DD format (e.g., "2024-01-15")If you see "Authentication needed" errors:
cd /path/to/your/monarch-mcp-server && python login_setup.py (or uv run python login_setup.py)get_accountsSessions last for weeks, but if expired:
python login_setup.py (or uv run python login_setup.py)python login_setup.py (or uv run python login_setup.py)get_accounts to see valid account IDsmonarch-mcp-server/
โโโ src/monarch_mcp_server/
โ โโโ __init__.py
โ โโโ server.py # Main server implementation
โโโ login_setup.py # Authentication setup script
โโโ pyproject.toml # Project configuration
โโโ requirements.txt # Dependencies
โโโ README.md # This documentation
.mm/mm_session.pickleThis MCP server is built on top of the MonarchMoneyCommunity Python library, an actively maintained community fork of the original MonarchMoney library by @hammem. The community fork provides:
Thank you to @hammem for creating and maintaining this essential library!
MIT License
For issues:
check_auth_statuscd /path/to/your/monarch-mcp-server && python login_setup.pyTo update the server:
python login_setup.py