loading…
Search for a command to run...
loading…
Read-only MCP server for the Monzo banking API (UK). OAuth with auto-refresh, local SQLite transaction cache, full-text search, and spending analysis with categ
Read-only MCP server for the Monzo banking API (UK). OAuth with auto-refresh, local SQLite transaction cache, full-text search, and spending analysis with category breakdowns.
CI License: GPL v3 Python 3.13+ Glama MCP Server
MCP server for the Monzo banking API. Read-only access to accounts, balances, pots, transactions, and spending analysis - all through Claude Code or any MCP client.
Unlike other Monzo MCP implementations that use raw bearer tokens (which expire in 6 hours), this server handles full OAuth with automatic token refresh.
| Tool | Description | Data source |
|---|---|---|
monzo_list_accounts |
List accounts with types and IDs | Live API |
monzo_get_balance |
Current balance and spend today | Live API |
monzo_list_pots |
Savings pots and balances | Live API |
monzo_sync |
Sync transactions to local cache | Live API -> SQLite |
monzo_list_transactions |
List/filter cached transactions | Local cache |
monzo_search_transactions |
Search by merchant/description/notes | Local cache |
monzo_spending |
Spending analysis with category breakdown | Local cache |
git clone https://github.com/partymola/monzo-mcp.git
cd monzo-mcp
uv venv --python 3.13 .venv
uv pip install -e .
Go to developers.monzo.com and create an OAuth client:
http://localhost:6600/callbackmonzo-mcp auth
This opens your browser for Monzo OAuth. After authorizing, approve the login in your Monzo app within 5 minutes for full transaction history access (Monzo's SCA window).
claude mcp add -s user monzo -- /path/to/monzo-mcp/.venv/bin/monzo-mcp
In Claude Code, run monzo_sync to populate the local transaction cache. Do this immediately after auth to take advantage of the SCA window (up to 11 months of history).
All configuration is via environment variables (optional):
| Variable | Default | Description |
|---|---|---|
MONZO_MCP_CONFIG_DIR |
<package>/config/ |
Directory for OAuth credentials and tokens |
MONZO_MCP_DB_PATH |
<package>/monzo.db |
Path to SQLite transaction cache |
Credential files (created by monzo-mcp auth):
config/monzo_client.json - OAuth client ID and secretconfig/monzo_tokens.json - Access and refresh tokens (auto-refreshed)Monzo's Strong Customer Authentication (SCA) limits transaction history access:
The local SQLite cache preserves all synced transactions permanently, so run monzo_sync promptly after monzo-mcp auth.
To backfill a specific range, pass since to monzo_sync - an ISO date (2026-01-01) or datetime (2026-01-01T14:30:00Z). It overrides the usual last-sync resumption and is passed straight to the Monzo API. Reaching back more than ~90 days only works inside the SCA window; outside it, the 90-day fallback applies.
config/ directory (gitignored)See CONTRIBUTING.md for development setup, the test workflow, and the pre-commit hook. Changes are tracked in CHANGELOG.md.
GPL-3.0-or-later. See LICENSE.
Run in your terminal:
claude mcp add partymola-monzo-mcp -- npx Query your database in natural language
by AnthropicA universal database MCP server supporting simultaneous connections to multiple databases. It provides tools for database operations, health analysis, SQL optim
by wenb1n-devRead-only database access with schema inspection.
by modelcontextprotocolInteract with Redis key-value stores.
by modelcontextprotocolNot sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All data MCPs