by BfdCampos
Provides Claude access to personal Monzo banking data, exposing balance, pots, transactions, and transaction management through MCP functions.
Monzo MCP Server enables a Claude desktop tool to interact with your Monzo account. It implements Model Context Protocol (MCP) functions that retrieve balances, list pots, deposit/withdraw from pots, fetch and annotate transactions, and more, all backed by the official Monzo API.
uv install
(or use pip if preferred)..env
file containing your Monzo access token, user ID, default account ID, and optional specific account IDs.uv run mcp install main.py
(automatic) or manually add a server entry to claude_desktop_config.json
pointing to the uv
command and the main.py
script.uv
in claude_desktop_config.json
, ensure requests
is included in the --with
argument, and restart the app.~/Library/Logs/Claude/mcp-server-Monzo.log
for errors.dedupe_id
containing a triggered_by
field (default “mcp”). This identifier prevents accidental duplicate transfers.uv
?: uv
is a fast Python package manager and installer that creates isolated environments and resolves dependencies efficiently.A Model Context Protocol (MCP) server that provides access to your Monzo banking data through a Claude tool.
https://github.com/user-attachments/assets/ca3f9558-bc4b-460f-8658-99674f9c16b7
# Clone the repository
git clone https://github.com/BfdCampos/monzo-mcp-bfdcampos.git
cd monzo-mcp-bfdcampos/monzo-mcp-bfdcampos
# Install dependencies using uv (Python package manager)
uv install
Create a .env
file in the project directory with your Monzo credentials:
[!NOTE] To get your credentials, follow the instructions in the official Monzo Dev API Docs
MONZO_ACCESS_TOKEN='your_access_token'
MONZO_USER_ID='your_user_id'
MONZO_ACCOUNT_ID='your_default_account_id'
# Add specific account IDs for different account types
MONZO_UK_PREPAID_PERSONAL_ACCOUNT_ID='your_prepaid_account_id'
MONZO_UK_RETAIL_PERSONAL_ACCOUNT_ID='your_personal_account_id'
MONZO_UK_MONZO_FLEX_PERSONAL_ACCOUNT_ID='your_flex_account_id'
MONZO_UK_REWARDS_PERSONAL_ACCOUNT_ID='your_rewards_account_id'
MONZO_UK_RETAIL_JOINT_JOINT_ACCOUNT_ID='your_joint_account_id'
[!NOTE] I recommend getting the account IDs and adding them to your dotenv file to have a smoother experience with the server and reduce the number of API calls. This can also be found in the official Monzo Dev API Docs.
Use the MCP CLI tool to install the server automatically:
uv run mcp install main.py
Add the server to your Claude Desktop configuration file located at ~/Library/Application Support/Claude/claude_desktop_config.json
:
{
"mcpServers": {
"Monzo": {
"command": "/Users/[Your Home Directory]/.local/bin/uv",
"args": [
"run",
"--with",
"mcp[cli],requests",
"mcp",
"run",
"/path/to/your/monzo-mcp-bfdcampos/monzo-mcp-bfdcampos/main.py"
]
}
}
}
Note: Replace
/path/to/your/
with your actual paths. Important: Make sure to includerequests
in the--with
argument as shown above.
Returns the balance, spending today, and currency for a specified account type.
Parameters:
account_type
(optional): Type of account to check balance for. Options: "default", "personal", "prepaid", "flex", "rewards", "joint"total_balance
(optional): If set to true, returns the total balance for the account. Default is falseExample requests:
What's my current balance?
How much money do I have in my joint account?
What's the balance of my flex account?
Returns the list of pots for a specified account type.
Parameters:
account_type
(optional): Type of account to check pots for. Options: "default", "personal", "prepaid", "flex", "rewards", "joint"Example requests:
Show me my pots
How many pots do I have?
How much money do I have in my "Savings" pot?
Deposit money from an account into a pot.
Parameters:
pot_id
(required): The ID of the pot to deposit money intoamount
(required): The amount to deposit in pence (e.g., 1000 for £10.00)account_type
(optional): The account to withdraw from. Default is "personal"Example requests:
Add £25 to my Savings pot
Move £10 from my personal account to my Holiday pot
Withdraw money from a pot back to an account.
Parameters:
pot_id
(required): The ID of the pot to withdraw money fromamount
(required): The amount to withdraw in pence (e.g., 1000 for £10.00)account_type
(optional): The account to deposit into. Default is "personal"Example requests:
Take £25 from my Savings pot
Withdraw £10 from my Holiday pot to my personal account
Lists transactions for a specified account.
Parameters:
account_type
(optional): Type of account to list transactions for. Default is "personal"since
(optional): Start date for transactions in ISO 8601 format (e.g., "2025-05-20T00:00:00Z")before
(optional): End date for transactions in ISO 8601 formatlimit
(optional): Maximum number of transactions to return. Default is 1000Example requests:
Show me my recent transactions
What transactions do I have from today?
List all transactions from my joint account this month
Retrieves details of a specific transaction.
Parameters:
transaction_id
(required): The ID of the transaction to retrieveexpand
(optional): Additional data to include in the response. Default is "merchant"Example requests:
Show me the details of my last transaction
What was the last transaction I made?
Edits the metadata of a transaction.
Parameters:
transaction_id
(required): The ID of the transaction to annotatemetadata_key
(required): The key of the metadata to edit. Default is 'notes'metadata_value
(required): The new value for the metadata key. Empty values will remove the keydelete_note
(optional): If set to true, the note will be deleted. Default is falseExample requests:
Add a note to my last transaction saying "Dinner with friends"
Remove the note from my last transaction
uv
installation, e.g., /Users/[Your Home Directory]/.local/bin/uv
in the command section of the configuration file.requests
library is included in the --with
argument list in your configuration, as this is a common cause of connection issues.~/Library/Logs/Claude/mcp-server-Monzo.log
.uv
is a Python package manager and installer that's designed to be much faster than pip.Please log in to share your review and rating for this MCP.
Explore related MCPs that share similar capabilities and solve comparable challenges
by goat-sdk
Enables AI agents to send and receive payments, purchase goods and services, execute investment strategies, tokenize assets, and obtain financial insights by leveraging blockchains, stablecoins, and wallets.
by financial-datasets
Provides access to income statements, balance sheets, cash flow statements, stock prices, market news, and cryptocurrency data through MCP tools for AI assistants.
by alpacahq
Enables large language models to trade stocks and options, retrieve real‑time and historical market data, and manage portfolios using plain English commands through a local or remote MCP server.
by XeroAPI
Provides a bridge between the Model Context Protocol and Xero's API, enabling standardized access to Xero accounting and business features.
by stefanoamorelli
Provides an MCP server that connects AI models to SEC EDGAR filings, enabling real‑time retrieval of company filings, financial statements, and insider‑trading data with exact XBRL precision and verifiable filing references.
by ariadng
Enables AI LLMs to execute trades on the MetaTrader 5 platform through the Model Context Protocol.
by calvernaz
Provides access to Alpha Vantage stock market data via an MCP server, supporting stdio and HTTP streaming modes with optional OAuth 2.1 authentication.
by kukapay
Integrates the Freqtrade cryptocurrency trading bot with MCP, exposing its REST API as tools for AI agents to perform automated trading operations.
by kukapay
Provides a comprehensive set of cryptocurrency technical analysis indicators and ready‑to‑use trading strategies through an MCP interface, enabling AI agents and applications to generate buy, hold, or sell signals.