loading…
Search for a command to run...
loading…
Provides an MCP server for querying and managing Monarch Money personal finance data through a local SQLite mirror with read-only SQL access. It enables users t
Provides an MCP server for querying and managing Monarch Money personal finance data through a local SQLite mirror with read-only SQL access. It enables users to sync transaction history from the Monarch API and analyze accounts, categories, and tags.
MCP server for querying and managing Monarch Money personal finance data.
Provides read-only SQL access to your transactions via a local SQLite mirror, plus a refresh tool to sync from the Monarch API. Works with Claude Code, Claude Desktop, and any MCP-compatible client.
Most Monarch Money MCP servers are API passthroughs — each tool call hits the live Monarch API and returns the full response. This server takes a fundamentally different approach:
get_transactions(start_date, end_date, limit), you get query_transactions(sql) and can write any SELECT query: JOINs, CTEs, window functions, aggregations. The AI writes the query it needs, not the query a tool designer anticipated.node:sqlite, no compiled extensions. Just npm install and go.Trade-off: This server focuses on transaction analysis (read-only SQL). For budgets, investments, cashflow, or write operations, pair it with an API-passthrough MCP like robcerda/monarch-mcp-server.
node:sqlite)# 1. Clone and install
git clone https://github.com/sdeiley/monarch_mcp.git
cd monarch_mcp
npm install
# 2. Initialize data directory
node src/bin/cli.js init
# 3. Set your auth token
export MONARCH_TOKEN=<your-token>
# 4. Fetch your transactions
node src/bin/cli.js refresh
# 5. Start the MCP server
node src/bin/cli.js serve
You need a Monarch Money auth token. Options:
export MONARCH_TOKEN=<token>~/.monarch-token with contents: {"token": "<token>"}To get a token, log into app.monarch.com, open browser DevTools, and find the Authorization: Token <value> header on any GraphQL request.
Add to your .mcp.json (Claude Code, Dispatch):
{
"mcpServers": {
"monarch": {
"type": "stdio",
"command": "node",
"args": ["/path/to/monarch_mcp/src/bin/stdio.js"]
}
}
}
Or if installed globally:
{
"mcpServers": {
"monarch": {
"type": "stdio",
"command": "npx",
"args": ["monarch-mcp", "serve"]
}
}
}
The server exposes 4 read-only resources:
| Resource | Description |
|---|---|
monarch://schema |
Database schema and metadata |
monarch://accounts |
All accounts with transaction counts |
monarch://categories |
All categories with group/type |
monarch://tags |
Deduplicated, sorted tag list |
| Tool | Description |
|---|---|
query_transactions |
Execute read-only SQL (SELECT/WITH) against the transactions table |
refresh_transactions |
Refresh local DB from Monarch API (recent = 3 months, full = all history) |
id, amount, date, merchant_name, plaid_name, category_name, category_group, category_type, account_name, notes, tags, is_split, parent_id, pending, is_recurring
Amounts are negative for expenses, positive for income.
-- Spending by category this month
SELECT category_name, COUNT(*) AS n, ROUND(SUM(amount), 2) AS total
FROM transactions
WHERE date >= '2026-03-01' AND category_type = 'expense'
GROUP BY category_name ORDER BY total
-- Uncategorized transactions
SELECT date, merchant_name, amount FROM transactions
WHERE category_name = 'Uncategorized' AND date >= '2026-01-01'
-- Top merchants by spend
SELECT merchant_name, COUNT(*) AS n, ROUND(SUM(amount), 2) AS total
FROM transactions WHERE amount < 0
GROUP BY merchant_name ORDER BY total LIMIT 10
monarch-mcp init # Create ~/.monarch/ data directory
monarch-mcp refresh # Fetch recent transactions (3 months)
monarch-mcp refresh --full # Fetch all transaction history
monarch-mcp serve # Start stdio MCP server
monarch-mcp --help # Show help
| Variable | Description | Default |
|---|---|---|
MONARCH_TOKEN |
Auth token (required for refresh) | — |
MONARCH_DATA_DIR |
Data directory path | ~/.monarch |
npm test # Run all tests
node --test test/db.test.js # Run specific test file
MIT
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"monarch-mcp": {
"command": "npx",
"args": []
}
}
}Query your database in natural language
Read-only database access with schema inspection.
Interact with Redis key-value stores.
Database interaction and business intelligence capabilities.