Simplifi Local Read-Only MCP
Click on "Install 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., "@Simplifi Local Read-Only MCPsearch my transactions for groceries"
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.
Simplifi Local Read-Only MCP
An unofficial, local MCP server for exploring your Quicken Simplifi data with an MCP host such as Claude Desktop or Codex. It runs as a subprocess over stdio, keeps a SQLite cache on your machine, and exposes read-only finance tools.
This is designed for a single person analysing their own finances—not for hosting on the internet, sharing one account with other people, or letting an agent change financial records.
Quicken and Simplifi are trademarks of their respective owners. This project is independent and is not affiliated with, endorsed by, or supported by Quicken.
Why this exists
The original project this work builds on supported an HTTP service, downstream OAuth, and write operations. That is useful for a hosted application, but it is the wrong default for a personal finance assistant: it enlarges the attack surface and lets an accidental or adversarial prompt alter real records.
This version makes different choices:
Local only. It speaks JSON-RPC over stdin/stdout and opens no network listener. Your MCP host starts it as a local child process.
Read-only by construction. The source contains no transaction-update or categorisation tools, and the Simplifi client has no write request path.
Operator-only authentication. A single terminal command performs first login and handles MFA. MCP tools cannot trigger login, submit an MFA code, or wait for a TTY.
Local data ownership. Credentials, tokens, and cached transactions stay in your local
.envand SQLite cache. They are ignored by Git.Guardrails that run in CI. Tests enforce the read-only boundary, use only synthetic fixtures, block ambient network access, and scan committed content for common financial-data and credential mistakes.
These choices are deliberate tradeoffs. If you need a shared or hosted service, or need to edit transactions, this project is not the right tool.
Related MCP server: monzo-mcp
What it can do
All 17 MCP tools are reads. Nothing here can create, modify, or delete a record.
Accounts and balances
Tool | What it returns |
| Accounts with balances. |
| Current net worth from canonical signed account values. Returns every included account and every exclusion, so the total is traceable. Closed, ignored, and valueless accounts are excluded. |
Spending analysis
Tool | What it returns |
| Spending by category by calendar month, with the transaction ids behind every figure. Transfers, balance adjustments, investment activity, and future-dated projections are excluded and reported separately. Defaults to the last twelve months. |
| Money out, money in, and the net by month, with the transaction ids behind every figure. The average covers complete months only — a month still in progress is reported as incomplete and left out of it. |
| Recurring charges whose amount changed, largest rise first, with the transactions evidencing the old and new amounts. Groups outflows by merchant and infers cadence from spacing. Merchants that cost something different every time are listed separately rather than reported as changes. |
Bills and statements
Tool | What it returns |
| Credit accounts with a statement, soonest due first, with amount due, minimum payment, and anything past due. |
| Scheduled bills, subscriptions, and transfers due in a date range, soonest first. Omitting |
Transactions
Tool | What it returns |
| Cached transactions with optional filters and pagination. |
| Cached transactions matching text, with optional filters. |
| A single transaction by id, syncing on a cache miss. |
| Transactions that look uncategorized. |
Reference data
Tool | What it returns |
| Simplifi categories. |
| Simplifi tags. |
| Merchants (payee names) with frequency counts. |
| Likely categories for a merchant, based on your own transaction history. |
The server keeps an incremental local cache of accounts, transactions, categories, and tags. The first query that needs data performs a full sync; later queries use fresh cached data and sync as needed.
Every analysis tool returns the transaction ids behind its numbers, so any figure an assistant reports back to you can be checked against the source rows.
Requirements
Node.js 22 or newer
npm
A Quicken Simplifi account
Setup
1. Clone and build
git clone https://github.com/SudSampath/simplifi-local-readonly-mcp.git
cd simplifi-local-readonly-mcp
npm install
npm run buildThis project is distributed as source rather than a published package. That is deliberate: reading the code before handing it your banking credentials is a reasonable thing to want, and this is small enough to actually do it.
2. Create your .env
cp .env.example .envOn PowerShell, use Copy-Item .env.example .env.
Your .env and the SQLite cache both live in the repository directory. Set
SIMPLIFI_MCP_HOME to put them somewhere else — useful if you keep the checkout
on a synced drive and would rather your credentials and cached transactions were
not on it.
3. Fill in .env
Three values are yours and must be set:
Variable | Where it comes from |
| Your Simplifi login email |
| Your Simplifi password |
| See below — it is not shown anywhere in the Simplifi UI |
SIMPLIFI_CLIENT_ID and SIMPLIFI_CLIENT_SECRET are the Simplifi web
application's own public client credentials and are already filled in. They are
not personal to you.
SIMPLIFI_THREAT_METRIX_SESSION_ID is optional. If you leave it empty the
server generates a random session id per login, which is usually fine. Set it
only if authentication fails in a way that suggests device fingerprinting is
being rejected.
Finding your SIMPLIFI_DATASET_ID
Simplifi identifies your household's dataset with a header on every API call, and does not display it in the UI. To read it off a live session:
Sign in to https://simplifi.quicken.com in a desktop browser.
Open developer tools (
F12) and select the Network tab.Reload the page, then click any request to
services.quicken.com.In Request Headers, find
qcs-dataset-id. Its value — a long number — is your dataset id.
Paste it into .env as SIMPLIFI_DATASET_ID.
4. Authenticate once, in a terminal
npm run authIf Simplifi asks for MFA, enter the code at this prompt. The command stores access and refresh tokens in the local cache.
This is the only command that can log in. The MCP server uses stored tokens only — it never falls back to a password login and never prompts through stdio, so an unattended sync can't trigger an MFA request or a login attempt. If a token expires or is revoked, tools return an error telling you to run it again.
5. Connect your MCP host
The server runs as a local subprocess. Use an absolute path to
dist/index.js — relative paths will not resolve, because your MCP host does
not start in that directory.
Claude Desktop — edit claude_desktop_config.json
(macOS: ~/Library/Application Support/Claude/,
Windows: %APPDATA%\Claude\):
{
"mcpServers": {
"simplifi": {
"command": "node",
"args": ["/absolute/path/to/simplifi-local-readonly-mcp/dist/index.js"]
}
}
}Codex — add to ~/.codex/config.toml:
[mcp_servers.simplifi]
command = "node"
args = ["/absolute/path/to/simplifi-local-readonly-mcp/dist/index.js"]Restart the host. No URL, browser redirect, or server-side OAuth configuration is involved.
Troubleshooting
Symptom | Cause and fix |
Tools report expired or revoked credentials | Run |
| One process at a time may write the cache. Quit the MCP host (or the other terminal) and retry. |
Authentication fails repeatedly with valid credentials | Confirm |
Host shows no tools | Check the path in your host config is absolute, points at |
Config seems to be ignored | The server reads |
Empty or stale results | The first query performs a full sync and can take a while. Most tools accept |
Safety model
The important boundaries are tested rather than documented only:
Boundary | How it is enforced |
No record changes | Snapshot of registered MCP tools and an allowlist of Simplifi request methods/paths |
No login from MCP | Server-side token access cannot call the credential-login path |
No accidental network in tests | Global |
No real household data in tests | Synthetic-fixture and whole-tree privacy checks |
One process per cache | A local cache lease prevents competing MCP hosts or auth commands |
No software can guarantee the behavior of an upstream service or protect data
after you give another local process access to your account. Review the code,
protect .env and the cache file, and use this at your own risk.
Development
npm run typecheck
npm test -- --run
npm run buildThe repository uses Given/When/Then test names and expects every acceptance
criterion to have an executable assertion. Run npm run setup-hooks once to
enable the matching pre-commit checks locally.
Privacy when contributing
Never commit .env, SQLite caches, exports, screenshots, transaction samples,
or real merchant/institution names. Fixtures must be synthetic. The repository
includes a local-only institution-name scanner configuration template at
.secret-scan.local.example.json; copy it to the gitignored
.secret-scan.local.json and populate it only on your machine.
License and provenance
This project is based on krconv/quicken-simplifi-mcp and is released under the same MIT license, which is retained in full in LICENSE along with the original copyright attribution.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceProvides 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.1MIT
- AlicenseAqualityAmaintenanceProvides read-only access to Monzo banking accounts, balances, pots, and transactions with automatic OAuth token refresh and persistent local SQLite caching. Enables spending analysis with category breakdowns and transaction search across cached historical data beyond Monzo's 90-day access window.73GPL 3.0
- AlicenseNot gradedqualityDmaintenanceA local MCP server that provides read-only SQL access to financial accounts via Plaid, enabling natural language queries about transactions, balances, and holdings.MIT
- FlicenseNot gradedqualityCmaintenanceExposes personal-finance tools like accounts, transactions, spending analysis, budgets, bills, reminders, portfolio, and goals via MCP, enabling any MCP client to query financial data.
Related MCP Connectors
Hosted remote MCP server for YNAB on Cloudflare Workers with OAuth
UN FAOSTAT global food & agriculture statistics over a local SQLite mirror, via MCP.
Query SEC EDGAR filings, XBRL financials, and company data through MCP. STDIO & Streamable HTTP.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/SudSampath/simplifi-local-readonly-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server