MCP server providing read-only access to Monarch Money financial data, enabling AI assistants to analyze transactions, budgets, accounts, and cashflow data with MFA support.
A Model Context Protocol (MCP) server that provides read-only access to Monarch Money financial data. This allows AI assistants like Claude Desktop to analyze your financial information, transactions, budgets, and cashflow data.
Note: I've created this for personal fun and is not affiated with Monarch Money. I mostly created it for learning about my spending, using it for projections. Since I don't have any need to mutate any data it's currently READONLY.
Shout out to
Clone the repository:
Install dependencies:
uv add mcp monarchmoney python-dotenv
Configure environment variables:
cp .env.example .env
Edit .env
with your Monarch Money credentials:
[email protected]
MONARCH_PASSWORD=your-monarch-password
MONARCH_MFA_SECRET=your-mfa-secret-key # Optional but recommended
Test the connection:
python test_api.py
Start the MCP server:
python run_server.py
Add to your Claude Desktop configuration (claude_desktop_config.json
):
{
"mcpServers": {
"monarch-money": {
"command": "python",
"args": ["/path/to/monarch-mcp-server/run_server.py"],
"env": {
"MONARCH_EMAIL": "[email protected]",
"MONARCH_PASSWORD": "your-password",
"MONARCH_MFA_SECRET": "your-mfa-secret"
}
}
}
}
monarch://accounts
- All linked accountsmonarch://transactions/recent
- Last 100 transactionsmonarch://budgets
- Budget information with actual vs targetmonarch://cashflow/summary
- Income, expenses, and savings summaryOnce configured with Claude Desktop, you can ask:
Run the debug script:
python debug_server.py
Check environment variables:
python -c "import os; print('Email:', bool(os.getenv('MONARCH_EMAIL'))); print('Password:', bool(os.getenv('MONARCH_PASSWORD')))"
Clear session cache:
rm -rf .mm/
MONARCH_MFA_SECRET
environment variable.mm/
directory to force fresh loginuv add
monarch-mcp-server/
├── monarch_mcp_server.py # Main MCP server implementation
├── run_server.py # Server launcher script
├── debug_server.py # Authentication debugging
├── test_api.py # API connection testing
├── tests/ # Unit tests
│ ├── __init__.py
│ └── test_monarch_mcp_server.py
├── pyproject.toml # Project dependencies
├── .github/workflows/ # CI/CD workflows
└── .env.example # Environment template
Install test dependencies:
uv sync --extra test
Run the unit test suite:
uv run pytest tests/ -v
Run tests with coverage:
uv run pytest tests/ --cov=monarch_mcp_server --cov-report=term
Run manual API test:
python test_api.py
MIT License - see LICENSE file for details.
This project is not affiliated with Monarch Money. Use at your own risk and ensure compliance with Monarch Money's terms of service.