by robcerda
MCP Server for use with Monarch Money
# Add to your Claude Code skills
git clone https://github.com/robcerda/monarch-mcp-serverGuides for using mcp servers skills like monarch-mcp-server.
Last scanned: 5/30/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-05-30T15:28:11.960Z",
"npmAuditRan": true,
"pipAuditRan": false
}monarch-mcp-server is an open-source mcp servers skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by robcerda. MCP Server for use with Monarch Money. It has 364 GitHub stars.
Yes. monarch-mcp-server passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/robcerda/monarch-mcp-server" and add it to your Claude Code skills directory (see the Installation section above).
monarch-mcp-server is primarily written in Python. It is open-source under robcerda on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other MCP Servers skills you can browse and compare side by side. Open the MCP Servers category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh monarch-mcp-server against similar tools.
No comments yet. Be the first to share your thoughts!
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
A Model Context Protocol (MCP) server for integrating with the Monarch Money personal finance platform. This server provides seamless access to your financial accounts, transactions, budgets, and analytics through Claude Desktop and Claude Code.
My MonarchMoney referral: https://www.monarchmoney.com/referral/ufmn0r83yf?r_source=share
Built with the MonarchMoneyCommunity Python library - An actively maintained community fork of the Monarch Money API with full MFA support.
Clone this repository:
git clone https://github.com/robcerda/monarch-mcp-server.git
cd monarch-mcp-server
Install dependencies:
Using uv (recommended):
uv sync --locked
--locked installs exactly what uv.lock pins, verified against the
hashes it records, and refuses to re-resolve. Without it, uv sync is free
to pick up whatever versions happen to satisfy the ranges today.
Using pip:
pip install -r requirements-lock.txt --require-hashes
pip install -e . --no-deps
requirements-lock.txt is generated from uv.lock and pins every transitive
dependency with hashes, so --require-hashes gives the pip path the same
guarantee as the uv one. --no-deps on the second command stops pip
re-resolving what the first command just pinned.
pip install -r requirements.txt still works and installs exactly the same
set. That file is now a one line include of requirements-lock.txt, kept so
existing setups and scripts do not break. The pins moved out of it because a
root requirements.txt gets resolved as an independent manifest, which had
started producing a pinned set that disagreed with uv.lock.
Configure Claude Desktop: Add this to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"Monarch Money": {
"command": "/opt/homebrew/bin/uv",
"args": [
"run",
"--locked",
"--project",
"/path/to/your/monarch-mcp-server",
"monarch-mcp-server"
]
}
}
}
Important: Replace /path/to/your/monarch-mcp-server with your actual path!
uv run --locked --project resolves dependencies from the repo's
uv.lock, and monarch-mcp-server is the console script declared in
pyproject.toml. --locked matters: without it, a lockfile that has
drifted from pyproject.toml is silently re-resolved against PyPI and the
recorded hashes stop being enforced. With it, drift is a startup error.
Earlier versions of this README used uv run --with 'mcp[cli]', which
builds a fresh unpinned environment on every launch and silently picks up
whatever the newest release happens to be. That is what broke every install
when the MCP SDK published 2.0, and the client only reported it as the
server disconnecting. Pinning the launch to the lockfile means a new
upstream release cannot change what your server runs.
Restart Claude Desktop
OR
Configure Claude Code (CLI): Add this to your Claude Code configuration file:
Global (all projects):
macOS/Linux: ~/.claude.json
Windows: %USERPROFILE%\.claude.json
{
"mcpServers": {
"Monarch Money": {
"command": "/opt/homebrew/bin/uv",
"args": [
"run",
"--locked",
"--project",
"/path/to/your/monarch-mcp-server",
"monarch-mcp-server"
]
}
}
}
Project-level (specific directory):
Create .mcp.json in your project directory:
{
"Monarch Money": {
"command": "/opt/homebrew/bin/uv",
"args": [
"run",
"--locked",
"--project",
"/path/to/your/monarch-mcp-server",
"monarch-mcp-server"
]
}
}
If installed via pip instead of uv, use:
{
"command": "python",
"args": ["/path/to/your/monarch-mcp-server/src/monarch_mcp_server/server.py"]
}
Important: Replace /path/to/your/monarch-mcp-server with your actual path!
Restart Claude Code
Important: For security and MFA support, authentication is done outside of Claude.
Open a terminal and run:
cd /path/to/your/monarch-mcp-server
uv run python login_setup.py # or: python login_setup.py
The script offers three login paths:
Long-lived sessions, supports SSO accounts, and sidesteps Cloudflare CAPTCHA gates on programmatic login. Steps:
Log in to https://app.monarch.com in Chrome or Firefox.
Open DevTools (F12) → Network tab.
Click any request whose Name starts with graphql (or any request to api.monarch.com).
Scroll to Request Headers, find the cookie: header, and copy the full value.
Save it to the cookie file for your platform (recommended), then re-run the script — it reads the file automatically:
macOS / Linux — ~/.config/monarch-mcp/cookie.txt (respects $XDG_CONFIG_HOME):
mkdir -p ~/.config/monarch-mcp
# paste the cookie value into the file with your editor, then:
chmod 600 ~/.config/monarch-mcp/cookie.txt
Windows — %APPDATA%\monarch-mcp\cookie.txt:
New-Item -ItemType Directory -Force "$env:APPDATA\monarch-mcp" | Out-Null
notepad "$env:APPDATA\monarch-mcp\cookie.txt" # paste the cookie value, save, close
Files under your user profile are already ACL-restricted to your account on Windows; no chmod equivalent is needed for typical single-user machines.
To use a different location on any platform, set the MONARCH_MCP_COOKIE_FILE environment variable to the full path.
Alternatively, paste the value at the interactive prompt — but note that
POSIX terminals silently truncate pasted input at the canonical-mode
buffer limit (MAX_CANON, 1024 bytes on macOS/Linux), and real Monarch
cookie headers are usually longer than that, so the prompt path fails
with a confusing auth error for most users. The cookie file has no
length limit and survives repo updates.
The script verifies the cookies against the live API before saving them to your system keyring. The cookie file is only read at setup time; the running MCP server uses the keyring session.
Standard interactive login. The script handles:
The resulting long-lived session token is saved to your system keyring.
Kept for users with an existing token captured before the May 2026 API change. Monarch may no longer accept token-only auth on the GraphQL endpoint; if the verification call returns 401, fall back to option 1.
Once authenticated, use these tools directly in Claude Desktop or Claude Code:
get_accounts - View all your financial accountsget_transactions - Recent transactions with filteringget_budgets - Budget information and spendingget_cashflow - Income/expense analysis