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'
Add this skill
npx mdskills install carsol/monarch-mcp-serverComprehensive read-only financial data access with excellent setup docs and clear tool descriptions
1# Monarch Money MCP Server23A 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.45Note: 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.67Shout out to89## Features1011- **Read-only access** to Monarch Money accounts12- **Transaction analysis** with date filtering and search13- **Budget tracking** and cashflow analysis14- **Account details** including investment holdings15- **Secure authentication** with MFA support16- **Session persistence** to minimize re-authentication1718## Installation1920### Prerequisites2122- Python 3.13+23- [uv](https://docs.astral.sh/uv/) package manager (recommended)24- A Monarch Money account2526### Setup27281. **Clone the repository:**29302. **Install dependencies:**31 ```bash32 uv add mcp monarchmoney python-dotenv33 ```34353. **Configure environment variables:**36 ```bash37 cp .env.example .env38 ```3940 Edit `.env` with your Monarch Money credentials:41 ```42 MONARCH_EMAIL=your-email@example.com43 MONARCH_PASSWORD=your-monarch-password44 MONARCH_MFA_SECRET=your-mfa-secret-key # Optional but recommended45 ```46474. **Test the connection:**48 ```bash49 python test_api.py50 ```5152## Usage5354### Running the Server5556Start the MCP server:57```bash58python run_server.py59```6061### Claude Desktop Integration6263Add to your Claude Desktop configuration (`claude_desktop_config.json`):6465```json66{67 "mcpServers": {68 "monarch-money": {69 "command": "python",70 "args": ["/path/to/monarch-mcp-server/run_server.py"],71 "env": {72 "MONARCH_EMAIL": "your-email@example.com",73 "MONARCH_PASSWORD": "your-password",74 "MONARCH_MFA_SECRET": "your-mfa-secret"75 }76 }77 }78}79```8081## Available Resources8283- `monarch://accounts` - All linked accounts84- `monarch://transactions/recent` - Last 100 transactions85- `monarch://budgets` - Budget information with actual vs target86- `monarch://cashflow/summary` - Income, expenses, and savings summary8788## Available Tools8990- **get_transactions** - Get transactions with date range filtering91- **get_account_details** - Detailed account information including holdings92- **get_cashflow_analysis** - Cashflow analysis by category and time period93- **search_transactions** - Search transactions by description or merchant94- **get_categories** - All transaction categories95- **get_institutions** - Linked financial institutions9697## Example Prompts9899Once configured with Claude Desktop, you can ask:100101- "Show me my recent transactions from last month"102- "What's my current budget status?"103- "Analyze my spending patterns by category"104- "How much did I spend on groceries this year?"105- "What are my investment account balances?"106107## Security108109- **No write operations** - Server is read-only for safety110- **Local credentials** - Your login details stay on your machine111- **Session caching** - Reduces authentication frequency112- **MFA support** - Two-factor authentication recommended113114## Troubleshooting115116### Authentication Issues1171181. **Run the debug script:**119 ```bash120 python debug_server.py121 ```1221232. **Check environment variables:**124 ```bash125 python -c "import os; print('Email:', bool(os.getenv('MONARCH_EMAIL'))); print('Password:', bool(os.getenv('MONARCH_PASSWORD')))"126 ```1271283. **Clear session cache:**129 ```bash130 rm -rf .mm/131 ```132133### Common Issues134135- **MFA required**: Set `MONARCH_MFA_SECRET` environment variable136- **Session expired**: Delete `.mm/` directory to force fresh login137- **Import errors**: Ensure all dependencies installed with `uv add`138139## Development140141### Project Structure142143```144monarch-mcp-server/145├── monarch_mcp_server.py # Main MCP server implementation146├── run_server.py # Server launcher script147├── debug_server.py # Authentication debugging148├── test_api.py # API connection testing149├── tests/ # Unit tests150│ ├── __init__.py151│ └── test_monarch_mcp_server.py152├── pyproject.toml # Project dependencies153├── .github/workflows/ # CI/CD workflows154└── .env.example # Environment template155```156157### Testing158159Install test dependencies:160```bash161uv sync --extra test162```163164Run the unit test suite:165```bash166uv run pytest tests/ -v167```168169Run tests with coverage:170```bash171uv run pytest tests/ --cov=monarch_mcp_server --cov-report=term172```173174Run manual API test:175```bash176python test_api.py177```178179## Contributing1801811. Fork the repository1822. Create a feature branch1833. Make your changes1844. Test thoroughly1855. Submit a pull request186187## License188189MIT License - see [LICENSE](LICENSE) file for details.190191## Disclaimer192193This project is not affiliated with Monarch Money. Use at your own risk and ensure compliance with Monarch Money's terms of service.194
Full transparency — inspect the skill content before installing.