monzo-mcp
Provides tools to interact with Monzo banking API, including listing accounts, retrieving balances, viewing transactions, managing pots, and annotating transactions.
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., "@monzo-mcp show my recent 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.
monzo-mcp
A TypeScript MCP server for interacting with the Monzo API from Claude Desktop or any other MCP client.
What is MCP?
MCP (Model Context Protocol) is an open standard that lets AI assistants discover and call tools exposed by local or remote servers. In this project, Claude Desktop launches a local Node.js process, sends JSON-RPC messages over standard input/output, and that process turns tool calls into HTTPS requests to Monzo.
+----------------+ JSON-RPC over stdio +----------------+ HTTPS +-----------+
| Claude Desktop | <---------------------------> | Monzo MCP | <------------> | Monzo API |
| (MCP client) | | Server | | |
+----------------+ +----------------+ +-----------+Related MCP server: monzo-mcp
Setup
Clone the repo.
Install dependencies:
npm installCreate a Monzo developer app at https://developers.monzo.com.
Set the redirect URI to
http://localhost:3000/callbackSet the client type to confidential
Copy
.env.exampleto.envand fill in your client ID and client secret.cp .env.example .envComplete the OAuth flow.
Visit this exact authorization URL after replacing
YOUR_CLIENT_ID:https://auth.monzo.com/?client_id=YOUR_CLIENT_ID&redirect_uri=http://localhost:3000/callback&response_type=code&state=random123Approve access in Monzo. Monzo redirects back to:
http://localhost:3000/callback?code=YOUR_AUTH_CODE&state=random123Copy the
codevalue and exchange it for tokens:curl --request POST https://api.monzo.com/oauth2/token \ --header 'Content-Type: application/x-www-form-urlencoded' \ --data-urlencode 'grant_type=authorization_code' \ --data-urlencode 'client_id=YOUR_CLIENT_ID' \ --data-urlencode 'client_secret=YOUR_CLIENT_SECRET' \ --data-urlencode 'redirect_uri=http://localhost:3000/callback' \ --data-urlencode 'code=YOUR_AUTH_CODE'Copy the returned
access_tokenandrefresh_tokeninto.env. The server will also persist refreshed tokens intotokens.jsonautomatically.
Building and running
Build the server:
npm run buildRun it manually if you want to test stdio startup:
npm startAdding to Claude Desktop
Add this to ~/Library/Application Support/Claude/claude_desktop_config.json on macOS:
{
"mcpServers": {
"monzo": {
"command": "node",
"args": [
"/absolute/path/to/monzo-mcp/dist/index.js"
]
}
}
}Replace /absolute/path/to/monzo-mcp/dist/index.js with your real path after building. The server reads .env from the repository root, so you can keep secrets out of the Claude Desktop config file.
Available tools
Tool | Description |
| List Monzo accounts available to the authenticated user. |
| Read the available balance, total balance, and today's spend for an account. |
| List transactions for an account with optional date filters and limit. |
| Fetch the full details for a specific transaction. |
| Add a note to a transaction's metadata. |
| Fetch up to 100 transactions and filter by merchant or description locally. |
| List pots linked to an account. |
| Move money from an account into a pot. |
| Move money from a pot back into an account. |
Security notes
OAuth tokens are stored in
tokens.json, which is gitignored.Never commit
.envor real tokens.This MCP server is intended to run locally on your machine.
For personal use, local disk token storage is standard; production deployments should use a proper secrets manager.
Available Tools
9 toolsannotate_transactionA
Add a note to a transaction's metadata
Inputs: notes (required), transaction_id (required).
deposit_to_potB
Move money from an account into a Monzo pot
Inputs: pot_id (required), account_id (required), amount_pounds (required).
get_balanceC
Get the balance for a Monzo account
Inputs: account_id (required).
get_transactionA
Get the full details of a specific Monzo transaction
Inputs: transaction_id (required).
list_accountsA
List Monzo accounts available to the user
Inputs: no named parameters.
list_potsB
List Monzo pots linked to an account
Inputs: account_id (required).
list_transactionsC
List recent transactions for an account
Inputs: account_id (required), limit, since, before.
search_transactionsA
Search transactions by merchant or description text
Inputs: query (required), account_id (required), since, before.
withdraw_from_potC
Move money from a Monzo pot back into an account
Inputs: pot_id (required), account_id (required), amount_pounds (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 9 tools
Most tools are clearly distinct: accounts, balances, transactions, and pots each have separate operations. The only minor overlap is between list_transactions and search_transactions, though the search tool's merchant/description filtering gives it a different purpose.
Tool names follow a consistent snake_case verb_noun pattern throughout, such as list_accounts, get_balance, and annotate_transaction. Even multi-word actions like deposit_to_pot and withdraw_from_pot follow a predictable and readable structure.
Nine tools is a well-scoped size for a personal banking API server. Each tool covers a distinct core operation without unnecessary bloat, and the set feels appropriately bounded for the domain.
The toolset covers account listing, balance checks, transaction viewing/searching/annotating, and pot deposits/withdrawals, which covers most common Monzo workflows. It lacks pot creation/deletion and account-level transfers, but these are reasonable minor gaps rather than critical dead ends.
Maintenance
Related MCP Connectors
Log, query, and edit expenses, budgets, and accounts in Manilo from any MCP-compatible AI assistant.
Personal finance for AI agents — onboard, import statements, categorize & budget over MCP.
Connect AI agents to bank accounts, transactions, balances, and investments.
Log, query, and edit expenses, budgets, and accounts in Manilo (formerly Ledgy) from any MCP-compatible AI assistant.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA remote MCP server on Cloudflare Workers that gives Claude read-only access to your Monzo account, enabling balance checks, transaction listing, and pot management via natural language.MIT
- -licenseNot gradedqualityNot gradedmaintenanceEnables interaction with Monzo bank accounts for balance checking, transaction management, pot operations, and reconciliation through natural language.-
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to access Wise multi-currency account data, including balances, transactions, transfers, and card purchases via MCP protocol.MIT

BankBridgeofficial
AlicenseNot gradedqualityBmaintenanceEnables financial data access from connected bank accounts via MCP tools, allowing natural language queries about balances, transactions, subscriptions, investments, and more, with a focus on privacy and read-only access.2MIT