A Model Context Protocol (MCP) server that exposes Monarch Money financial data to AI assistants.
The Model Context Protocol is an open standard that enables AI assistants to securely connect to external data sources. With the Monarch MCP Server, you can ask your AI assistant things like:
- "Show me my spending on groceries this month"
- "Find all Amazon transactions and mark them as reviewed"
- "Split this transaction between Groceries and Household categories"
- "What are my current account balances?"
-
Install (includes CLI, MCP server, and admin tools):
pipx install git+https://github.com/krisrowe/monarch-access.git
-
Get your Monarch token (see README.md)
-
Register a local user for MCP:
monarch-admin connect local monarch-admin users add local --token $MONARCH_SESSION_TOKEN
claude mcp add --scope user monarch -- monarch-mcp stdio --user localgemini mcp add monarch -- monarch-mcp stdio --user local# Claude Code
claude mcp list
# Gemini CLI
gemini mcp list| Tool | Description |
|---|---|
list_accounts |
Get all financial accounts with balances |
list_categories |
Get all transaction categories |
list_transactions |
Query transactions with filters (date, account, category, search) |
get_transaction |
Get details of a single transaction |
update_transaction |
Update category, merchant, notes, or review status |
mark_transactions_reviewed |
Bulk mark transactions as reviewed |
split_transaction |
Split a transaction across multiple categories |
create_transaction |
Create a manual transaction |
delete_transaction |
Delete a transaction |
list_recurring |
List tracked recurring obligations (bills, subscriptions, loans) |
update_recurring |
Update a recurring stream's status, amount, or frequency |
mark_as_not_recurring |
Permanently remove a recurring stream (deprecated — use update_recurring) |
The MCP server uses mcp-app's user store. Register a local user with your Monarch token:
monarch-admin connect local
monarch-admin users add local --token $MONARCH_SESSION_TOKENTo update the token later:
monarch-admin connect local
monarch-admin users add local --token "NEW_TOKEN"See Cloud Deployment for deploying as an HTTP MCP server with multi-user support.
Token may have expired. Get a new one:
- Go to https://app.monarch.com/ and log in
- Open DevTools (F12) → Console
- Run:
JSON.parse(JSON.parse(localStorage.getItem("persist:root")).user).token - Save:
monarch-admin connect local && monarch-admin users add local --token $MONARCH_SESSION_TOKEN
Test the server directly:
monarch-mcp stdio --user localIf it exits with errors, check that:
- Dependencies are installed:
pipx reinstall monarch-access - A local user is registered:
monarch-admin connect local && monarch-admin users add local --token $MONARCH_SESSION_TOKEN
- Token storage: Never commit tokens to version control
- Local stdio: Runs locally under your user account; token stored in mcp-app's local user store
- Cloud HTTP: Tokens stored server-side; clients authenticate with JWTs issued by
monarch-admin - Token expiration: Monarch tokens expire periodically; update with
monarch-admin users add
- README.md - CLI usage and authentication
- CONTRIBUTING.md - Development setup
- MCP Specification - Official MCP docs