Para agentes de IA y clientes MCP

BananaBanana MCP Server

Genera imágenes y videos con IA directamente desde Claude Desktop, Claude Code y cualquier otro cliente MCP, con cobro por generación desde tu saldo de BananaBanana. Sin suscripción.

Crear una clave APIImágenes desde $0.03 · video desde $0.10
01QUÉ ES

Un único endpoint, todos los modelos

Un servidor remoto de Model Context Protocol que expone toda la infraestructura de generación de BananaBanana como herramientas para agentes: imágenes de Google Nano Banana 2 Lite / 2 / Pro (desde $0.03), videos de Veo 3.1 / Fast / Lite y Gemini Omni Flash con sonido (tarifa plana de $1.00). Tu agente ve los precios en tiempo real, confirma los costos antes de ejecuciones costosas y cada generación se registra en el mismo historial и saldo del sitio web.

  • Endpoint: https://bananabanana.pro/api/mcp (HTTP compatible con streaming)
  • Autenticación: clave API Bearer desde tu perfil (soporte para OAuth 2.1 planeado)
  • Límite de velocidad: 20 llamadas a herramientas por minuto por clave; límite de gasto diario opcional por clave
  • ¿No tienes un cliente MCP? El mismo endpoint es JSON-RPC puro sobre HTTPS: llámalo desde curl, Python o TypeScript sin necesidad de ningún SDK
  • Las generaciones fallidas o filtradas se reembolsan automáticamente
  • Consulta la documentación, server.json y copia ejemplos de clientes listos para usar en el repositorio de GitHub bananabanana-mcp
Cliente MCPClaude Code / Desktop, Cursor,VS Code, Codex, cualquier agenteClave Bearer/api/mcpbananabanana.proHTTP compatible con streaming · 7 herramientasgenerarPool de modelosNano Banana · Veo 3.1Omni Flashpor unidadTu saldopago por generaciónreembolso automático si falla
02INICIO RÁPIDO

Conectado en tres pasos

1. Crea una cuenta y recarga el saldo. 2. En Perfil → Claves API de MCP crea una clave (se muestra solo una vez). 3. Añade el servidor a tu cliente:

Claude Code

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

Claude Desktop

Añádelo a claude_desktop_config.json (Settings → Developer → Edit Config); requiere Node.js para el puente mcp-remote:

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

Cursor

Añádelo a ~/.cursor/mcp.json (global) o .cursor/mcp.json en el proyecto; para evitar guardar la clave en el archivo, usa ${env:BB_API_KEY} en lugar de escribir el valor literal:

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

Guía completa para Cursor, incluyendo peculiaridades y una demostración con clave en vivo: Generar imágenes en Cursor.

VS Code / GitHub Copilot

Añádelo a .vscode/mcp.json en el espacio de trabajo (o en tu settings.json de usuario); VS Code te solicitará la clave una vez y la guardará encriptada:

{
  "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
    }
  ]
}

Guía completa para VS Code / Copilot, incluyendo peculiaridades y una demostración con clave en vivo: Generar imágenes en VS Code: Guía de configuración de Copilot MCP.

Windsurf

Añádelo a ~/.codeium/windsurf/mcp_config.json:

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

Cualquier otro 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"}

¿Prefieres un tutorial? El tutorial Generar imágenes en Claude Code cubre la configuración de Claude de extremo a extremo, con cuatro casos de uso reales и sus costos reales.

03COMPATIBLE CON

Compatibilidad de clientes

MCP es un protocolo abierto: cualquier cliente que admita HTTP compatible con streaming y pueda adjuntar un encabezado Authorization se conecta. Estado actual, verificado con la documentación oficial de cada proveedor (última revisión en julio de 2026):

Cliente¿Funciona hoy?Cómo
Claude Codeclaude mcp add --transport http … --header
Claude Desktop / claude.aiconector personalizado con un encabezado de solicitud (beta, en despliegue) o el puente mcp-remote
Cursor.cursor/mcp.json: url + headers, secretos mediante ${env:…}; consulta el fragmento de arriba
VS Code / GitHub Copilot.vscode/mcp.json: type: "http" + url + headers; guarda la clave como una entrada de promptString: VS Code la solicitará una vez y la mantendrá encriptada
ChatGPT desktop / Codex CLI / IDEarchivo compartido ~/.codex/config.toml: url + bearer_token_env_var (coloca la clave en la variable de entorno). Los conectores web de ChatGPT son la excepción: se autentican mediante OAuth, no con claves copiadas
Gemini CLIhttpUrl + headers en settings.json
xAI API (Grok)herramienta MCP con server_url and un valor de authorization enviado al servidor
grok.com (web)parcialmentelos conectores personalizados requieren una URL de servidor (Connectors → New Connector → Custom); la documentación no especifica si se admite un encabezado con clave API copiada, por lo что esta opción podría requerir nuestra futura integración con OAuth 2.1
ZCode (GLM-5.2)Settings → MCP Servers → tipo HTTP + encabezado Authorization; GLM-5.2 dentro de Claude Code hereda la configuración de Claude Code
Cualquier otra cosaJSON-RPC puro sobre HTTPS: consulta Llámalo desde el código abajo

Ejemplo de Codex: añádelo a ~/.codex/config.toml y exporta BB_API_KEY=bb_live_…:

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

Guía detallada de Codex: CLI, extensión de IDE y ChatGPT Desktop desde una sola configuración, con peculiaridades y una demostración con clave en vivo: Configuración de Codex MCP: imágenes y videos desde un solo config.toml.

04SIN NECESIDAD DE SDK

Llámalo desde tu código

¿No usas un cliente MCP? No lo necesitas, y tampoco te hace falta un SDK. El servidor es JSON-RPC 2.0 puro sobre HTTPS: un único endpoint POST, un encabezado Bearer y una sola respuesta JSON. Al no tener estado, no hay un protocolo de enlace de sesión que gestionar: tools/call funciona como la primera solicitud desde curl, Python, TypeScript o cualquier otra herramienta que pueda enviar peticiones 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

Solo requests, sin librería 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

Cero dependencias: 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);

Detalles importantes al escribir tus scripts:

  • Cada respuesta de la herramienta incluye el mismo JSON dos veces: result.structuredContent legible por máquina y un bloque de texto en result.content; procesa el que te resulte más fácil.
  • Los videos (y los lotes de varias imágenes) requieren una llamada en dos pasos: el primer generate_video devuelve una cotización y no realiza cargos; repite la llamada con confirm_cost configurado con el monto cotizado para comenzar.
  • Pasa una idempotency_key en las llamadas de generación: los reintentos de red nunca generarán cargos duplicados.
  • tools/list funciona sin clave, lo que te permite explorar los esquemas completos antes de crear una cuenta. Las llamadas a herramientas están limitadas a 20 por minuto por clave.
05HERRAMIENTAS

Siete herramientas orientadas a tareas

HerramientaCostoQué hace
list_modelsgratisTodos los modelos con precios por unidad en vivo, resoluciones y restricciones.
get_accountgratisSaldo, límite de gasto de la clave y uso del día de hoy.
generate_image$0.03–$0.20Texto a imagen en Nano Banana 2 Lite / 2 / Pro, hasta 4K. Devuelve un job_id.
edit_imageprecio de una imagenPerfecciona una imagen terminada mediante instrucciones de texto (edición multiturno).
generate_video$0.10–$4.40Familia Veo 3.1 u Omni Flash (siempre con sonido). Siempre proporciona una cotización con el costo exacto primero.
get_resultgratisConsulta el estado de una tarea: URL de archivos multimedia alojados (enlaces válidos por 24 horas), costo cobrado, saldo restante y vista previa de imagen integrada.
list_generationsgratisHistorial de generaciones recientes, compartido con el sitio web.
06PRECIOS

Transparencia de costos integrada

  • Los precios son proporcionados en tiempo real por list_models, la misma fuente que utiliza el sitio web.
  • Cada llamada de video (y de lotes de varias imágenes) devuelve primero una cotización y no realiza cargos; el agente repite la llamada con confirm_cost para comenzar.
  • Cada resultado incluye cost_charged_usd y balance_remaining_usd.
  • Los fallos del proveedor y los rechazos por filtros de contenido se reembolsan automáticamente, aplicando la misma política que la aplicación web.
  • La clave idempotency_key opcional garantiza que los reintentos nunca generen cobros duplicados.
07EJEMPLO

Una conversación 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}
08SEGURIDAD

URL de archivos multimedia y seguridad

  • Las URL de los resultados están firmadas и son válidas por 24 horas; el archivo multimedia permanece en tu cuenta (vuelve a llamar a get_result para obtener enlaces nuevos o descárgalo desde el sitio web).
  • Las claves API se almacenan de forma encriptada (con hash) y solo se muestran una vez al crearlas; puedes revocarlas en cualquier momento desde tu perfil.
  • El registro de uso por clave (herramienta, modelo, costo, vista previa de la instrucción) es visible en Perfil → Claves API de MCP.
  • Las generaciones de MCP aparecen en el mismo historial de generación y analíticas que las generaciones web.

¿Listo para conectar a tu agente?

Crea una clave, añade una línea de configuración y tu agente generará contenido multimedia de calidad de estudio en cuestión de minutos.

Obtén tu clave API