สำหรับเอเจนต์ AI และไคลเอนต์ MCP
BananaBanana MCP Server
สร้างภาพและวิดีโอ AI ได้โดยตรงจาก Claude Desktop, Claude Code และไคลเอนต์ MCP อื่น ๆ — หักค่าบริการรายครั้งจากยอดคงเหลือใน BananaBanana ของคุณ ไม่มีระบบสมาชิก
เอ็นด์พอยต์เดียว ครบทุกโมเดล
เซิร์ฟเวอร์ Model Context Protocol ระยะไกลที่ให้บริการชุดเครื่องมือสร้างทั้งหมดของ BananaBanana ในรูปแบบเครื่องมือสำหรับเอเจนต์: ไม่ว่าจะเป็นภาพจาก 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 key จากโปรไฟล์ของคุณ (มีแผนรองรับ OAuth 2.1 ในอนาคต)
- การจำกัดอัตราใช้งาน: เรียกใช้เครื่องมือได้ 20 ครั้งต่อนาทีต่อคีย์ และสามารถกำหนดวงเงินการใช้งานสูงสุดต่อวันสำหรับแต่ละคีย์ได้
- ไม่มีไคลเอนต์ MCP ใช่ไหม? เอ็นด์พอยต์เดียวกันนี้เป็นเพียง JSON-RPC ทั่วไปผ่าน HTTPS — คุณสามารถเรียกใช้จาก curl, Python หรือ TypeScript ได้ทันทีโดยไม่ต้องพึ่งพา SDK ใด ๆ
- การสร้างที่ล้มเหลวหรือถูกปฏิเสธโดยตัวกรองเนื้อหาจะได้รับการคืนเงินโดยอัตโนมัติ
- เปิดดูเอกสารประกอบ,
server.jsonและคัดลอกตัวอย่างไคลเอนต์ที่พร้อมใช้งานได้ใน bananabanana-mcp GitHub repository
เชื่อมต่อเสร็จสมบูรณ์ใน 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) ซึ่งจำเป็นต้องมี Node.js สำหรับบริดจ์ mcp-remote:
{
"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 รวมถึงข้อจำกัดและตัวอย่างการใช้งานคีย์จริง: Generate Images in 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 รวมถึงข้อจำกัดและตัวอย่างการใช้งานคีย์จริง: Generate Images in VS Code: Copilot MCP Setup Guide
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"}ต้องการคู่มือแนะนำหรือไม่? บทแนะนำเรื่อง Generate Images in Claude Code จะครอบคลุมการตั้งค่า Claude ตั้งแต่เริ่มต้นจนจบ พร้อมตัวอย่างการใช้งานจริง 4 กรณีและค่าใช้จ่ายจริง
ความเข้ากันได้ของไคลเอนต์
MCP เป็นโปรโตคอลเปิด: ไคลเอนต์ใดก็ตามที่รองรับ Streamable HTTP และสามารถแนบเฮดเดอร์ Authorization จะสามารถเชื่อมต่อได้ทันที สถานะปัจจุบัน อ้างอิงตามเอกสารอย่างเป็นทางการของผู้พัฒนาแต่ละราย (อัปเดตล่าสุด กรกฎาคม 2026):
| ไคลเอนต์ | ใช้งานได้แล้ววันนี้? | วิธีการ |
|---|---|---|
| Claude Code | ใช่ | claude mcp add --transport http … --header |
| Claude Desktop / claude.ai | ใช่ | ตัวเชื่อมต่อแบบกำหนดเองพร้อมเฮดเดอร์คำขอ (เวอร์ชันเบต้า กำลังทยอยเปิดตัว) หรือใช้บริดจ์ mcp-remote |
| 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 | ใช่ | httpUrl + headers ใน settings.json |
| xAI API (Grok) | ใช่ | เครื่องมือ MCP พร้อมค่า server_url และ authorization ส่งไปยังเซิร์ฟเวอร์ |
| grok.com (web) | บางส่วน | ตัวเชื่อมต่อแบบกำหนดเองที่รับ URL เซิร์ฟเวอร์ (Connectors → New Connector → Custom) เนื่องจากในเอกสารไม่ได้ระบุว่ารองรับการวาง API key ในเฮดเดอร์หรือไม่ ช่องทางนี้จึงอาจต้องรอ OAuth 2.1 ของเราที่กำลังจะเปิดตัว |
| ZCode (GLM-5.2) | ใช่ | Settings → MCP Servers → เลือกประเภท HTTP + เฮดเดอร์ Authorization โดย GLM-5.2 ภายใน Claude Code จะสืบทอดการตั้งค่าร่วมกับ Claude Code |
| แพลตฟอร์มอื่น ๆ | ใช่ | JSON-RPC ดั้งเดิมผ่าน HTTPS — ดูที่ เรียกใช้งานจากโค้ด ด้านล่าง |
ตัวอย่างสำหรับ 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 Setup: Images and Video from One config.toml
เรียกใช้งานจากโค้ดได้โดยตรง
ไม่ได้ใช้ไคลเอนต์ MCP ใช่ไหม? ไม่จำเป็นต้องมีเลย — และไม่จำเป็นต้องใช้ SDK เช่นกัน เซิร์ฟเวอร์นี้เป็นเพียง JSON-RPC 2.0 ทั่วไปผ่าน HTTPS: มีเอ็นด์พอยต์ POST เพียงตัวเดียว, เฮดเดอร์ Bearer และส่งคืนผลลัพธ์เป็น JSON บล็อกเดียว ทำงานแบบไร้สถานะ (Stateless) จึงไม่ต้องเชื่อมต่อหรือจัดการเซสชันใด ๆ — คำสั่ง tools/call สามารถใช้งานเป็นคำขอแรกสุดจาก curl, Python, TypeScript หรืออะไรก็ตามที่สามารถส่งคำขอ 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
ใช้เพียงแค่ไลบรารี 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
ปราศจากไลบรารีภายนอก (Zero dependencies) — ใช้ 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สามารถใช้งานได้โดยไม่ต้องมีคีย์ เพื่อให้คุณศึกษารูปแบบโครงสร้างข้อมูลทั้งหมดได้อย่างเต็มที่ก่อนสมัครใช้งาน ทั้งนี้การเรียกใช้เครื่องมือถูกจำกัดไว้ที่ 20 ครั้งต่อนาทีต่อหนึ่งคีย์
เจ็ดเครื่องมือเฉพาะทางสำหรับแต่ละงาน
| เครื่องมือ | ค่าใช้จ่าย | คำอธิบายการทำงาน |
|---|---|---|
| list_models | ฟรี | แสดงข้อมูลโมเดลทั้งหมดพร้อมราคาต่อหน่วยแบบเรียลไทม์ ความละเอียด และข้อจำกัดต่าง ๆ |
| get_account | ฟรี | ตรวจสอบยอดคงเหลือ วงเงินการใช้งานสูงสุดของคีย์ และข้อมูลการใช้งานประจำวัน |
| generate_image | $0.03–$0.20 | แปลงข้อความเป็นภาพด้วย Nano Banana 2 Lite / 2 / Pro ความละเอียดสูงสุด 4K และส่งคืนค่า job_id |
| edit_image | ราคาต่อหนึ่งภาพ | ปรับแต่งภาพที่สร้างเสร็จแล้วด้วยคำสั่งข้อความ (รองรับการแก้ไขอย่างต่อเนื่องหลายครั้ง) |
| generate_video | $0.10–$4.40 | สร้างวิดีโอด้วยกลุ่มโมเดล Veo 3.1 หรือ Omni Flash (มาพร้อมเสียงเสมอ) โดยระบบจะเสนอราคาค่าใช้จ่ายที่ชัดเจนให้ก่อนทุกครั้ง |
| get_result | ฟรี | ตรวจสอบผลลัพธ์ของงาน: ส่งคืน URL ของสื่อที่โฮสต์ไว้ (ลิงก์มีอายุ 24 ชั่วโมง) ค่าบริการที่หักไป ยอดคงเหลือ และตัวอย่างภาพพรีวิว |
| list_generations | ฟรี | แสดงประวัติการสร้างผลงานล่าสุด ซึ่งแชร์ข้อมูลร่วมกับบนหน้าเว็บไซต์ |
โปร่งใสทุกค่าใช้จ่ายในตัว
- ราคาจะอัปเดตแบบเรียลไทม์ผ่านระบบ
list_models— ซึ่งเป็นแหล่งข้อมูลเดียวกับที่ใช้บนหน้าเว็บไซต์ - การสร้างวิดีโอ (และภาพจำนวนมากในครั้งเดียว) จะแจ้งใบเสนอราคาให้ทราบก่อนโดยไม่มีการคิดค่าใช้จ่าย จากนั้นเอเจนต์จะเรียกใช้คำสั่งซ้ำพร้อม
confirm_costเพื่อเริ่มต้นทำงานจริง - ทุกผลลัพธ์งานจะระบุค่า
cost_charged_usdและbalance_remaining_usdไว้อย่างชัดเจน - หากระบบต้นทางขัดข้องหรือเกิดการปฏิเสธจากตัวกรองเนื้อหา ยอดเงินจะได้รับคืนโดยอัตโนมัติ — เช่นเดียวกับนโยบายบนเว็บแอป
- ตัวเลือก
idempotency_keyช่วยให้มั่นใจว่าการลองใหม่อีกครั้งจะไม่เกิดการเรียกเก็บเงินซ้ำซ้อน
บทสนทนาที่เกิดขึ้นจริง
→ 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}URL ของสื่อและความปลอดภัย
- URL ผลลัพธ์จะได้รับการลงชื่อรับรองความปลอดภัยและใช้งานได้นาน 24 ชั่วโมง โดยตัวไฟล์สื่อจะยังคงเก็บรักษาไว้อยู่ในบัญชีของคุณ — คุณสามารถเรียกคำสั่ง
get_resultเพื่อรับลิงก์ใหม่ หรือดาวน์โหลดโดยตรงผ่านหน้าเว็บไซต์ได้ตลอดเวลา - API key จะถูกเก็บรักษาในรูปแบบแฮช (Hashed) และแสดงให้เห็นเพียงครั้งเดียวตอนเริ่มสร้าง โดยคุณสามารถขอยกเลิกสิทธิ์คีย์เหล่านั้นได้ทุกเมื่อผ่านหน้าโปรไฟล์ของคุณ
- บันทึกประวัติการเรียกใช้ของแต่ละคีย์ (เครื่องมือ, โมเดล, ค่าใช้จ่าย, ตัวอย่างพรอมต์) จะแสดงให้คุณตรวจสอบได้ในหน้าโปรไฟล์ → MCP API Keys
- ผลงานสร้างสรรค์จากระบบ MCP จะแสดงอยู่ในประวัติและระบบการวิเคราะห์วิจัยส่วนเดียวกันกับผลงานที่สร้างบนหน้าเว็บไซต์
พร้อมเชื่อมต่อเอเจนต์ของคุณแล้วหรือยัง?
สร้างคีย์ขึ้นมา เพิ่มโค้ดการตั้งค่าเพียงบรรทัดเดียว — แล้วเอเจนต์ของคุณจะพร้อมสร้างสรรค์สื่อระดับสตูดิโอได้ภายในไม่กี่นาที
รับ API key ของคุณ