กลับไปที่บล็อก
BananaBanana Teamtutorialmcpapi

Grok MCP: สร้างภาพและวิดีโอผ่าน xAI API

วิธีเชื่อมเซิร์ฟเวอร์ MCP ระยะไกลเข้ากับ Grok ผ่าน xAI API หรือคอนเนกเตอร์แบบกำหนดเองบน grok.com เพื่อสร้างภาพ วิดีโอ และเสียง พร้อมคอนฟิกจริงและราคาเริ่มต้น $0.03

Grok MCP: สร้างภาพและวิดีโอผ่าน xAI API

Remote MCP tools ใน Grok เป็นความสามารถฝั่งเซิร์ฟเวอร์ของ xAI API คุณระบุเซิร์ฟเวอร์ MCP ไว้ในอาร์เรย์ tools ของคำขอ แล้วรันไทม์ของ xAI เองจะเปิดการเชื่อมต่อ อ่านรายการเครื่องมือ และเรียกใช้มันขณะที่ Grok เขียนคำตอบ ไม่มีอะไรทำงานบนเครื่องคุณเลย นี่คือความต่างทั้งหมดจาก Cursor หรือ Claude Code ที่ไคลเอนต์ MCP อยู่ในเอดิเตอร์ตรงหน้าคุณ และเครื่องของคุณเป็นฝ่ายคุยกับเครือข่าย

คำตอบสั้น ๆ: เพิ่มออบเจ็กต์เดียวลงใน tools{"type": "mcp", "server_url": "https://bananabanana.pro/api/mcp", "server_label": "bananabanana", "authorization": "Bearer bb_live_…"} — แล้ว Grok จะได้เครื่องมือสร้างงานสิบตัว: ภาพด้วยตระกูล Nano Banana, วิดีโอด้วย Veo 3.1 และ Gemini Omni Flash, เสียงด้วย Gemini TTS ภาพเริ่มที่ $0.03 วิดีโอเริ่มที่ $0.10 และบัญชีใหม่มี $0.20 ให้ทดลอง ส่วนบน grok.com ใช้ URL เดียวกันนี้ใน Connectors → New Connector → Custom แม้ฝั่งการล็อกอินจะยังไม่ชัดนัก (มีหัวข้อแยกด้านล่าง)

ภาพประกอบเชิงบรรณาธิการ: ลูกโป่งคำพูดยื่นพู่กันไปยังตู้เซิร์ฟเวอร์ที่อยู่ไกลออกไป

ทุกอย่างที่พูดถึงฝั่งเราด้านล่างวัดจากคำขอจริงเมื่อวันที่ 1 กันยายน 2026 ส่วนทุกอย่างที่เกี่ยวกับฝั่ง xAI มาจากเอกสารของพวกเขาอย่างที่อ่านได้ในวันเดียวกัน และผมเลือกอ้างอิงคำต่อคำแทนการเรียบเรียงใหม่ เพราะ API ส่วนนี้ของเขาขยับอยู่เรื่อย

สองทางเข้า เซิร์ฟเวอร์เดียว

"Grok รองรับ MCP ไหม" จริง ๆ แล้วเป็นสองคำถาม และคำตอบไม่เหมือนกัน

ทางเข้าเอกสาร xAI ระบุว่าอย่างไรไคลเอนต์ MCP ทำงานที่ไหน
xAI APIRemote MCP tools ใช้ได้ใน "the xAI native SDK, the OpenAI compatible Responses API, and the Speech to Speech API"บนเซิร์ฟเวอร์ของ xAI
grok.comConnectors → New Connector → Custom: "Enter the MCP server URL and complete any required authentication"บนเซิร์ฟเวอร์ของ xAI
Grok ใน IDEไม่ปรากฏในเอกสารทั้งสองหน้าไม่ทราบ

ข้อจำกัดสองข้อจากหน้าเดียวกันควรอ่านซ้ำ เรื่องทรานสปอร์ต: "Only Streaming HTTP and SSE transports are supported" และเส้นทางที่เข้ากันได้กับ OpenAI จะเสียพารามิเตอร์ไปสองตัวคือ require_approval และ connector_id แปลว่าการขอให้ xAI แสดงการยืนยันก่อนเรียกใช้งานที่มีค่าใช้จ่ายทำไม่ได้ตรงนั้น คุณต้องทำเองหรือเลือกเครื่องมือให้ดี

เอนด์พอยต์ของเราเป็น Streamable HTTP แบบไร้สถานะ ซึ่งเป็นทรานสปอร์ตที่ผ่านเกณฑ์นั้นพอดี ไม่มีเฮดเดอร์เซสชันให้ประคอง ไม่มีสตรีม SSE ให้เฝ้า มีแค่หนึ่งคำขอ JSON-RPC ต่อหนึ่งคำตอบ JSON

ต่อ BananaBanana เข้ากับ xAI API

รูปแบบเล็กที่สุดที่ใช้งานได้ ยิง cURL ตรงไปที่ Responses API:

curl https://api.x.ai/v1/responses \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $XAI_API_KEY" \
  -d '{
    "model": "grok-4.6",
    "input": [
      { "role": "user",
        "content": "Generate a 16:9 product photo of a ceramic cup on linen, soft morning light. Use nano-banana-pro, then give me the URL." }
    ],
    "tools": [
      {
        "type": "mcp",
        "server_url": "https://bananabanana.pro/api/mcp",
        "server_label": "bananabanana",
        "server_description": "Image, video and speech generation on Google models",
        "authorization": "Bearer bb_live_your_key_here",
        "allowed_tools": ["list_models", "generate_image", "get_result"]
      }
    ]
  }'

สิ่งเดียวกันใน Python SDK ของ xAI ซึ่งชื่อพารามิเตอร์เปลี่ยนไปสองตัว:

from xai_sdk import Client
from xai_sdk.chat import user
from xai_sdk.tools import mcp
 
client = Client(api_key=os.environ["XAI_API_KEY"])
 
chat = client.chat.create(
    model="grok-4.6",
    tools=[
        mcp(
            server_url="https://bananabanana.pro/api/mcp",
            server_label="bananabanana",
            authorization=os.environ["BB_KEY"],          # extra_headers=… also works
            allowed_tool_names=["list_models", "generate_image", "get_result"],
        )
    ],
)
chat.append(user("Make me a 16:9 hero image of a ceramic cup on linen."))

คีย์ bb_live_… สร้างได้จากโปรไฟล์ของคุณ ในส่วน API Keys และจะแสดงเพียงครั้งเดียว

มีรายละเอียดสองข้อที่กินเวลาไปได้ทั้งเย็น

คำนำหน้า Bearer xAI อธิบาย authorization ว่า "a token that will be set in the Authorization header on requests to the MCP server" ซึ่งยังไม่ชัดว่าพวกเขาห่อค่าด้วย Bearer ให้หรือไม่ เซิร์ฟเวอร์ของเราไม่เดา ถ้าส่งโทเคนเปล่า ๆ มา คำบ่นที่ได้กลับไปก็ตรงไปตรงมา:

{"error":{"code":-32001,"message":"Unsupported Authorization scheme. Use 'Authorization: Bearer <token>'."}}

ฉะนั้นเขียนสคีมเองเลย: "authorization": "Bearer bb_live_…" ถ้าวันหนึ่งฝั่ง xAI ห่อซ้ำสองชั้น ให้ใช้วิธีที่ไม่กำกวมและกำหนดเฮดเดอร์ตรง ๆ ด้วย headers: {"Authorization": "Bearer bb_live_…"}

allowed_tools เป็นตัวเลือกแค่ในทางทฤษฎี เอกสารของ xAI พูดชัดว่าถ้าไม่ระบุ นิยามเครื่องมือทั้งหมดของเซิร์ฟเวอร์จะไหลเข้าไปในบริบทของโมเดล "if an MCP server exposes 10 different tools and you don't specify allowed_tools, all 10 tool definitions will be available" ของเรามีสิบตัวพอดี และครึ่งหนึ่งใช้เงินจริง ถ้าเป็นบอทสร้างภาพ ผมจะอนุญาตแค่ list_models, generate_image และ get_result แล้วค่อยขยายเมื่อจำเป็นต้องใช้วิดีโอจริง ๆ

ภาพประกอบเชิงบรรณาธิการ: บัตรเจาะรูกำลังเลื่อนเข้าช่องของเซิร์ฟเวอร์ มีพวงกุญแจแขวนอยู่ข้าง ๆ

Grok เห็นอะไรตอนมาเคาะประตู

นี่คือการจับมือของเรา รันจริงเพื่อบทความนี้ การอ่านรายการเครื่องมือไม่ต้องใช้ข้อมูลรับรองใด ๆ:

curl -s -X POST https://bananabanana.pro/api/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
list_models, get_account, top_up, generate_image, edit_image,
generate_video, edit_video, generate_speech, get_result, list_generations

ทุกอย่างที่ลงมือทำงานจริงจะตอบ 401 จนกว่าคุณจะแสดงโทเคน และในคำตอบมีตัวชี้ทางที่ไคลเอนต์ซึ่งทำตามมาตรฐานต้องการ:

HTTP/2 401
www-authenticate: Bearer realm="bananabanana",
  error_description="Authentication required. Connect this server with OAuth,
  or create an API key at https://bananabanana.pro/profile",
  resource_metadata="https://bananabanana.pro/.well-known/oauth-protected-resource/api/mcp",
  scope="mcp"

URL ใน resource_metadata จะคืนเอกสาร protected resource metadata ตามสเปกการให้สิทธิ์ของ MCP ซึ่งเป็นวิธีที่ไคลเอนต์รองรับ OAuth ใช้ค้นหาเซิร์ฟเวอร์ให้สิทธิ์ของเราได้เอง ถ้าไปทาง xAI API คุณจะไม่มีวันเจอ 401 นี้ เพราะคีย์ของคุณเดินทางไปพร้อมทุกการเรียก แต่กับเรื่องคอนเนกเตอร์ด้านล่าง มันสำคัญ

ภาพประกอบเชิงบรรณาธิการ: พนักงานเฝ้าประตูตรวจบัตรกระดาษหน้าตู้เครื่องมือที่เปิดอยู่

อีกหนึ่งข้อสังเกตเรื่องความเข้ากันได้ เพราะมันกัดคนที่เขียนไคลเอนต์เองอยู่บ่อย ๆ เราไม่บังคับเฮดเดอร์ Accept: application/json, text/event-stream และตอบเป็น JSON ธรรมดา เซิร์ฟเวอร์ที่ยืนกรานใช้ Accept แบบ SSE ต่างหากที่มักพังอย่างลึกลับเมื่ออยู่หลังเกตเวย์

ใบเสนอราคา งาน และการวนถาม: ขั้นตอนที่ทำเอเจนต์สะดุด

สร้างภาพคือเรียกครั้งเดียวแล้วรอ วิดีโอไม่ใช่แบบนั้น และตรงนี้เองที่ลูปเอเจนต์ซึ่งเขียนแบบ "เรียกเครื่องมือแล้วอ่านคำตอบ" จะค้าง

คำขอวิดีโอและภาพหลายรูปจะคืนใบเสนอราคาแทนที่จะเป็นงาน โมเดลต้องเรียกเครื่องมือรอบสองพร้อมใส่ confirm_cost ให้ตรงตัวเลขนั้นถึงระดับเซนต์ ก่อนจะมีการคิดเงินใด ๆ นี่คือลูกระนาดที่ตั้งใจวางไว้ เอเจนต์ไม่ควรใช้เงิน $4.40 ไปกับคลิป Veo 4K เพียงเพราะมีคนพิมพ์ว่า "ทำให้ดูเป็นหนังกว่านี้"

จากนั้นการสร้างจะเป็นแบบอะซิงโครนัส generate_image และ generate_video คืน job_id ทันที ส่วน get_result จะทำ long-polling ได้ถึง 30 วินาทีต่อการเรียกหนึ่งครั้ง และคุณต้องเรียกซ้ำจนสถานะนิ่ง ภาพมักมาถึงใน 10–60 วินาที ส่วนวิดีโอใช้เวลา 1–10 นาที ขึ้นกับโมเดลและความยาว

ผลในทางปฏิบัติกับ Responses API: ผู้ใช้หนึ่งเทิร์นอาจต้องใช้การเรียกเครื่องมือฝั่งเซิร์ฟเวอร์สี่ถึงห้าครั้ง และถ้าอินทิเกรชันของคุณจำกัดจำนวนสเต็ปไว้ที่สอง Grok จะรายงาน job_id แล้วหยุด เหมือนพนักงานที่รับออร์เดอร์เสร็จแล้วกลับบ้าน เผื่อพื้นที่ให้มันหน่อย และส่ง idempotency_key ในการเรียกสร้างงานด้วย เพื่อให้การลองใหม่ไม่กลายเป็นการคิดเงินรอบสอง

ความล้มเหลวคืนเงินให้เอง ถ้าตัวกรองเนื้อหาของ Google ปฏิเสธพรอมป์ต์ หรือการเรียกฝั่งต้นทางตาย ยอดเงินจะกลับคืนอัตโนมัติ และ get_result จะอธิบายว่าถูกปฏิเสธในขั้นไหน คุณไม่เคยต้องจ่ายให้วิดีโอที่ไม่ได้รับ

ภาพประกอบเชิงบรรณาธิการ: บัตรกระดาษถูกแลกเป็นภาพถ่ายที่เสร็จแล้วบนเคาน์เตอร์

grok.com ทำแบบนี้ได้ไหม

ได้บางส่วน และคำตอบที่ซื่อตรงมีช่องโหว่อยู่

xAI เขียนเส้นทางไว้ชัดเจน: เข้า grok.com/connectors กด New Connector เลือก Custom แล้ว "Enter the MCP server URL and complete any required authentication" เซิร์ฟเวอร์ต้องเข้าถึงได้จากอินเทอร์เน็ตสาธารณะ ซึ่งของเราชัดเจนว่าได้ ส่วนคอนเนกเตอร์ที่มีมาให้ หน้าเดียวกันบอกว่าใช้ OAuth ยืนยันตัวตน

ภาพประกอบเชิงบรรณาธิการ: ปลั๊กถูกยื่นไปยังเต้ารับที่ซ่อนอยู่ครึ่งหนึ่งหลังม่าน

สิ่งที่หน้านั้นไม่ได้บอกคือคอนเนกเตอร์แบบกำหนดเองรับวิธียืนยันตัวตนแบบใดบ้าง ประโยคเดียว "complete any required authentication" คือสเปกทั้งหมด และหน้านั้นอัปเดตล่าสุดเมื่อ 17 กรกฎาคม 2026

ฝั่งเราเป็นแบบนี้ เรารันเซิร์ฟเวอร์ให้สิทธิ์ OAuth 2.1 เต็มรูปแบบ: การลงทะเบียนไคลเอนต์แบบไดนามิก, PKCE ด้วย S256, protected resource metadata, resource indicators ครบตามสเปกการให้สิทธิ์ของ MCP ไคลเอนต์ใดก็ตามที่ทำตามสเปกจะเชื่อมต่อได้โดยเราไม่ต้องเขียนโค้ดเพิ่มแม้แต่บรรทัดเดียว ซึ่งคอนเนกเตอร์ของ Claude และ ChatGPT ก็ทำแบบนั้นพอดี ถ้าคอนเนกเตอร์แบบกำหนดเองของ Grok เดินตามโฟลว์เดียวกัน มันก็จะใช้งานได้เลย และคุณจะเห็นหน้าล็อกอินปกติพร้อมชื่อบัญชีของคุณ

แต่ถ้ามันแค่เก็บ URL ไว้โดยไม่ส่งข้อมูลรับรองใด ๆ คุณจะเห็นเครื่องมือครบสิบตัวในรายการของคอนเนกเตอร์ แล้วทุกการเรียกจะได้ 401 กลับมา การอ่านรายการเครื่องมือบนเซิร์ฟเวอร์เราเป็นแบบไม่ระบุตัวตน คอนเนกเตอร์จึงดูแข็งแรงได้ทั้งที่สร้างอะไรไม่ได้เลย

ตรงนี้ผมอยากพูดให้เด็ดขาดกว่านี้ ถ้าคุณเคยลอง ผลลัพธ์คุ้มค่าที่จะส่งอีเมลมาที่ [email protected] และตารางความเข้ากันได้บนหน้า MCP ของเราจะอัปเดตในวันเดียวกัน

ราคาเท่าไร

ราคาคิดต่อการสร้างหนึ่งครั้ง ตัดจากยอดเงินที่เติมไว้ล่วงหน้า ไม่มีค่าสมาชิก

อะไรโมเดลราคา
ภาพ, 1KNano Banana 2 Lite$0.03
ภาพ, 512–4KNano Banana 2$0.03–$0.13
ภาพ, 1K–4KNano Banana Pro$0.11–$0.20
วิดีโอ, 4 วินาที 720p ไม่มีเสียงVeo 3.1 Lite$0.10
วิดีโอ, เริ่มที่Veo 3.1 Fast$0.35
วิดีโอ, เริ่มที่Veo 3.1$0.70
วิดีโอมีเสียง, ต่อวินาทีGemini Omni Flash$0.10 ($0.30 สำหรับขั้นต่ำ 3 วินาที)
เสียงพูดGemini 3.1 Flash TTS$0.01 ต่อ 200 ตัวอักษร

ภาพถ่ายสินค้า ถ้วยเซรามิกผิวด้านบนผ้าลินินยับ ในแสงนุ่มจากหน้าต่าง สร้างด้วย Nano Banana Pro

ถ้วยใบนั้นคือพรอมป์ต์จากตัวอย่าง cURL ด้านบน ที่รันจริงระหว่างเขียนบทความนี้: Nano Banana Pro ที่ 2K คิดเงิน $0.11 เสร็จหลังเรียกเครื่องมือ 32 วินาที

บัญชีใหม่เริ่มที่ $0.20 ซึ่งได้ภาพ Lite หกรูป หรือคลิป Veo Lite สั้น ๆ หนึ่งคลิป พอสำหรับตรวจว่าต่อสายถูกไหม แต่ไม่พอสำหรับตัดสินโมเดลตัวดี ๆ และผมขอพูดตรง ๆ ดีกว่าเลี่ยง

การเติมเงินมีโบนัสตามยอด: 5% ตั้งแต่ $50 และ 10% ตั้งแต่ $100 โค้ดโปรโมชันที่เปิดใช้อยู่จะเพิ่มอีก 10% ของยอดเติม คิดจากฐานเดียวกัน ดังนั้นเติม $100 พร้อมโค้ดจะได้ $120 ตัวเลขล่าสุดอยู่ในส่วนราคาเสมอ

Grok สร้างภาพได้อยู่แล้ว ทำไมต้องอ้อม

คำถามที่แฟร์ และรายชื่อโมเดลของ xAI เองก็ตอบไปครึ่งหนึ่งแล้ว: พวกเขามี grok-imagine-image-2.0 และ grok-imagine-video-1.5 ถ้าอยากได้ภาพเร็ว ๆ ในแชท ก็ใช้ตัวนั้น เรื่องแบบนั้นไม่มีใครต้องใช้เซิร์ฟเวอร์ MCP

ภาพประกอบเชิงบรรณาธิการ: ประตูสองบาน บานหนึ่งเปิดสู่กล้องโพลารอยด์ อีกบานเปิดสู่โรงถ่ายภาพยนตร์ที่อยู่ไกล

เหตุผลที่จะส่งงานสร้างออกมาข้างนอกนั้นแคบกว่า และส่วนใหญ่เป็นเรื่องว่าจะใช้โมเดลไหน กับบิลอ่านออกแค่ไหน:

  • โมเดล Google ที่เจาะจง Nano Banana Pro สำหรับตัวอักษรในภาพและภาพสินค้า, Veo 3.1 สำหรับวิดีโอที่มีเสียงในตัว, Omni Flash เมื่อคุณอยากได้ทั้งเสียงและการแก้ไขแบบสนทนาบนคลิปเดิม
  • รู้ราคาก่อนถูกตัดเงิน list_models คืนราคาต่อหน่วยแบบสด ๆ และวิดีโอเสนอราคาก่อนใช้จ่าย คุณกำหนดงบให้เอเจนต์แล้วมันทำตามได้จริง
  • ยอดเงินก้อนเดียวใช้ได้ทุกไคลเอนต์ คีย์เดียวกันใช้ได้จาก Grok, Gemini CLI, Codex และสตูดิโอบนเว็บ และผลงานทุกชิ้นลงในประวัติเดียวกัน
  • คืนเงินเมื่อทำไม่สำเร็จ ซึ่งสำคัญกว่าที่ฟังดู เมื่อมีตัวกรองเนื้อหาอยู่ในวงจร

ต้นทุนที่ซื่อตรงของเส้นทางนี้: เพิ่มฮอปเครือข่ายหนึ่งชั้นกับลูปวนถาม, วิดีโอต้องมีขั้นยืนยัน, Omni Flash จำกัดที่ 720p และสคีมาของเครื่องมือที่ไคลเอนต์แคชไว้ตอนเชื่อมต่อ ทำให้พารามิเตอร์ใหม่ฝั่งเราต้องรอให้คุณเชื่อมต่อใหม่ Grok ถึงจะส่งมันได้ ไม่มีข้อไหนถึงตาย แต่ทุกข้อเป็นเรื่องจริง

FAQ

Grok รองรับเซิร์ฟเวอร์ MCP ไหม

รองรับ ในฝั่ง API Remote MCP Tools ของ xAI ทำงานได้ใน SDK ดั้งเดิม, Responses API ที่เข้ากันได้กับ OpenAI และ Speech to Speech API โดย server_url กับ server_label เป็นค่าบังคับ ส่วน authorization, headers และ allowed_tools เป็นตัวเลือก ส่วนบน grok.com คอนเนกเตอร์ MCP แบบกำหนดเองอยู่ที่ Connectors → New Connector → Custom

ต้องใช้ OAuth ไหม หรือคีย์ API พอ

สำหรับ xAI API คีย์ bb_live_… ก็พอ และง่ายกว่าด้วย ส่งไปใน authorization พร้อมคำนำหน้า Bearer ส่วน OAuth สำคัญกับไคลเอนต์แบบคอนเนกเตอร์ที่พาผู้ใช้ล็อกอินเอง เซิร์ฟเวอร์ของเรารองรับทั้งสองแบบบนเอนด์พอยต์เดียวกัน

ควรใช้โมเดล Grok ตัวไหน

ตัวอย่าง MCP ของ xAI ใช้ grok-4.6 ซึ่งเป็นค่าที่พวกเขาแนะนำอยู่ตอนนี้ โมเดลใดก็ตามที่รองรับเครื่องมือฝั่งเซิร์ฟเวอร์ก็ใช้ได้ สัญญาของตัวเครื่องมือไม่เปลี่ยนตามโมเดล

สร้างวิดีโอพร้อมเสียงด้วยวิธีนี้ได้ไหม

ได้ ผ่าน Veo 3.1 แบบมีเสียง หรือ Gemini Omni Flash ที่มีเสียงเสมอ เตรียมใจกับการยืนยันสองขั้นและการวนถามนานหนึ่งนาทีขึ้นไป Omni จำกัดที่ 720p จึงไม่ใช่ตัวเลือกสำหรับคลิปหลักแบบเต็มจอ

ถ้าการสร้างล้มเหลวจะเป็นอย่างไร

ค่าใช้จ่ายจะถูกคืนอัตโนมัติ และ get_result จะคืนเหตุผลจากฝั่งต้นทางพร้อมขั้นตอนถัดไปที่แนะนำ กรณีถูกตัวกรองเนื้อหาปฏิเสธ ควรลองใหม่ด้วยถ้อยคำที่ต่างออกไป พรอมป์ต์เดิมอาจผ่านในรอบที่สอง เพราะตัวกรองตัดสินจากพิกเซลที่สร้างออกมา ไม่ใช่แค่คำขอ

tutorialmcpapi