文件预览

README.md

查看 Max Banking 技能包中的文件内容。

文件内容

README.md

# MaxBank Skill para OpenClaw

Skill que conecta seu OpenClaw ao MaxBank para consultar saldo, fazer PIX e pagar boletos.

Toda a comunicação é via **MCP** (Model Context Protocol). O MCP roda hospedado — a autenticação (Agent API Key) é injetada diretamente via header no mcporter, sem necessidade de proxy local.

## Ambientes

| Ambiente | Uso | MCP URL |
|----------|-----|---------|
| **prod** | Produção (padrão) | `https://maxbank-mcp.max.com.br/mcp` |
| **homolog** | Validação | `https://mcp-homologacao.maxbank.ai/mcp` |
| **local** | Dev com ngrok | `https://seu-ngrok.ngrok-free.app/mcp` |

Health check do MCP em produção: [https://maxbank-mcp.max.com.br/health](https://maxbank-mcp.max.com.br/health).

## Funcionalidades

| Comando | Descrição |
|---------|-----------|
| `maxbank.sh saldo` | Consulta saldo da conta |
| `maxbank.sh conta` | Exibe dados da conta conectada |
| `maxbank.sh pix CHAVE VALOR` | Cria transferência PIX (chave, e-mail, telefone ou QR) |
| `maxbank.sh pix code=CHAVE amount:N` | PIX com formato nomeado |
| `maxbank.sh billet LINHA_DIGITAVEL` | Paga boleto pela linha digitável |
| `maxbank.sh billet code=LINHA_DIGITAVEL` | Boleto com formato nomeado |
| `maxbank.sh status` | Exibe status da configuração mcporter |
| `maxbank.sh setup <codigo> <env> [url]` | Conecta conta (pareamento + config) |

## Instalação

```bash
clawhub install max-banking
```

Ou copie manualmente para `~/.openclaw/skills/max-banking/`.

## Setup (conectar conta)

O setup pode ser feito via chat ou manualmente:

### Via chat (recomendado)

Diga ao assistente: **"Quero conectar minha conta max, código AX7K-92QF"**

O assistente executa o setup completo: mcporter, pareamento e configuração do header de autenticação.

### Manual

```bash
# Prod (padrão)
bash ~/.openclaw/skills/max-banking/scripts/maxbank.sh setup ABCD-EF12 prod

# Homolog
bash ~/.openclaw/skills/max-banking/scripts/maxbank.sh setup ABCD-EF12 homolog

# Local (requer URL do ngrok)
bash ~/.openclaw/skills/max-banking/scripts/maxbank.sh setup ABCD-EF12 local https://xxx.ngrok-free.app/mcp
```

O setup faz:
1. Instala/verifica mcporter
2. Configura `openclaw.json`
3. Pareia via MCP (tool `pairing_exchange`)
4. Configura mcporter com `Authorization: Bearer <agent_key>` no header

## Pagamentos

### PIX

Aceita formato posicional ou nomeado:

```bash
# Posicional: chave + valor
maxbank.sh pix email@exemplo.com 50.00
maxbank.sh pix 11999998888 100

# Nomeado
maxbank.sh pix code=email@exemplo.com amount:50.00

# QR Code (copia-e-cola)
maxbank.sh pix 00020126...
```

Chaves aceitas: e-mail, telefone (10-11 dígitos), CPF/CNPJ, EVP (aleatória) ou payload QR (começa com `00020`).

### Boleto

Aceita apenas a linha digitável (o valor é extraído automaticamente dela):

```bash
# Posicional
maxbank.sh billet 23793.38128 60000.000003 00000.000008 1 10250000012345

# Nomeado
maxbank.sh billet code="23793.38128 60000.000003 00000.000008 1 10250000012345"
```

> **Importante:** Não envie `amount` ou outros parâmetros para boleto — apenas `code` com a linha digitável completa.

## Arquitetura

```
Usuário → OpenClaw (LLM) → exec maxbank.sh → mcporter → MCP hospedado → Banking API
                                                ↑
                                     Authorization: Bearer <agent_key>
                                     (injetado via header no mcporter config)
```

### Arquivos

```
skills/max-banking/
├── SKILL.md                    # Instruções para a LLM
├── README.md                   # Este arquivo
└── scripts/
    ├── maxbank.sh              # Wrapper unificado (entry point)
    ├── setup.sh                # Setup: pareamento + config mcporter
    └── connect-mcp.js          # Pareamento via MCP JSON-RPC
```

### Armazenamento

Tokens e sessão ficam em `~/.openclaw/secrets/maxbank/` com permissões restritas:

| Arquivo | Conteúdo | Permissão |
|---------|----------|-----------|
| `agent_key` | Agent API Key (longa duração) | `600` |
| `session.json` | Ambiente, telefone, account_id, data de conexão | `600` |

### Configuração mcporter

Após o setup, o mcporter fica configurado assim (equivalente a `mcporter config list`):

```json
{
  "banking": {
    "type": "http",
    "url": "https://maxbank-mcp.max.com.br/mcp",
    "headers": {
      "Authorization": "Bearer max_live_..."
    }
  }
}
```

## Configuração do OpenClaw

O `setup.sh` configura automaticamente. Para referência manual:

```json
{
  "skills": {
    "entries": {
      "mcporter": { "enabled": true },
      "max-banking": { "enabled": true }
    }
  },
  "tools": {
    "allow": ["exec", "process", "read", "write", "edit", "apply_patch"],
    "exec": { "host": "gateway" }
  }
}
```

## Troubleshooting

**"pairing not done"** — Execute o setup com um código de pareamento válido.

**"agent_key invalid"** — Chave revogada ou inválida. Refaça o pareamento com um novo código.

**"servidor 'banking' não encontrado no mcporter"** — O mcporter perdeu a configuração. Execute `maxbank.sh setup` novamente ou reconfigure manualmente:
```bash
mcporter config add banking --http-url https://maxbank-mcp.max.com.br/mcp --header '{"Authorization": "Bearer <sua_agent_key>"}'
```

**Agente não reconhece comandos** — Verifique:
1. Skill está em `~/.openclaw/skills/max-banking/SKILL.md`
2. `openclaw.json` tem `max-banking` habilitada
3. Permissão `exec` está em `tools.allow`
4. Inicie uma nova sessão (`/new`) após alterar configurações

**BILLET_TOO_MANY_ARGS** — O boleto aceita apenas a linha digitável em `code=`. Não envie `amount=`, `description=` ou outros parâmetros extras.