Skip to content

Monarch Money (Live Sync)

If you have a Monarch Money subscription, Net Worth Navigator can pull your live account balances on each run. This requires the Monarch MCP Server installed on your system.

Best for: active Monarch Money subscribers who want automatic balance updates.

Don’t have Monarch yet? Use my referral link for 50% off your first year. It helps offset the token costs of building this thing.

The Monarch MCP Server is a Python program that connects to Monarch’s API and provides your account data. It’s called directly by Net Worth Navigator as a subprocess — no AI agent, local LLM, or orchestrator is needed.

The MCP server runs on Windows, Linux, and macOS — anywhere Python runs.

Terminal window
git clone https://github.com/robcerda/monarch-mcp-server.git /opt/monarch-mcp-server
cd /opt/monarch-mcp-server
uv run python login_setup.py # sends OTP to your email

Option 1 (Session cookies) is the recommended choice. After you select it, the script shows instructions for manually copying the cookie string from your browser’s DevTools:

  • 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 and find the cookie: header
  • Copy the full value (a long string of key=value; pairs)

Paste the cookie value when prompted. The script validates the session against Monarch’s API, then saves it securely to your system keyring. You should see ✅ Cookie login successful and a count of your accounts.

Option 2 (Email and password) is an alternative if the cookie method doesn’t work. It will prompt you for your Monarch email address and password. If you have multi-factor authentication (MFA) enabled, you’ll then be asked for a one-time code. After successful authentication, the script saves the session to your system keyring.

Follow the authentication flow (one-time step).

Don’t want to set up the MCP server? You can use CSV Import instead. Monarch lets you download your accounts as a CSV file from the Accounts page. The import method is simpler and doesn’t require any additional software. See CSV Import for details.

The project looks for the MCP server at the path you cloned it to. If you used the default path above (/opt/monarch-mcp-server on Linux/macOS or C:\monarch-mcp-server on Windows), the project finds it automatically. Otherwise, set the MONARCH_MCP_PATH environment variable:

Terminal window
export MONARCH_MCP_PATH=/path/to/your/monarch-mcp-server

In the Setup Panel’s Accounts tab, select Monarch (live/cached) as your data source. The system will fetch your account list and present them for classification.

Terminal window
.venv/bin/python run.py --scenario myplan

This fetches live balances from Monarch on each run.

Terminal window
.venv/bin/python run.py --scenario myplan --offline

Uses the cached balance file (output/balances_cache.json). No Monarch call needed.

Because Monarch pulls live data on each run, you can set up a scheduled task to run the projection once a month or once a quarter. The --offline flag uses cached Monarch balances, so no re-authentication is needed for routine runs.

Use a cron job to run the projection on a schedule. Open your crontab:

Terminal window
crontab -e

Add a line to run on the 1st of each month at 6 AM (adjust the path to match your installation):

Terminal window
0 6 1 * * cd /path/to/Net-Worth-Navigator && .venv/bin/python run.py --offline

This runs all scenarios using cached balances. To run a single scenario, add --scenario myplan.

How balance updates work: Live or cached Monarch balances are used as the starting point at your scenario’s configured start_year, regardless of when they were fetched. For best accuracy, set start_year close to the current date so the projection starts from where you actually are.

When you first connect Monarch, the system loads your accounts and presents them in the Setup Panel for classification. Each account needs:

  • Category — which bucket it belongs to (Cash, Taxable, Traditional IRA, Roth, Real Estate, Vehicle, Liability, Ignore)
  • Owner — which person the account belongs to (Person 1, Person 2, or joint)
  • Disabled — accounts you want to exclude from the projection

The disabled accounts list (disabled = [...]) keeps excluded accounts visible in case you want to re-enable them later.

If you stop using Monarch, switch your scenario’s data source to Manual entry or CSV Import in the Setup Panel. Your account classifications and scenario configuration are preserved.