Monzo

Acesse e gerencie seus dados bancários do Monzo, permitindo verificar saldos e visualizar transações.

Documentação

🏦 Servidor MCP do Monzo

Um servidor Model Context Protocol (MCP) que fornece acesso aos seus dados bancários do Monzo através de uma ferramenta Claude.

🪧 Demonstração

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

🖼️ Resultado

monzo_mcp_bfdcampos_result

🚀 Instalação

# 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

🔑 Configuração da API

Crie um arquivo .env no diretório do projeto com suas credenciais do Monzo:

[!NOTE] Para obter suas credenciais, siga as instruções na documentação oficial da API de Desenvolvimento do 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'

[!NOTE] Recomendo obter os IDs das contas e adicioná-los ao seu arquivo dotenv para ter uma experiência mais fluida com o servidor e reduzir o número de chamadas de API. Isso também pode ser encontrado na documentação oficial da API de Desenvolvimento do Monzo.

🔧 Configuração com Claude Desktop

Método 1: Instalação Automática

Use a ferramenta CLI do MCP para instalar o servidor automaticamente:

uv run mcp install main.py

Método 2: Configuração Manual

Adicione o servidor ao seu arquivo de configuração do Claude Desktop localizado em ~/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: Substitua /path/to/your/ pelos seus caminhos reais. Importante: Certifique-se de incluir requests no argumento --with conforme mostrado acima.

🤖 Usando com Claude Desktop

  1. Reinicie o Claude Desktop após a instalação.
  2. Abra o aplicativo e inicie uma nova conversa.
  3. Agora você pode perguntar ao Claude sobre suas contas Monzo:
    • "Qual é o meu saldo atual?"
    • "Quanto dinheiro tenho na minha conta conjunta?"
    • "Mostre-me todas as minhas contas Monzo"
    • "Transfira £50 da minha conta pessoal para o meu pote de Poupança"
    • "Mostre-me minhas transações de hoje"

📊 Funções Disponíveis

💷 balance: link para documentação oficial

Retorna o saldo, gastos de hoje e moeda para um tipo de conta especificado.

Parâmetros:

  • account_type (opcional): Tipo de conta para verificar o saldo. Opções: "default", "personal", "prepaid", "flex", "rewards", "joint"
  • total_balance (opcional): Se definido como true, retorna o saldo total da conta. O padrão é false

Exemplos de solicitações:

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 para documentação oficial

Retorna a lista de potes para um tipo de conta especificado.

Parâmetros:

  • account_type (opcional): Tipo de conta para verificar potes. Opções: "default", "personal", "prepaid", "flex", "rewards", "joint"

Exemplos de solicitações:

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

🪙 pot_deposit: link para documentação oficial

Deposita dinheiro de uma conta em um pote.

Parâmetros:

  • pot_id (obrigatório): O ID do pote no qual depositar dinheiro
  • amount (obrigatório): O valor a depositar em centavos (por exemplo, 1000 para £10,00)
  • account_type (opcional): A conta da qual retirar. O padrão é "personal"

Exemplos de solicitações:

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

🏧 pot_withdraw: link para documentação oficial

Retira dinheiro de um pote de volta para uma conta.

Parâmetros:

  • pot_id (obrigatório): O ID do pote do qual retirar dinheiro
  • amount (obrigatório): O valor a retirar em centavos (por exemplo, 1000 para £10,00)
  • account_type (opcional): A conta na qual depositar. O padrão é "personal"

Exemplos de solicitações:

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

🧾 list_transactions: link para documentação oficial

Lista transações para uma conta especificada.

Parâmetros:

  • account_type (opcional): Tipo de conta para listar transações. O padrão é "personal"
  • since (opcional): Data de início para transações no formato ISO 8601 (por exemplo, "2025-05-20T00:00:00Z")
  • before (opcional): Data de fim para transações no formato ISO 8601
  • limit (opcional): Número máximo de transações a retornar. O padrão é 1000

Exemplos de solicitações:

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

📖 retrieve_transaction: link para documentação oficial

Recupera detalhes de uma transação específica.

Parâmetros:

  • transaction_id (obrigatório): O ID da transação a recuperar
  • expand (opcional): Dados adicionais a incluir na resposta. O padrão é "merchant"

Exemplos de solicitações:

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

📝 annotate_transaction: link para documentação oficial

Edita os metadados de uma transação.

Parâmetros:

  • transaction_id (obrigatório): O ID da transação a anotar
  • metadata_key (obrigatório): A chave dos metadados a editar. O padrão é 'notes'
  • metadata_value (obrigatório): O novo valor para a chave de metadados. Valores vazios removerão a chave
  • delete_note (opcional): Se definido como true, a nota será excluída. O padrão é false

Exemplos de solicitações:

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

📦 Funções Ausentes do MCP do Monzo presentes na API do Monzo

❓ Perguntas Frequentes

Meu Claude Desktop não está detectando o servidor
  • Certifique-se de ter a versão mais recente do Claude Desktop.
  • Reinicie o Claude Desktop forçando o encerramento do aplicativo e reabrindo-o.
  • Certifique-se de que seu caminho está correto no arquivo de configuração.
  • Use o caminho absoluto para sua instalação do uv, por exemplo, /Users/[Your Home Directory]/.local/bin/uv na seção de comando do arquivo de configuração.
  • Verifique se a biblioteca requests está incluída na lista de argumentos --with na sua configuração, pois esta é uma causa comum de problemas de conexão.
Perguntei ao Claude sobre meu saldo, mas ele não está usando o servidor MCP
  • LLMs como Claude podem nem sempre usar o servidor MCP para cada solicitação. Tente reformular sua pergunta, pedindo especificamente ao Claude para verificar seu saldo Monzo usando a ferramenta MCP do Monzo.
  • Você pode verificar se houve erros observando os logs em ~/Library/Logs/Claude/mcp-server-Monzo.log.
Como funcionam os depósitos e retiradas de potes?
  • Quando você deposita dinheiro em um pote ou retira de um pote, o MCP cria um dedupe_id único que inclui o parâmetro "triggered_by".
  • Isso ajuda a identificar transações e evita transações duplicadas acidentais.
  • O valor padrão de "triggered_by" é "mcp", mas você pode personalizá-lo para rastrear diferentes fontes de transferências de potes.
O que é uv?
  • uv é um gerenciador e instalador de pacotes Python projetado para ser muito mais rápido que o pip.
  • Ele mantém ambientes isolados para seus projetos e resolve dependências de forma eficiente.
  • Saiba mais em github.com/astral-sh/uv.