Para agentes de IA e clientes MCP

BananaBanana MCP Server

Gere imagens e vídeos de IA diretamente do Claude Desktop, Claude Code e de qualquer outro cliente MCP — cobrado por geração a partir do seu saldo BananaBanana. Sem assinatura.

Criar chave de APIImagens a partir de $0.03 · vídeos a partir de $0.10
01O QUE É

Um único endpoint, todos os modelos

Um servidor remoto Model Context Protocol que expõe todo o ecossistema de geração do BananaBanana como ferramentas para agentes: imagens do Google Nano Banana 2 Lite / 2 / Pro (a partir de $0.03), vídeos do Veo 3.1 / Fast / Lite e Gemini Omni Flash com som (tarifa fixa de $1.00). Seu agente visualiza os preços em tempo real, confirma os custos antes de execuções caras, e cada geração é registrada no mesmo histórico e saldo do site.

  • Endpoint: https://bananabanana.pro/api/mcp (HTTP Streamable)
  • Autenticação: chave de API Bearer do seu perfil (o suporte a OAuth 2.1 está planejado)
  • Limite de requisições: 20 chamadas de ferramenta por minuto por chave; limite diário de gastos opcional por chave
  • Não usa cliente MCP? O mesmo endpoint é um JSON-RPC simples sobre HTTPS — chame-o via curl, Python ou TypeScript sem a necessidade de qualquer SDK
  • Gerações que falharem ou forem filtradas são reembolsadas automaticamente
  • Acesse a documentação, o server.json e copie exemplos de clientes no repositório do GitHub bananabanana-mcp
Cliente MCPClaude Code / Desktop, Cursor,VS Code, Codex, qualquer agenteChave Bearer/api/mcpbananabanana.proHTTP Streamable · 7 ferramentasgerarPool de modelosNano Banana · Veo 3.1Omni Flashpor unidadeSeu saldopague por geraçãoreembolso automático em caso de falha
02INÍCIO RÁPIDO

Conectado em três passos

1. Crie uma conta e recarregue seu saldo. 2. Em Perfil → Chaves de API MCP, crie uma chave (exibida apenas uma vez). 3. Adicione o servidor ao seu cliente:

Claude Code

claude mcp add --transport http bananabanana https://bananabanana.pro/api/mcp \
  --header "Authorization: Bearer bb_live_YOUR_KEY"

Claude Desktop

Adicione ao claude_desktop_config.json (Settings → Developer → Edit Config); requer Node.js para a ponte mcp-remote:

{
  "mcpServers": {
    "bananabanana": {
      "command": "npx",
      "args": [
        "-y", "mcp-remote", "https://bananabanana.pro/api/mcp",
        "--header", "Authorization: Bearer bb_live_YOUR_KEY"
      ]
    }
  }
}

Cursor

Adicione ao ~/.cursor/mcp.json (global) ou .cursor/mcp.json no projeto; para manter a chave fora do arquivo, use ${env:BB_API_KEY} em vez do valor literal:

{
  "mcpServers": {
    "bananabanana": {
      "url": "https://bananabanana.pro/api/mcp",
      "headers": {
        "Authorization": "Bearer bb_live_YOUR_KEY"
      }
    }
  }
}

Guia completo do Cursor, incluindo detalhes de funcionamento e uma demonstração com chave ativa: Gere Imagens no Cursor.

VS Code / GitHub Copilot

Adicione ao .vscode/mcp.json no workspace (ou no seu settings.json do usuário); o VS Code solicitará a chave uma vez e a armazenará de forma criptografada:

{
  "servers": {
    "bananabanana": {
      "type": "http",
      "url": "https://bananabanana.pro/api/mcp",
      "headers": {
        "Authorization": "Bearer ${input:bb-api-key}"
      }
    }
  },
  "inputs": [
    {
      "type": "promptString",
      "id": "bb-api-key",
      "description": "BananaBanana API key (bb_live_…)",
      "password": true
    }
  ]
}

Guia completo do VS Code / Copilot, incluindo detalhes de funcionamento e uma demonstração com chave ativa: Gere Imagens no VS Code: Guia de Configuração do Copilot MCP.

Windsurf

Adicione ao ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "bananabanana": {
      "serverUrl": "https://bananabanana.pro/api/mcp",
      "headers": {
        "Authorization": "Bearer bb_live_YOUR_KEY"
      }
    }
  }
}

Qualquer outro cliente MCP (JSON-RPC puro)

POST https://bananabanana.pro/api/mcp
Authorization: Bearer bb_live_YOUR_KEY
Content-Type: application/json
Accept: application/json, text/event-stream

{"jsonrpc":"2.0","id":1,"method":"tools/list"}

Prefere um tutorial passo a passo? O tutorial Gere Imagens no Claude Code cobre a configuração do Claude de ponta a ponta, com quatro casos de uso reais e seus respectivos custos.

03COMPATIBILIDADE

Compatibilidade de clientes

O MCP é um protocolo aberto: qualquer cliente que suporte HTTP Streamable e consiga anexar um cabeçalho Authorization pode se conectar. Status atual, verificado com base nas documentações oficiais de cada provedor (última verificação em julho de 2026):

ClienteFunciona hoje?Como
Claude Codesimclaude mcp add --transport http … --header
Claude Desktop / claude.aisimconector personalizado com cabeçalho de requisição (beta, em liberação gradual) ou a ponte mcp-remote
Cursorsim.cursor/mcp.json: url + headers, segredos via ${env:…} — veja o trecho acima
VS Code / GitHub Copilotsim.vscode/mcp.json: type: "http" + url + headers; armazene a chave como uma entrada promptString — o VS Code solicita uma vez e a mantém criptografada
ChatGPT desktop / Codex CLI / IDEsimcompartilhado em ~/.codex/config.toml: url + bearer_token_env_var (coloque a chave na variável de ambiente). Os conectores web do ChatGPT são a exceção — eles autenticam via OAuth, e não com chaves coladas
Gemini CLIsimhttpUrl + headers no settings.json
xAI API (Grok)simferramenta MCP com server_url e um valor de authorization enviado ao servidor
grok.com (web)parcialmenteconectores personalizados exigem a URL do servidor (Connectors → New Connector → Custom); a documentação não especifica se há suporte para cabeçalho com chave de API colada, então esse caminho pode necessitar do nosso futuro OAuth 2.1
ZCode (GLM-5.2)simSettings → MCP Servers → tipo HTTP + cabeçalho Authorization; o GLM-5.2 dentro do Claude Code herda as configurações do Claude Code
Qualquer outrosimJSON-RPC puro sobre HTTPS — veja Chame via código abaixo

Exemplo do Codex — adicione a ~/.codex/config.toml e exporte BB_API_KEY=bb_live_…:

[mcp_servers.bananabanana]
url = "https://bananabanana.pro/api/mcp"
bearer_token_env_var = "BB_API_KEY"

Guia completo do Codex — CLI, extensão de IDE e ChatGPT desktop a partir de uma única configuração, com detalhes de funcionamento e uma demonstração com chave ativa: Configuração do Codex MCP: Imagens e Vídeos a partir de um único config.toml.

04SEM NECESSIDADE DE SDK

Chame via código

Não usa um cliente MCP? Você não precisa de um — e também não precisa de SDK. O servidor é um JSON-RPC 2.0 simples sobre HTTPS: um endpoint POST, um cabeçalho Bearer e uma única resposta JSON. Ele é stateless, portanto não há handshake de sessão para gerenciar — o tools/call funciona logo na primeira requisição usando curl, Python, TypeScript ou qualquer outra ferramenta capaz de enviar requisições HTTP.

curl

# start an image generation (charges one image, $0.06 on the default model)
curl -s https://bananabanana.pro/api/mcp \
  -H "Authorization: Bearer bb_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{
        "name":"generate_image",
        "arguments":{"prompt":"studio photo of a ceramic mug on linen, soft daylight"}}}'

# → result.structuredContent.job_id = "cmxy…"

# fetch the result (long-polls server-side up to 30 s; free)
curl -s https://bananabanana.pro/api/mcp \
  -H "Authorization: Bearer bb_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{
        "name":"get_result",
        "arguments":{"job_id":"cmxy…","wait_seconds":30}}}'

Python

Apenas requests — sem biblioteca MCP:

import requests

MCP = "https://bananabanana.pro/api/mcp"
HEADERS = {"Authorization": "Bearer bb_live_YOUR_KEY"}

def call(tool, **args):
    r = requests.post(MCP, headers=HEADERS, json={
        "jsonrpc": "2.0", "id": 1, "method": "tools/call",
        "params": {"name": tool, "arguments": args},
    })
    r.raise_for_status()
    return r.json()["result"]["structuredContent"]

job = call("generate_image", prompt="watercolor painting of a lighthouse at dawn")

result = call("get_result", job_id=job["job_id"], wait_seconds=30)
while result["status"] == "processing":
    result = call("get_result", job_id=job["job_id"], wait_seconds=30)

print(result["files"][0]["url"], "cost:", result["cost_charged_usd"])

TypeScript / Node.js

Zero dependências — fetch nativo (Node 18+, Deno, Bun, navegadores):

const MCP = "https://bananabanana.pro/api/mcp";

async function call(tool: string, args: Record<string, unknown>) {
  const res = await fetch(MCP, {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.BB_API_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      jsonrpc: "2.0", id: 1, method: "tools/call",
      params: { name: tool, arguments: args },
    }),
  });
  const { result } = await res.json();
  return result.structuredContent;
}

const job = await call("generate_image", {
  prompt: "isometric 3D render of a tiny greenhouse at golden hour",
});

let out = await call("get_result", { job_id: job.job_id, wait_seconds: 30 });
while (out.status === "processing") {
  out = await call("get_result", { job_id: job.job_id, wait_seconds: 30 });
}
console.log(out.files[0].url, "cost:", out.cost_charged_usd);

Detalhes importantes para quando você for criar scripts:

  • Toda resposta de ferramenta traz o mesmo JSON duas vezes: o formato legível por máquina result.structuredContent e um bloco de texto em result.content — processe o que for mais fácil.
  • Geração de vídeos (e lotes de várias imagens) é um processo de duas etapas: a primeira chamada a generate_video retorna uma estimativa e não cobra nada; repita a chamada enviando em confirm_cost o valor estimado para iniciar.
  • Envie uma idempotency_key nas chamadas de geração — tentativas de reenvio por falha de rede nunca cobrarão em duplicidade.
  • O tools/list funciona sem chave, permitindo que você explore todos os schemas antes mesmo de criar uma conta. As chamadas de ferramenta são limitadas a 20 por minuto por chave.
05FERRAMENTAS

Sete ferramentas especializadas

FerramentaCustoO que faz
list_modelsgrátisTodos os modelos com preços em tempo real por unidade, resoluções e restrições.
get_accountgrátisSaldo, limite de gastos da chave e uso de hoje.
generate_image$0.03–$0.20Texto para imagem no Nano Banana 2 Lite / 2 / Pro, até 4K. Retorna um job_id.
edit_imagepreço de uma imagemRefine uma imagem finalizada por meio de instruções em texto (edição interativa em turnos).
generate_video$0.10–$4.40Família Veo 3.1 ou Omni Flash (sempre com som). Sempre exibe o custo exato estimado primeiro.
get_resultgrátisConsulta o status de uma tarefa: URLs das mídias hospedadas (links válidos por 24 h), custo cobrado, saldo restante e pré-visualização da imagem inline.
list_generationsgrátisHistórico de gerações recentes — compartilhado com o site.
06PREÇOS

Transparência de custos integrada

  • Os preços são fornecidos em tempo real pelo list_models — a mesma fonte que o site utiliza.
  • Toda chamada de vídeo (e lote de várias imagens) primeiro retorna uma estimativa sem cobrar nada; o agente repete a chamada enviando confirm_cost para iniciar.
  • Cada resultado inclui cost_charged_usd e balance_remaining_usd.
  • Falhas de provedores parceiros e rejeições por filtro de conteúdo são reembolsadas automaticamente — a mesma política do aplicativo web.
  • O uso opcional de idempotency_key garante que novas tentativas de rede nunca cobrem em duplicidade.
07EXEMPLO

Uma conversa real

→ generate_video {"prompt": "drone shot over a misty pine forest", "model": "veo-3.1-fast"}
← {"status": "confirmation_required", "quoted_cost_usd": 0.70, ...}
→ generate_video {..., "confirm_cost": 0.70}
← {"job_id": "cmxy…", "status": "processing", "cost_charged_usd": 0.70, "balance_remaining_usd": 12.40}
→ get_result {"job_id": "cmxy…"}
← {"status": "completed", "files": [{"url": "https://…"}], "cost_charged_usd": 0.70}
08SEGURANÇA

URLs de mídias e segurança

  • As URLs dos resultados são assinadas e válidas por 24 horas; a mídia em si permanece na sua conta — chame get_result novamente para obter novos links ou faça o download diretamente pelo site.
  • As chaves de API são armazenadas como hash e exibidas apenas uma vez na criação; revogue-as a qualquer momento em seu perfil.
  • O log de uso de cada chave (ferramenta, modelo, custo, pré-visualização do prompt) fica visível em Perfil → Chaves de API MCP.
  • As gerações via MCP aparecem no mesmo histórico de geração e análise que as gerações feitas pelo site.

Pronto para conectar seu agente?

Crie uma chave, adicione uma linha de configuração — seu agente começará a gerar mídias de nível de estúdio em minutos.

Obtenha sua chave de API