Monzo

Accede y gestiona tus datos bancarios de Monzo, permitiéndote consultar saldos y ver transacciones.

Documentación

🏦 Servidor MCP de Monzo

Un servidor de Protocolo de Contexto de Modelo (MCP) que proporciona acceso a tus datos bancarios de Monzo a través de una herramienta de Claude.

🪧 Demostración

https://github.com/user-attachments/assets/ca3f9558-bc4b-460f-8658-99674f9c16b7

🖼️ Resultado

monzo_mcp_bfdcampos_result

🚀 Instalación

# 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

🔑 Configuración de la API

Crea un archivo .env en el directorio del proyecto con tus credenciales de Monzo:

[!NOTA] Para obtener tus credenciales, sigue las instrucciones en la documentación oficial de la API de desarrollo de Monzo

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'

[!NOTA] Recomiendo obtener los IDs de cuenta y añadirlos a tu archivo dotenv para tener una experiencia más fluida con el servidor y reducir el número de llamadas a la API. Esto también se puede encontrar en la documentación oficial de la API de desarrollo de Monzo.

🔧 Configuración con Claude Desktop

Método 1: Instalación automática

Usa la herramienta CLI de MCP para instalar el servidor automáticamente:

uv run mcp install main.py

Método 2: Configuración manual

Añade el servidor a tu archivo de configuración de Claude Desktop ubicado en ~/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"
      ]
    }
  }
}

Nota: Reemplaza /path/to/your/ con tus rutas reales. Importante: Asegúrate de incluir requests en el argumento --with como se muestra arriba.

🤖 Uso con Claude Desktop

  1. Reinicia Claude Desktop después de la instalación.
  2. Abre la aplicación e inicia una nueva conversación.
  3. Ahora puedes preguntarle a Claude sobre tus cuentas de Monzo:
    • "¿Cuál es mi saldo actual?"
    • "¿Cuánto dinero tengo en mi cuenta conjunta?"
    • "Muéstrame todas mis cuentas de Monzo"
    • "Mueve £50 de mi cuenta personal a mi fondo de ahorro"
    • "Muéstrame mis transacciones de hoy"

📊 Funciones disponibles

💷 balance: enlace a la documentación oficial

Devuelve el saldo, el gasto de hoy y la moneda para un tipo de cuenta especificado.

Parámetros:

  • account_type (opcional): Tipo de cuenta para consultar el saldo. Opciones: "default", "personal", "prepaid", "flex", "rewards", "joint"
  • total_balance (opcional): Si se establece en true, devuelve el saldo total de la cuenta. El valor predeterminado es false

Ejemplos de solicitudes:

What's my current balance?
How much money do I have in my joint account?
What's the balance of my flex account?

🍯 pots: enlace a la documentación oficial

Devuelve la lista de fondos para un tipo de cuenta especificado.

Parámetros:

  • account_type (opcional): Tipo de cuenta para consultar los fondos. Opciones: "default", "personal", "prepaid", "flex", "rewards", "joint"

Ejemplos de solicitudes:

Show me my pots
How many pots do I have?
How much money do I have in my "Savings" pot?

🪙 pot_deposit: enlace a la documentación oficial

Deposita dinero desde una cuenta a un fondo.

Parámetros:

  • pot_id (obligatorio): El ID del fondo donde depositar dinero
  • amount (obligatorio): La cantidad a depositar en peniques (por ejemplo, 1000 para £10.00)
  • account_type (opcional): La cuenta de la que retirar. El valor predeterminado es "personal"

Ejemplos de solicitudes:

Add £25 to my Savings pot
Move £10 from my personal account to my Holiday pot

🏧 pot_withdraw: enlace a la documentación oficial

Retira dinero de un fondo de vuelta a una cuenta.

Parámetros:

  • pot_id (obligatorio): El ID del fondo del que retirar dinero
  • amount (obligatorio): La cantidad a retirar en peniques (por ejemplo, 1000 para £10.00)
  • account_type (opcional): La cuenta donde depositar. El valor predeterminado es "personal"

Ejemplos de solicitudes:

Take £25 from my Savings pot
Withdraw £10 from my Holiday pot to my personal account

🧾 list_transactions: enlace a la documentación oficial

Lista las transacciones de una cuenta especificada.

Parámetros:

  • account_type (opcional): Tipo de cuenta para listar transacciones. El valor predeterminado es "personal"
  • since (opcional): Fecha de inicio para las transacciones en formato ISO 8601 (por ejemplo, "2025-05-20T00:00:00Z")
  • before (opcional): Fecha de fin para las transacciones en formato ISO 8601
  • limit (opcional): Número máximo de transacciones a devolver. El valor predeterminado es 1000

Ejemplos de solicitudes:

Show me my recent transactions
What transactions do I have from today?
List all transactions from my joint account this month

📖 retrieve_transaction: enlace a la documentación oficial

Recupera los detalles de una transacción específica.

Parámetros:

  • transaction_id (obligatorio): El ID de la transacción a recuperar
  • expand (opcional): Datos adicionales a incluir en la respuesta. El valor predeterminado es "merchant"

Ejemplos de solicitudes:

Show me the details of my last transaction
What was the last transaction I made?

📝 annotate_transaction: enlace a la documentación oficial

Edita los metadatos de una transacción.

Parámetros:

  • transaction_id (obligatorio): El ID de la transacción a anotar
  • metadata_key (obligatorio): La clave de los metadatos a editar. El valor predeterminado es 'notes'
  • metadata_value (obligatorio): El nuevo valor para la clave de metadatos. Los valores vacíos eliminarán la clave
  • delete_note (opcional): Si se establece en true, la nota se eliminará. El valor predeterminado es false

Ejemplos de solicitudes:

Add a note to my last transaction saying "Dinner with friends"
Remove the note from my last transaction

📦 Funciones faltantes del MCP de Monzo presentes en la API de Monzo

❓ Preguntas frecuentes

Mi Claude Desktop no detecta el servidor
  • Asegúrate de tener la última versión de Claude Desktop.
  • Reinicia Claude Desktop cerrando la aplicación por completo y volviéndola a abrir.
  • Asegúrate de que tu ruta sea correcta en el archivo de configuración.
  • Usa la ruta absoluta a tu instalación de uv, por ejemplo, /Users/[Your Home Directory]/.local/bin/uv en la sección de comandos del archivo de configuración.
  • Verifica que la biblioteca requests esté incluida en la lista de argumentos de --with en tu configuración, ya que esta es una causa común de problemas de conexión.
Le he preguntado a Claude sobre mi saldo pero no está usando el servidor MCP
  • Los LLM como Claude pueden no usar siempre el servidor MCP para cada solicitud. Intenta reformular tu pregunta, pidiendo específicamente a Claude que consulte tu saldo de Monzo usando la herramienta MCP de Monzo.
  • Puedes comprobar si hubo errores mirando los registros en ~/Library/Logs/Claude/mcp-server-Monzo.log.
¿Cómo funcionan los depósitos y retiros de fondos?
  • Cuando depositas dinero en un fondo o retiras de un fondo, el MCP crea un dedupe_id único que incluye el parámetro "triggered_by".
  • Esto ayuda a identificar transacciones y previene transacciones duplicadas accidentales.
  • El valor predeterminado de "triggered_by" es "mcp", pero puedes personalizarlo para rastrear diferentes fuentes de transferencias de fondos.
¿Qué es uv?
  • uv es un gestor e instalador de paquetes de Python diseñado para ser mucho más rápido que pip.
  • Mantiene entornos aislados para tus proyectos y resuelve dependencias de manera eficiente.
  • Aprende más en github.com/astral-sh/uv.