AIエージェント&MCPクライアント向け

BananaBanana MCP Server

Claude DesktopやClaude Codeなど、あらゆるMCPクライアントから直接AI画像や動画を生成可能。料金はBananaBananaの残高から都度引き落とされます。サブスクリプション契約は不要です。

APIキーを作成画像 $0.03 から · 動画 $0.10 から
01概要

1つのエンドポイントで、すべてのモデルを利用

BananaBanana の全生成スタックをエージェント用ツールとして提供する、リモートの Model Context Protocol サーバーです。Google の Nano Banana 2 Lite / 2 / Pro 画像($0.03 から)、Veo 3.1 / Fast / Lite 動画、そして音声付きの Gemini Omni Flash(一律 $1.00)に対応しています。エージェントはリアルタイムの料金を確認し、高額な生成の前にコストを承認することができ、すべての生成結果はウェブサイトと同じ履歴と残高に反映されます。

  • エンドポイント:https://bananabanana.pro/api/mcp (Streamable HTTP)
  • 認証:プロフィールから発行した Bearer APIキー(OAuth 2.1 のサポートも計画中)
  • レート制限:1キーあたり毎分 20 ツール呼び出し。オプションでキーごとの1日あたりの利用上限額を設定可能
  • MCPクライアントをお持ちでない場合:同じエンドポイントはHTTPS経由のシンプルな JSON-RPC です。SDKなしで curl、Python、TypeScriptから直接呼び出しが可能です。
  • 生成の失敗やコンテンツフィルターによる却下が発生した場合は、自動的に返金されます。
  • bananabanana-mcp GitHub リポジトリに、公開ドキュメント、server.json、およびコピペで使えるクライアントのサンプルコードを用意しています。
MCPクライアントClaude Code / Desktop, Cursor,VS Code, Codex, 各種エージェントBearerキー/api/mcpbananabanana.proStreamable HTTP · 7つのツール生成モデルプールNano Banana · Veo 3.1Omni Flashユニットあたりお客様の残高生成ごとの都度払い失敗時は自動返金
02クイックスタート

3つのステップで接続

1. アカウントを作成して残高をチャージします。2. 「プロフィール」→「MCP API Keys」でキーを作成します(一度だけ表示されます)。3. お使いのクライアントにサーバーを追加します:

Claude Code

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

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

その他の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"}

詳しいチュートリアルをご希望ですか?Claude Code での画像生成では、Claude のセットアップ方法を4つの実用例と実際の発生コストを交えて最初から最後まで詳しく解説しています。

03対応クライアント

クライアント互換性

MCP はオープンなプロトコルです。Streamable HTTP に対応し、Authorization ヘッダーを付与できるクライアントであれば、どれでも接続可能です。各ベンダーの公式ドキュメントに照らし合わせて検証した現在の状況は以下の通りです(最終確認:2026年7月):

クライアント現在利用可能?接続方法
Claude Code可能claude mcp add --transport http … --header
Claude Desktop / claude.ai可能リクエストヘッダーに対応したカスタムコネクター(ベータ版、順次展開中)または mcp-remote ブリッジを使用
Cursor可能.cursor/mcp.jsonurl + headers、シークレットは ${env:…} 経由(上記のコードスニペットを参照)
VS Code / GitHub Copilot可能.vscode/mcp.jsontype: "http" + url + headers。キーを promptString 入力として保存(VS Code が初回に一度だけ確認し、暗号化して保存)
ChatGPT desktop / Codex CLI / IDE可能共有設定 ~/.codex/config.tomlurl + bearer_token_env_var(環境変数にキーを設定)。ただし、ChatGPT の ウェブ版 コネクターは例外で、コピペされたキーではなく OAuth を使用して認証します。
Gemini CLI可能settings.json 内の httpUrl + headers
xAI API (Grok)可能サーバーに送信される server_urlauthorization 値を持つ MCPツール
grok.com (web)一部対応カスタムコネクターはサーバーの URL を受け取ります(Connectors → New Connector → Custom)。ドキュメントには、コピペした APIキーヘッダーがサポートされているかどうかが明記されていないため、この方法には今後提供予定の OAuth 2.1 が必要になる場合があります。
ZCode (GLM-5.2)可能Settings → MCP Servers → type 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 デスクトップアプリを連携させる方法、挙動のクセ、デモキーの実演など)はこちら:Codex MCP セットアップ:1つの config.toml から画像と動画を生成

04SDKは不要

コードから直接呼び出す

MCP クライアントをお使いになりませんか? その必要はありません。SDK すら不要です。サーバーは HTTPS 経由のシンプルな JSON-RPC 2.0 です:1つの POST エンドポイント、Bearer ヘッダー、単一の JSON レスポンスのみ。ステートレスであるため、セッションハンドシェイクなどの複雑な管理は不要です。curl、Python、TypeScript、その他 HTTP 送信が可能なあらゆる環境から、最初の最初のリクエストとして直接 tools/call を呼び出すことができます。

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

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

スクリプト作成時に知っておくべき重要なディテール:

  • すべてのツールレスポンスには、機械可読な result.structuredContent と、テキストブロックである result.content の2つの形式で同じ JSON が含まれています。解析しやすい方を選択してください。
  • 動画(および複数画像のバッチ生成)は2ステップの呼び出しになります。最初の generate_video は見積もり料金を返し、この時点では課金されません。生成を開始するには、見積もられた金額を confirm_cost に設定して再度呼び出します。
  • 生成の呼び出し時に idempotency_key(べき等性キー)を渡すことで、ネットワークエラーによる再試行時の二重課金を防ぎます。
  • tools/list は APIキーなしで動作するため、アカウントを作成する前にスキーマの全容を確認できます。なお、ツール呼び出しは1キーにつき1分あたり20回に制限されています。
05ツール

7つの専用タスクツール

ツールコスト概要
list_models無料解像度、各種制約、およびリアルタイム of ユニット単価を含む全モデルのリストを取得。
get_account無料残高、キーごとの利用上限額、および当日の使用状況を取得。
generate_image$0.03–$0.20Nano Banana 2 Lite / 2 / Pro によるテキストからの画像生成(最大4K)。job_id を返します。
edit_image画像1枚分の料金テキストの指示に従って生成済みの画像を微調整(マルチターン編集)。
generate_video$0.10–$4.40Veo 3.1ファミリーまたは Omni Flash(常に音声付き)による動画生成。初回呼び出し時は必ず正確な見積もりを返します。
get_result無料ジョブのポーリング:ホストされたメディアの URL(24時間有効なリンク)、請求コスト、残り残高、インライン画像プレビューを取得。
list_generations無料最近の生成履歴のリストを取得(ウェブサイトと共有)。
06料金体系

コストの透明性を標準装備

  • 料金はウェブサイトと同じソースから、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}
08セキュリティ

メディアURLとセキュリティ

  • 生成結果の URL は署名付きで24時間有効です。メディアデータ自体はお客様のアカウントに保持されます。新しいリンクを取得するには再び get_result を呼び出すか、ウェブサイトから直接ダウンロードしてください。
  • APIキーはハッシュ化されて保存され、作成時に一度だけ表示されます。無効化(リボーク)はプロフィールからいつでも実行可能です。
  • キーごとの使用履歴(使用されたツール、モデル、コスト、プロンプトのプレビュー)は、プロフィール → MCP API Keys から確認できます。
  • MCP 経由の生成履歴は、ウェブでの生成履歴や分析データ(アナリティクス)と同じ場所に表示されます。

お使いのエージェントを接続する準備はできましたか?

キーを作成し、設定に1行追加するだけ。数分でエージェントがスタジオ品質のメディアを生成できるようになります。

APIキーを取得