适用于 AI 代理与 MCP 客户端

Nano Banana MCP Server 支持 Claude、Cursor 和 Gemini CLI

直接在 Claude Desktop、Claude Code 及任何其他 MCP 客户端中生成 AI 图像和视频 —— 费用从您的 BananaBanana 余额中按生成扣除。无需订阅。

创建 API 密钥图像低至 $0.03 · 视频低至 $0.10
01核心功能

单一接口,聚合所有模型

一个远程 Model Context Protocol 服务器,将完整的 BananaBanana 生成技术栈作为代理工具开放:Google Nano Banana 2 Lite / 2 / 2.1 / Pro 图像(低至 $0.03)、Veo 3.1 / Fast / Lite 视频以及带声音的 Gemini Omni Flash($0.09–1.00)、Wan 3.0。您的代理可查看实时价格,在执行高成本任务前确认费用,且每次生成都会记录在与网站相同的历史记录和余额中。

  • 接口地址:https://bananabanana.pro/api/mcp (Streamable HTTP)
  • 认证:使用 OAuth 2.1 登录(claude.ai 等连接器类客户端),或使用个人资料中的 Bearer API 密钥
  • 速率限制:每个密钥每分钟 20 次工具调用;可选择为每个密钥设置每日消费上限
  • 没有 MCP 客户端?该接口是基于 HTTPS 的纯 JSON-RPC —— 无需任何 SDK,即可直接通过 curl、Python 或 TypeScript 进行调用
  • 生成失败或因过滤被拒的任务将自动退款
  • 打开文档、server.json,并在 bananabanana-mcp GitHub 仓库中复制粘贴客户端示例
MCP 客户端Claude Code / Desktop, Cursor,VS Code, Codex, 任何代理OAuth / API 密钥/api/mcpbananabanana.proStreamable HTTP · 10 个工具生成模型池Nano Banana · Veo 3.1Omni Flash按单位您的余额按生成付费失败自动退款
02快速开始

只需三步,即刻连接

1. 注册账户并充值余额。2. 在个人资料 → MCP API Keys中创建密钥(仅显示一次)。3. 将服务器添加至您的客户端:

claude.ai、Claude Desktop、手机端(OAuth — 无需复制密钥)

Settings → Connectors → Add custom connector,粘贴 https://bananabanana.pro/api/mcp 后点击 Connect。Claude 会自行注册,你在 BananaBanana 页面确认授权,之后的生成从你登录的账户余额中扣费。

Settings → Connectors → Add custom connector
URL: https://bananabanana.pro/api/mcp
→ Add → Connect → approve access on bananabanana.pro

任何实现 MCP 授权的客户端都能用同一流程:MCP Inspector、ChatGPT 与 Grok 的网页连接器、Claude Code。已连接的应用列在个人资料里,可随时断开。

Claude Code

# with an API key
claude mcp add --transport http bananabanana https://bananabanana.pro/api/mcp \
  --header "Authorization: Bearer bb_live_YOUR_KEY"

# or with OAuth — no key, sign in in the browser
claude mcp add --transport http bananabanana https://bananabanana.pro/api/mcp
# then run /mcp inside Claude Code and pick "Authenticate"

Claude Desktop

添加至 claude_desktop_config.json (Settings → Developer → Edit Config);运行 mcp-remote 桥接需要 Node.js:

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

Cursor

添加至项目中的 ~/.cursor/mcp.json(全局)或 .cursor/mcp.json;如需避免在文件中明文保存密钥,请使用 ${env:BB_API_KEY} 代替字面值:

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

完整的 Cursor 教程,包含一些注意事项和实时密钥演示:在 Cursor 中生成图像。

VS Code / GitHub Copilot

添加至工作区中的 .vscode/mcp.json(或您的用户 settings.json);VS Code 会提示您输入一次密钥并加密存储:

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

完整的 VS Code / Copilot 教程,包含一些注意事项和实时密钥演示:在 VS Code 中生成图像:Copilot MCP 配置指南。

Windsurf

添加至 ~/.codeium/windsurf/mcp_config.json:

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

Windsurf MCP Setup: Generate Images in Cascade

Cline

{
  "mcpServers": {
    "bananabanana": {
      "type": "streamableHttp",
      "url": "https://bananabanana.pro/api/mcp",
      "headers": {
        "Authorization": "Bearer bb_live_YOUR_KEY"
      },
      "disabled": false,
      "autoApprove": ["list_models", "get_account", "get_result"]
    }
  }
}

Cline MCP Server: Generate Images From Your Editor

任何其他 MCP 客户端(原生 JSON-RPC)

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

除 ping 和发现类列表(tools/list、prompts/list、resources/list)之外的所有方法都需要凭据,initialize 也不例外:未认证的握手会返回带 WWW-Authenticate 质询的 401。这种不对称是有意为之,并非缺陷:连接器客户端正是通过该质询发现本服务器使用 OAuth。无需密钥仍可读取工具目录。

更喜欢看图文教程?该指南 在 Claude Code 中生成图像 完整涵盖了 Claude 的端到端配置,并包含四个真实用例及其实际成本。

03支持的客户端

客户端兼容性

MCP 是一种开放协议:any 任何支持 Streamable HTTP 且能够附加 Authorization 请求头的客户端均可连接。当前支持状态(已对照各厂商官方文档验证,最近一次检查于 2026 年 8 月):

客户端当前可用?连接方式
Claude Code是claude mcp add --transport http … --header
Claude Desktop / claude.ai是自定义连接器:粘贴 URL 并用 OAuth 登录(请求头密钥也可用,beta)
Cursor是.cursor/mcp.json:url + headers,通过 ${env:…} 传入敏感信息 —— 参见上方代码片段
VS Code / GitHub Copilot是.vscode/mcp.json:type: "http" + url + headers;将密钥存为 promptString 输入 —— VS Code 将提示输入一次并保持加密
ChatGPT desktop / Codex CLI / IDE是共用 ~/.codex/config.toml:url + bearer_token_env_var(密钥放环境变量)。ChatGPT 网页版连接器改用 OAuth 登录,而不是粘贴密钥
Gemini CLI是在 settings.json 中配置 httpUrl + headers
Windsurf是serverUrl + headers in mcp_config.json (Devin Local agent: url + transport: "http"). Setup guide
Cline是type: "streamableHttp" + url + headers in the MCP settings JSON. Setup guide
xAI API (Grok)是使用带有 server_url 和向服务器发送的 authorization 值的 MCP 工具 Setup guide
grok.com (web)部分支持自定义连接器接受服务器 URL(Connectors → New Connector → Custom);登录走我们的 OAuth 2.1 流程
ZCode (GLM-5.2)是Settings → MCP Servers → 选择 HTTP + Authorization 请求头;Claude Code 内的 GLM-5.2 继承 Claude Code 的配置
其他客户端是基于 HTTPS 的原生 JSON-RPC —— 参见下文通过代码调用

Codex 示例 —— 添加至 ~/.codex/config.toml 并导出 BB_API_KEY=bb_live_…:

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

完整的 Codex 教程 —— 通过同一个配置关联 CLI、IDE 扩展和 ChatGPT 桌面版,包含注意事项 and 实时密钥演示:Codex MCP 配置:通过同一个 config.toml 生成图像与视频。

04无需 SDK

通过代码调用

不使用 MCP 客户端?您不需要它,同样也不需要 SDK。服务器是基于 HTTPS 的纯 JSON-RPC 2.0:一个 POST 接口、一个 Bearer 请求头和单次 JSON 响应。它是无状态的,因此无需管理会话握手 —— tools/call 可以作为来自 curl、Python、TypeScript 或任何其他能发送 HTTP 请求的客户端的第一次请求直接运行。

curl

# start an image generation (charges one image, $0.03 on the default Lite 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

仅使用 requests —— 无需 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

零依赖 —— 内置 fetch(Node 18+、Deno、Bun 及浏览器):

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);

编写脚本时需要注意的细节:

  • 每个工具响应都会包含两次相同的 JSON:机器可读的 result.structuredContent 和 result.content 中的文本块 —— 解析您认为更简便的格式即可。
  • 视频(和多图批量生成)是两步调用:第一次调用 generate_video 会返回报价且不扣费;再次调用并将 confirm_cost 设置为报价金额即可开始生成。
  • 在生成调用中传入 idempotency_key —— 网络重试绝不会导致重复扣费。
  • tools/list 无需密钥即可运行,因此您可以在注册账户前探索完整的 Schema。每个密钥每分钟的工具调用限制为 20 次。
05工具

十个专用工具

工具费用功能描述
list_models免费所有模型及其最新单价、分辨率和限制。
get_account免费余额、密钥消费上限和今日用量。
top_up免费创建安全的余额充值链接。OAuth 仅获得充值权限;API 密钥用户使用个人资料页。
generate_image$0.03–$0.20在 Nano Banana 2 Lite / 2 / 2.1 / Pro 上进行文本生成图像,最高支持 4K。返回一个 job_id。
edit_image单张图像的价格通过文本指令修改已完成的图像(多轮编辑)。
generate_video$0.10–$6.00Veo 3.1 系列或 Omni Flash(均带声音)、Wan 3.0,可从首帧和参考图开始生成。始终在开始前先提供精确报价。
edit_video$0.09–1.00Omni Flash 的视频转视频编辑:使用自己的片段或公开 URL——改风格、替换物体、重新打光。仅前 10 秒,输出带声音的 720p。
generate_speech$0.01 / 200 字符生成单人或双人 WAV 语音。每开始 200 个字符计费一次。
get_result免费轮询任务结果:托管媒体 URL(24 小时有效链接)、扣除费用、剩余余额及内联图像预览。
list_generations免费最近的生成历史记录 —— 与网站端同步共享。
06价格

2026年通过 MCP 生成要多少钱?

  • 价格由 list_models 实时提供 —— 与网站端使用相同的数据源。
  • 每次视频(和多图批量生成)调用首先返回报价且不扣费;代理通过 confirm_cost 再次发起调用即可开始生成。
  • 每个结果中均包含 cost_charged_usd 和 balance_remaining_usd。
  • 上游失败以及内容过滤拦截将自动退款 —— 与网页端政策完全一致。
  • 可选的 idempotency_key 保证了因网络重试绝不会导致重复扣费。
07示例

真实对话场景

→ 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}
→ generate_speech {"text": "Hi, I'm Mia — today we test three budget tripods.", "voice": "Kore"}
← {"job_id": "cmsp…", "status": "completed", "url": "https://…/voice.wav"}
→ generate_video {"model": "wan-3.0", "duration": 6, "resolution": "720p", "aspect_ratio": "9:16",
                  "reference_images": ["cmimg…"], "reference_audios": ["cmsp…"],
                  "prompt": "The presenter from Image 1 looks into the camera and says: "First up — the lightest one.""}
← {"status": "confirmation_required", "quoted_cost_usd": 0.60, "input_audio_seconds": 3.4,
   "voice_reference_note": "Voice samples are not billed. The character will speak with the timbre of Audio 1; …"}
→ generate_video {..., "confirm_cost": 0.60}
← {"job_id": "cmxy…", "status": "processing"}   // repeat with new lines — same voice, same face
08安全

媒体 URL 与安全性

  • 生成的 URL 带有签名且在 24 小时内有效;媒体文件本身保存在您的账户中 —— 再次调用 get_result 即可获取最新链接,或直接从网站下载。
  • API 密钥经哈希后存储,且仅在创建时显示一次;您可以随时在个人资料中将其撤销。
  • OAuth 连接的访问令牌有效期 1 小时,刷新令牌每次刷新都会轮换;仅存哈希,且只对本服务器有效。在个人资料中断开应用会立即使其令牌失效。
  • 每个密钥的使用日志(包括工具、模型、费用和提示词预览)均可在 个人资料 → MCP API Keys 中查看。
  • 通过 MCP 生成的记录与网页端生成的记录共享相同的历史记录和分析数据。
09按次付费

x402:用 USDC 按次付费,无需账户

x402 是一种开放协议,让智能体用稳定币为单次请求付费。它是独立于 MCP 服务器的端点:POST /api/x402。无需账户、API 密钥或充值。

  1. 发送工具名称及其参数,服务器会返回 402 和该次调用的确切价格。
  2. 在 Base 网络上用 USDC 签署付款,并带上 X-PAYMENT 请求头重新发送请求。
  3. 图片和语音在同一响应中返回。视频会返回 job_id;可通过 GET /api/x402/result/{jobId} 免费查询结果。

可用工具:generate_image、generate_speech、generate_video。价格与网页工作室和 MCP 相同;一次调用的费用就是生成的费用,没有最低充值。

如果已付费的视频失败,付款方会收到等额的抵扣令牌,有效期 90 天。在之后的调用中以 refund_token 传入即可。付款不会在链上退回。包含当前价格的机器可读目录位于 GET /api/x402。

10常见问题

关于 Nano Banana MCP 服务器的常见问题

什么是 Nano Banana MCP 服务器?

这是一个远程 MCP 服务器,把 Nano Banana 图像模型连同视频和语音模型一起,以工具的形式提供给你的 AI 代理。代理调用 generate_image,服务器完成生成并返回成品文件的链接。服务器由 BananaBanana 托管在 https://bananabanana.pro/api/mcp,本地无需安装或运行任何东西;每次生成都按与网页工作室相同的价格从你的 BananaBanana 余额中扣费。

如何添加到 Gemini CLI?

Gemini CLI 通过 HTTP 连接远程 MCP 服务器,所以整个 Gemini CLI MCP 配置只需一条命令:gemini mcp add --transport http --scope user bananabanana https://bananabanana.pro/api/mcp -H "Authorization: Bearer YOUR_KEY"。当 CLI 询问是否信任该文件夹时选择信任,然后运行 gemini mcp list,确认服务器显示为 Connected。使用 --scope user 时,密钥会写入 ~/.gemini/settings.json,而不是项目里的 .gemini/settings.json,因此不会进入代码仓库。

如何连接 Claude Desktop、Claude Code 或 Cursor?

在 claude.ai 和 Claude Desktop 中,打开 Settings → Connectors → Add custom connector,粘贴 https://bananabanana.pro/api/mcp 并通过 OAuth 登录,无需复制任何密钥。在 Claude Code 中运行 claude mcp add --transport http bananabanana https://bananabanana.pro/api/mcp,然后输入 /mcp 并选择 Authenticate,或用 --header 传入 API 密钥。在 Cursor 中,把 URL 和 Authorization 请求头添加到 .cursor/mcp.json。这些客户端及其他客户端的现成配置,都在上方的快速开始部分。

一次调用要多少钱?

按生成付费,连接本身不收费:图片 $0.03–$0.20,视频根据模型、时长、分辨率和是否带声音为 $0.10–$6.00,语音每开始 200 个字符收费 $0.01。list_models、get_result、get_account 等辅助工具免费。视频和多图调用会先返回精确报价,在代理确认之前不扣任何费用;生成失败或被过滤的任务会自动退回余额。

需要 Google 账号或订阅吗?

不需要。既不需要 Google 账号,也不需要任何模型提供方的密钥,只要一个有预付余额的 BananaBanana 账号(用邮箱即可注册)。没有订阅,余额也不会过期。基于密钥的客户端使用你在个人资料中创建的 BananaBanana API 密钥;连接器类客户端则通过 OAuth 登录。通过 x402 付款的代理甚至不需要账号:每次调用都在 Base 网络上用 USDC 支付。

我的代理可以使用哪些模型?

图片:Nano Banana 2 Lite(默认)、最高 4K 的 Nano Banana 2 和 Nano Banana Pro,以及 GPT Image 2.5 和 Qwen Image 3.0 Pro。Nano Banana 2.1 还支持最宽 8:1 的全景画幅。视频:Veo 3.1、Veo 3.1 Fast 和 Veo 3.1 Lite、Gemini Omni Flash、Wan 3.0 以及 Grok Imagine Video 1.5。语音:提供 30 种音色的 Gemini 3.1 Flash TTS。list_models 工具会返回实时列表,附带价格、分辨率和限制,因此代理始终基于当前目录工作。

这是图像生成 MCP 服务器,也能生成视频吗?

可以。在同一个连接里,它既是图像生成 MCP 服务器(generate_image、edit_image),也能处理视频:generate_video 可根据文本、起始帧或参考图生成片段,edit_video 可以改变现有片段的风格或延长它。另外还有 generate_speech,可生成单人或双人配音。所有费用都从同一个余额支付,图片和视频会出现在与网页工作室相同的历史记录中。

准备好接入您的代理了吗?

创建一个密钥,添加一行配置 —— 让您的代理在几分钟内即可生成工作室级别的媒体。

获取您的 API 密钥