rocketmoney-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@rocketmoney-mcpshow my current net worth and latest transactions"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
rocketmoney-mcp
A self-hosted Model Context Protocol server for Rocket Money. It lets an MCP client (Claude Desktop, claude.ai, etc.) browse your accounts, transactions, spending, budgets, net worth, and subscriptions so you can talk to an assistant about your finances - and make targeted edits (transaction notes and categories, recurring-charge corrections).
Reads are annotated readOnlyHint; the mutating tools are marked readOnlyHint: false,
and delete_subscription additionally carries destructiveHint. Start the server with
ROCKETMONEY_READ_ONLY=1 and the write tools are never registered at all, so a client
cannot reach them.
Security model, in one paragraph
Your Rocket Money session cookie is a live login to your finances. This server
holds it on disk and sends it only to Rocket Money's API, so run the server
yourself, on a machine you control, and put its /auth and /mcp endpoints
behind authentication. There is no hosted instance: nothing in this repo points
at a server the author operates, and the Chrome extension refuses to send the
cookie anywhere until you enter your own server's URL.
Related MCP server: Monarch Money MCP Server
Tools
Read
Tool | What it returns |
| Whether the Rocket Money session is authenticated |
| Every linked institution + account with current balance |
| One account's detail: balances, credit limit, liability/APRs, balance history |
| Net worth split into cash / savings / investments / debts, with trend |
| Investment holdings across the linked brokerage accounts |
| Manually-tracked assets and their current values |
| This month vs last month spend + earnings, by-category breakdown |
| Earnings and per-category spend across the last four months |
| Every recurring charge, active and inactive, with amount, cadence, account and last/next charge |
| One recurring charge in full, with 12 months of charge history |
| Upcoming charges in the next N days |
| Transactions by merchant text and/or date (incl. current note + category) |
| This month's transactions within one category |
| The full category catalog (default + custom) with labels + node ids |
Write (absent under ROCKETMONEY_READ_ONLY=1)
Tool | What it does |
| Set (or clear) one transaction's free-text note |
| Recategorize one transaction (accepts a category label, numeric id, or node id); optionally applies to all related transactions from the same merchant |
| Recategorize a list of transactions in one call |
| Set a manually-tracked asset's value |
| Correct a recurring charge's name, amount, cadence or dates |
| Tell Rocket Money a subscription it wrote off is still being charged |
| Remove a recurring charge from the list (not a cancellation) |
All amounts are in USD. To recategorize, call list_categories first to see valid
labels, then pass e.g. category: "Groceries" to set_transaction_category - the
server resolves the label to the right node id.
What you can and cannot change about a subscription
update_subscription takes only what you want changed and preserves the rest from a
fresh read, because Rocket Money's mutation replaces the whole record and requires the
name on every call.
Cadence is charges per year, not an interval: frequency: 12 is monthly, 1 is
annual, 2 is semi-annual. A subscription with no frequency at all reads as
irregular, which is what Rocket Money uses for usage-based charges.
You cannot mark a subscription cancelled or inactive. UpdateSubscriptionInput
accepts id, service_name, service_id, amount, frequency, start_date,
end_date, next_expected_date and service_type, and nothing else; active is not
among them. Rocket Money flips active itself when the charges stop. The API has
markSubscriptionActive for the opposite direction, and a deactivateManualSubscription
that only applies to hand-added subscriptions, so a charge Rocket Money detected from
transactions cannot be deactivated through the API at all. What is left is
delete_subscription, which takes the row off the list entirely.
end_date records the last charge that was seen. Setting it does not deactivate
anything.
The canSubmitCancellationRequest flag on each row is Rocket Money's own concierge
cancellation offer, surfaced read-only. The mutations behind it (requestCancelV3 and
friends) file a real cancellation with a real merchant and are deliberately not wired up
as tools.
Amazon enrichment (setting notes to the real item name + a fitting category, matched from Amazon order emails) used to live here as dedicated
amazon_sync_*tools plus an autonomous scheduler. That has moved out to the on-demandrocketmoney-amazon-syncskill, which drives the generic read/write tools above.
How auth works
Rocket Money has no third-party OAuth, so this server reuses your own web session.
You grab the tb.auth0.sid cookie from a logged-in app.rocketmoney.com browser tab
and paste it into the server's /auth page (or let the Chrome extension
push it to your server automatically). The server keeps a rotating cookie jar
(Rocket Money re-issues the cookie on every response, ~3h48m rolling TTL) persisted to
disk, and runs a keepalive loop. There is no offline refresh token, so when the session
eventually expires you re-paste a fresh cookie.
The cookie lives only on the machine running this server and is sent only to Rocket Money's own API.
Endpoints
Path | Purpose |
| MCP streamable-HTTP transport (stateless) |
| Paste-a-cookie session page |
| Session intake |
| Session intake for the Chrome extension |
| Health check |
Running locally
npm install
npm run build
ROCKETMONEY_STATE_DIR=./.state PORT=8080 node dist/index.js
# open http://localhost:8080/auth and paste your cookieEnvironment
Var | Default | Purpose |
|
| HTTP port |
|
| Where the rotating session is persisted |
| unset |
|
|
| Keepalive interval (2h) |
| captured default |
|
Deployment
Designed to run behind an authenticating gateway (e.g. a Cloudflare Access / OAuth
front door) so the /mcp and /auth endpoints are never exposed unauthenticated -
the server itself holds a live financial session and must not be publicly reachable.
Notes
If a tool returns
PersistedQueryNotFound, Rocket Money rotated a GraphQL query hash. This happens every few weeks, because a hash is tied to one build of RM's web bundle. The error names the page to re-capture from: open it with devtools recording, find theclient-api.rocketmoney.com/graphqlPOST whoseoperationNamematches, copyextensions.persistedQuery.sha256Hash, and updatePERSISTEDinsrc/rm/client.ts.Not affiliated with or endorsed by Rocket Money / Rocket Companies.
License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Query your real net worth, spending, transactions, budgets and portfolio from any MCP client.
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
Personal finance for AI agents — onboard, import statements, categorize & budget over MCP.
Chat with your bank data: balances, transactions, budgets, bills. Reads only, never moves money.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceAn MCP server that provides access to personal financial data from Monarch Money, allowing users to retrieve account information, transactions, budgets, goals, and net worth through natural language queries.15-
- FlicenseNot gradedqualityDmaintenanceAn MCP server that integrates with Monarch Money to provide financial data access and operations, including account management, transaction filtering, budget analysis, and goal tracking through natural language.-
- AlicenseCqualityBmaintenanceUnofficial MCP server for Monarch Money that exposes tools for managing accounts, transactions, budgets, and other financial data through natural language.1251MIT
- AlicenseAqualityDmaintenanceRead-only MCP and HTTP proxy server for accessing Monarch Money financial data, enabling transaction analysis, budget tracking, and cashflow insights through natural language.6MIT