Dành cho AI agent & MCP client

BananaBanana MCP Server

Tạo hình ảnh và video AI trực tiếp từ Claude Desktop, Claude Code và bất kỳ MCP client nào khác — tính phí theo mỗi lần tạo từ số dư BananaBanana của bạn. Không cần đăng ký gói.

Tạo API keyHình ảnh từ $0.03 · video từ $0.10
01GIỚI THIỆU

Một endpoint, mọi mô hình

Một máy chủ Model Context Protocol từ xa cung cấp toàn bộ bộ công cụ tạo của BananaBanana dưới dạng các công cụ dành cho agent: hình ảnh Google Nano Banana 2 Lite / 2 / Pro (chỉ từ $0.03), video Veo 3.1 / Fast / Lite và Gemini Omni Flash có âm thanh (đồng giá $1.00). Agent của bạn sẽ thấy giá trực tiếp, xác nhận chi phí trước khi chạy các tác vụ tốn kém, và mọi lượt tạo sẽ được lưu vào cùng một lịch sử và số dư như trên trang web.

  • Endpoint: https://bananabanana.pro/api/mcp (Streamable HTTP)
  • Xác thực: Bearer API key từ hồ sơ của bạn (hỗ trợ OAuth 2.1 đã được lên kế hoạch)
  • Giới hạn tần suất: 20 lượt gọi công cụ mỗi phút cho mỗi khóa; tùy chọn giới hạn chi tiêu hàng ngày cho từng khóa
  • Không có MCP client? Cùng một endpoint là JSON-RPC thuần túy qua HTTPS — gọi nó từ curl, Python hoặc TypeScript mà không cần bất kỳ SDK nào
  • Các lượt tạo thất bại hoặc bị chặn bởi bộ lọc sẽ tự động được hoàn tiền
  • Mở tài liệu, server.json và sao chép các ví dụ về client trong kho lưu trữ GitHub bananabanana-mcp
MCP clientClaude Code / Desktop, Cursor,VS Code, Codex, bất kỳ agent nàoBearer key/api/mcpbananabanana.proStreamable HTTP · 7 công cụtạoNhóm mô hìnhNano Banana · Veo 3.1Omni Flashtrên mỗi đơn vịSố dư của bạnthanh toán theo mỗi lần tạotự động hoàn tiền khi thất bại
02BẮT ĐẦU NHANH

Kết nối chỉ trong ba bước

1. Tạo tài khoản và nạp số dư. 2. Trong Hồ sơ → MCP API Keys tạo một khóa (chỉ hiển thị một lần). 3. Thêm máy chủ vào client của bạn:

Claude Code

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

Claude Desktop

Thêm vào claude_desktop_config.json (Settings → Developer → Edit Config); yêu cầu Node.js cho cầu nối mcp-remote:

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

Cursor

Thêm vào ~/.cursor/mcp.json (toàn cục) hoặc .cursor/mcp.json trong dự án; để không để lộ khóa trong tệp, hãy sử dụng ${env:BB_API_KEY} thay vì giá trị trực tiếp:

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

Hướng dẫn đầy đủ về Cursor, bao gồm các lưu ý nhỏ và bản demo khóa trực tiếp: Tạo hình ảnh trong Cursor.

VS Code / GitHub Copilot

Thêm vào .vscode/mcp.json trong không gian làm việc (hoặc settings.json người dùng của bạn); VS Code sẽ nhắc nhập khóa một lần và lưu trữ khóa đó dưới dạng mã hóa:

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

Hướng dẫn đầy đủ về VS Code / Copilot, bao gồm các lưu ý nhỏ và bản demo khóa trực tiếp: Tạo hình ảnh trong VS Code: Hướng dẫn thiết lập Copilot MCP.

Windsurf

Thêm vào ~/.codeium/windsurf/mcp_config.json:

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

Bất kỳ MCP client nào khác (JSON-RPC thuần)

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

Bạn muốn xem hướng dẫn chi tiết? Bài viết hướng dẫn Tạo hình ảnh trong Claude Code sẽ bao gồm việc thiết lập Claude từ đầu đến cuối, với bốn trường hợp sử dụng thực tế và chi phí thực tế của chúng.

03TƯƠNG THÍCH VỚI

Khả năng tương thích của client

MCP là một giao thức mở: bất kỳ client nào hỗ trợ Streamable HTTP và có thể đính kèm header Authorization đều có thể kết nối. Trạng thái hiện tại, được xác minh theo tài liệu chính thức của từng nhà cung cấp (lần kiểm tra cuối cùng vào tháng 7 năm 2026):

ClientHoạt động ngay hôm nay?Cách kết nối
Claude Codeclaude mcp add --transport http … --header
Claude Desktop / claude.aiđầu nối tùy chỉnh với request header (bản beta, đang triển khai) hoặc cầu nối mcp-remote
Cursor.cursor/mcp.json: url + headers, khóa bảo mật qua ${env:…} — xem đoạn mã ở trên
VS Code / GitHub Copilot.vscode/mcp.json: type: "http" + url + headers; lưu trữ khóa làm đầu vào promptString — VS Code sẽ hỏi một lần và giữ nó được mã hóa
ChatGPT desktop / Codex CLI / IDEchia sẻ ~/.codex/config.toml: url + bearer_token_env_var (đưa khóa vào biến môi trường). Các đầu nối web ChatGPT là ngoại lệ — chúng xác thực qua OAuth, không phải khóa dán
Gemini CLIhttpUrl + headers trong settings.json
xAI API (Grok)công cụ MCP với server_url và giá trị authorization được gửi đến máy chủ
grok.com (web)một phầnđầu nối tùy chỉnh nhận một URL máy chủ (Connectors → New Connector → Custom); tài liệu không nêu rõ liệu header API-key được dán có được hỗ trợ hay không, vì vậy hướng đi này có thể cần OAuth 2.1 sắp tới của chúng tôi
ZCode (GLM-5.2)Settings → MCP Servers → loại HTTP + header Authorization; GLM-5.2 bên trong Claude Code thừa hưởng cấu hình của Claude Code
Bất kỳ công cụ nào khácJSON-RPC thuần qua HTTPS — xem mục Gọi từ mã nguồn bên dưới

Ví dụ về Codex — thêm vào ~/.codex/config.toml và xuất BB_API_KEY=bb_live_…:

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

Hướng dẫn đầy đủ về Codex — CLI, tiện ích mở rộng IDE và ChatGPT desktop từ một cấu hình duy nhất, cùng các lưu ý nhỏ và bản demo khóa trực tiếp: Thiết lập Codex MCP: Hình ảnh và Video từ một config.toml.

04KHÔNG CẦN SDK

Gọi từ mã nguồn

Không sử dụng MCP client? Bạn không cần nó — và bạn cũng không cần bất kỳ SDK nào. Máy chủ là JSON-RPC 2.0 thuần túy qua HTTPS: một endpoint POST, một Bearer header, một phản hồi JSON duy nhất. Nó là stateless (không lưu trạng thái), vì vậy không có quá trình bắt tay phiên cần quản lý — tools/call hoạt động như một yêu cầu đầu tiên từ curl, Python, TypeScript hoặc bất kỳ công cụ nào khác có thể gửi 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

Chỉ dùng thư viện requests — không cần thư viện 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

Không có phần phụ thuộc — tích hợp sẵn fetch (Node 18+, Deno, Bun, trình duyệt):

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

Những chi tiết quan trọng khi bạn viết mã nguồn:

  • Mỗi phản hồi của công cụ đều mang cùng một JSON hai lần: result.structuredContent máy có thể đọc và một khối văn bản trong result.content — hãy phân tích cú pháp khối nào dễ dàng hơn cho bạn.
  • Video (và các đợt tạo nhiều hình ảnh) là cuộc gọi hai bước: lệnh gọi generate_video đầu tiên trả về báo giá và không tính phí; hãy lặp lại lệnh gọi đó với confirm_cost được đặt thành số tiền được báo giá để bắt đầu.
  • Truyền một khóa idempotency_key trên các cuộc gọi tạo — việc thử lại mạng sẽ không bao giờ tính phí hai lần.
  • tools/list hoạt động mà không cần khóa, vì vậy bạn can khám phá các schema đầy đủ trước khi tạo tài khoản. Các lượt gọi công cụ được giới hạn ở mức 20 lượt mỗi phút cho mỗi khóa.
05CÔNG CỤ

Bảy công cụ chuyên dụng

Công cụChi phíMô tả chức năng
list_modelsmiễn phíTất cả các mô hình với giá trực tiếp trên mỗi đơn vị, độ phân giải và các ràng buộc.
get_accountmiễn phíSố dư, giới hạn chi tiêu khóa và lịch sử sử dụng hôm nay.
generate_image$0.03–$0.20Chuyển văn bản thành hình ảnh trên Nano Banana 2 Lite / 2 / Pro, lên đến 4K. Trả về một job_id.
edit_imagebằng giá một hình ảnhTinh chỉnh hình ảnh đã hoàn thành bằng hướng dẫn văn bản (chỉnh sửa nhiều lượt).
generate_video$0.10–$4.40Dòng mô hình Veo 3.1 hoặc Omni Flash (luôn đi kèm âm thanh). Luôn báo giá chính xác trước khi thực hiện.
get_resultmiễn phíKiểm tra trạng thái tác vụ: nhận các URL phương tiện được lưu trữ (liên kết có hiệu lực 24 giờ), chi phí đã tính, số dư còn lại và xem trước hình ảnh trực tiếp.
list_generationsmiễn phíLịch sử tạo gần đây — chia sẻ chung với trang web.
06BẢNG GIÁ

Tính minh bạch chi phí được tích hợp sẵn

  • Giá được cung cấp trực tiếp qua list_models — cùng nguồn dữ liệu mà trang web sử dụng.
  • Mỗi lượt gọi video (và đợt tạo nhiều hình ảnh) trước tiên sẽ trả về báo giá và không tính phí; agent lặp lại lượt gọi với confirm_cost để thực sự bắt đầu.
  • Mọi kết quả đều bao gồm cost_charged_usd and balance_remaining_usd.
  • Các lỗi hệ thống đầu nguồn và từ chối do bộ lọc nội dung sẽ được hoàn tiền tự động — cùng chính sách như ứng dụng web.
  • Tùy chọn idempotency_key đảm bảo việc thử lại cuộc gọi không bao giờ bị tính phí hai lần.
07VÍ DỤ

Một cuộc hội thoại thực tế

→ 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}
08BẢO MẬT

URL phương tiện & bảo mật

  • Các URL kết quả được ký số và có giá trị trong 24 giờ; bản thân tệp phương tiện vẫn nằm trong tài khoản của bạn — hãy gọi lại get_result để lấy liên kết mới hoặc tải xuống từ trang web.
  • Các API key được lưu trữ dưới dạng băm và chỉ hiển thị một lần khi tạo; bạn có thể thu hồi chúng bất kỳ lúc nào trong hồ sơ cá nhân của mình.
  • Nhật ký sử dụng cho từng khóa (công cụ, mô hình, chi phí, xem trước prompt) có thể xem được trong Hồ sơ → MCP API Keys.
  • Các lượt tạo qua MCP xuất hiện trong cùng một lịch sử tạo và phân tích như lượt tạo trên web.

Sẵn sàng kết nối agent của bạn?

Tạo một khóa, thêm một dòng cấu hình — agent của bạn sẽ tạo ra phương tiện chất lượng studio chỉ trong vài phút.

Lấy API key của bạn