balanceLABSCO SUMMARY
It reads and it moves money — pot transfers are part of the tool set, not just queries.
Deposits and withdrawals take an amount in pence and go through a dedupe id, which is what stops a retried request from transferring twice. The read side spans your account types by name, so "how much is in the joint account" resolves without you hunting for an account ID.
What it is
An MCP server over the Monzo developer API. It reads balances, pots and transactions across your Monzo account types, and can move money between an account and a pot.
What you get
- balance — balance, spending today and currency for an account type, optionally the total
- pots — the list of pots for an account type
- pot_deposit and pot_withdraw — move money between an account and a pot, in pence
- list_transactions — transactions for an account, with since, before and a limit
- retrieve_transaction — one transaction in detail, with merchant data expanded by default
- annotate_transaction — edit or remove a transaction's notes
- Account types addressed by name: default, personal, prepaid, flex, rewards and joint
- Pot transfers carry a dedupe id with a triggered_by value, so a repeat call does not move the money twice
Requirements
Monzo developer credentials in a .env file: MONZO_ACCESS_TOKEN, MONZO_USER_ID and MONZO_ACCOUNT_ID. Adding the per-type account IDs is recommended — it cuts the number of API calls. Clone the repository, then point your client at main.py through uv, with requests in the --with list.
Setup effort
Build from source — git clone https://github.com/BfdCampos/monzo-mcp-bfdcampos.git
USE CASES
Checking where you stand across accounts
Ask for the balance on personal, joint or flex without opening the app.
Putting money aside as you think of it
Move an amount from an account into a named pot in one request.
Looking at what you spent today
List transactions over a date range instead of scrolling the feed.
Labelling a payment you will not recognise later
Add a note to the transaction, or clear one you no longer want.
7 tools
Listed in project docs. Your client may show a different list.
potspot_depositpot_withdrawlist_transactionsretrieve_transactionannotate_transactionBEFORE YOU INSTALL
What to know first
Tools you get
7 tools named in the project's documentation.
Requires
- MONZO_ACCESS_TOKEN in your environment
- MONZO_ACCOUNT_ID in your environment
- MONZO_USER_ID in your environment
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
Server setup
# Clone the repository
git clone https://github.com/BfdCampos/monzo-mcp-bfdcampos.git
cd monzo-mcp-bfdcampos/monzo-mcp-bfdcamposMCP Clients
Claude Desktop — manual
{
"mcpServers": {
"Monzo": {
"command": "/Users/<YOUR_USERNAME>/.local/bin/uv",
"args": [
"run",
"--with",
"mcp[cli],requests",
"mcp",
"run",
"<YOUR_PATH_TO_MONZO_MCP_BFDCAMPOS>/monzo-mcp-bfdcampos/main.py"
]
}
}
}The configuration on this page does not set MONZO_ACCESS_TOKEN, MONZO_USER_ID and MONZO_ACCOUNT_ID. Put them in a .env file next to main.py, in the inner monzo-mcp-bfdcampos folder of your clone — the server finds it there wherever your client starts it.