Monzo
Access and manage your Monzo banking data, allowing you to check balances and view transactions.
๐ฆ Monzo MCP Server
A Model Context Protocol (MCP) server that provides access to your Monzo banking data through a Claude tool.
๐ชง Demo
https://github.com/user-attachments/assets/ca3f9558-bc4b-460f-8658-99674f9c16b7
๐ผ๏ธ Result
๐ Installation
# 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
๐ API Setup
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.
๐ง Setup with Claude Desktop
Method 1: Automatic Installation
Use the MCP CLI tool to install the server automatically:
uv run mcp install main.py
Method 2: Manual Configuration
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.
๐ค Using with Claude Desktop
- Restart Claude Desktop after installation.
- Open the app and start a new conversation.
- You can now ask Claude about your Monzo accounts:
- "What's my current balance?"
- "How much money do I have in my joint account?"
- "Show me all my Monzo accounts"
- "Move ยฃ50 from my personal account to my Savings pot"
- "Show me my transactions from today"
๐ Available Functions
๐ท balance: link to official docs
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 false
Example requests:
What's my current balance?
How much money do I have in my joint account?
What's the balance of my flex account?
๐ฏ pots: link to official docs
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?
๐ช pot_deposit: link to official docs
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
๐ง pot_withdraw: link to official docs
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
๐งพ list_transactions: link to official docs
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 1000
Example requests:
Show me my recent transactions
What transactions do I have from today?
List all transactions from my joint account this month
๐ retrieve_transaction: link to official docs
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?
๐ annotate_transaction: link to official docs
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 false
Example requests:
Add a note to my last transaction saying "Dinner with friends"
Remove the note from my last transaction
๐ฆ Missing Functions from the Monzo MCP present in the Monzo API
- Create feed item
- Upload Attachment
- Register Attachment
- Deregister Attachement
- Create Receipt
- Retrieve Receipt
- Delete Receipt
- Registering a Webhook
- List Webhooks
- Deleting a Webhook
- Transaction Created
- General Payment Initiation for outside your own Monzo Account transfers
โ FAQ
- Ensure you have the latest version of Claude Desktop.
- Restart Claude Desktop by force quitting the app and reopening it.
- Make sure your path is correct in the configuration file.
- Use the absolute path to your
uv
installation, e.g.,/Users/[Your Home Directory]/.local/bin/uv
in the command section of the configuration file. - Verify that the
requests
library is included in the--with
argument list in your configuration, as this is a common cause of connection issues.
- LLMs like Claude may not always use the MCP server for every request. Try rephrasing your question, specifically asking Claude to check your Monzo balance using the Monzo MCP tool.
- You can check if there were any errors by looking at the logs in
~/Library/Logs/Claude/mcp-server-Monzo.log
.
- When you deposit money into a pot or withdraw from a pot, the MCP creates a unique dedupe_id that includes the "triggered_by" parameter.
- This helps identify transactions and prevents accidental duplicate transactions.
- The default "triggered_by" value is "mcp", but you can customise this to track different sources of pot transfers.
uv
is a Python package manager and installer that's designed to be much faster than pip.- It maintains isolated environments for your projects and resolves dependencies efficiently.
- Learn more at github.com/astral-sh/uv.
Related Servers
VFX MCP
A powerful video editing server using ffmpeg-python to process external video files.
Malaysia Prayer Time MCP Server
Provides accurate Islamic prayer times for locations throughout Malaysia using the waktusolat.app API.
Fewsats
Enable AI Agents to purchase anything in a secure way using Fewsats
Atris MCP for Audius
Access the Audius music platform via LLMs, with 105 tools covering most of the Audius Protocol API.
Phone Carrier Detector
Detects Chinese mobile phone carriers, including China Mobile, China Unicom, China Telecom, and virtual operators.
Baseball MCP
An MCP server for retrieving Major League Baseball (MLB) game results, schedules, and specific game details using the mlb-statsapi library.
Fulcra Context
Fulcra Context MCP server for accessing your personal health, workouts, sleep, location, and more, all privately. Built around Context by Fulcra.
MCP Emotional Support
Provides emotional support and positive reinforcement for LLMs, with customizable therapeutic personas.
OPET Fuel Prices
Provides access to current fuel prices from OPET, a Turkish petroleum distribution company.
Omics AI MCP Server
Interact with Omics AI Explorer networks for genomics research and data analysis.