AM

A Model Context Protocol (MCP) server that provides access to your Monzo banking data through a Claude tool.

Created 3 months ago

A Model Context Protocol (MCP) server that provides access to your Monzo banking data through a Claude tool.

development documentation public

What is A Model Context Protocol (MCP) server that provides access to your Monzo banking data through a Claude tool.?

Monzo MCP Server is a Model Context Protocol (MCP) server that allows users to access their Monzo banking data via a Claude tool. It includes installation instructions, API setup, and usage guidelines with various functions for managing accounts and transactions.

Documentation

๐Ÿฆ 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

monzo_mcp_bfdcampos_result

๐Ÿš€ Installation

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 include requests in the --with argument as shown above.

๐Ÿค– Using with Claude Desktop

  1. Restart Claude Desktop after installation.
  2. Open the app and start a new conversation.
  3. 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 into
  • amount (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 from
  • amount (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 format
  • limit (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 retrieve
  • expand (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 annotate
  • metadata_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 key
  • delete_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

โ“ FAQ

Server Config

{
  "mcpServers": {
    "a-model-context-protocol-(mcp)-server-that-provides-access-to-your-monzo-banking-data-through-a-claude-tool.-server": {
      "command": "npx",
      "args": [
        "a-model-context-protocol-(mcp)-server-that-provides-access-to-your-monzo-banking-data-through-a-claude-tool."
      ]
    }
  }
}

Links & Status

Repository: github.com
Hosted: No
Global: No
Official: No

Project Info

Hosted Featured
Created At: Aug 08, 2025
Updated At: Aug 08, 2025
Author: BfdCampos
Category: Finance
License: MIT
Tags:
development documentation public