Monarch Money MCP Server
by mjstramel
README.md
# Monarch Money MCP Server
This project provides a Model Context Protocol (MCP) server for Monarch Money, allowing you to interact with your Monarch Money data using MCP-compatible clients (like Windsurf).
## Features
- Exposes Monarch Money API endpoints as MCP tools
- Tools for accounts, budgets, and transactions
- Input validation with Zod
- Logging to `dist/mcp-startup.log`
## Requirements
- Node.js 18+
- A Monarch Money API token ([see here](https://github.com/pbassham/monarch-money-api#usage))
## Setup
1. **Clone the repository:**
```sh
git clone git@github.com:mjstramel/monarch-money-mcp.git
cd monarch-money-mcp
```
2. **Install dependencies:**
```sh
npm install
```
3. **Set your Monarch Money token:**
```sh
export MONARCH_TOKEN=your_token_here
```
4. **Build and run:**
```sh
npm run build
npm start
```
## Project Structure
- `src/index.ts` — Main MCP server entry point
- `src/operations/monarch.ts` — Monarch Money API wrappers and Zod schemas
## Add to cursor
```json
{
"mcpServers": {
"monarch-money": {
"command": "node",
"args": ["<path-to-mcp-server>/dist/index.js"],
"env": {
"MONARCH_TOKEN": "<YOUR_TOKEN>"
}
}
}
}
```
## Adding More Tools
To add more Monarch Money API endpoints, expand `src/operations/monarch.ts` and register new tools in `src/index.ts`.
## License
Proprietary / Private
TDQS
C2.1/5.0
Scored across 6 tools
Disambiguation5/5
Each tool targets a distinct action and resource (account, transaction, budget, category). The names clearly differentiate them, with no overlap in purpose.
Naming Consistency5/5
All tools follow a consistent verb_noun pattern using snake_case (e.g., get_accounts, create_transaction). The naming is uniform and predictable.
Tool Count5/5
With 6 tools, the server is well-scoped for a personal finance domain, covering essential reads and writes without unnecessary bloat.
Completeness3/5
The set covers creating accounts and transactions and retrieving key data, but lacks update/delete operations for accounts and transactions, which are notable gaps for full lifecycle management.
Maintenance
ActivityInactive
ResponsivenessNo issues