วันนี้ไถ YouTube ไปเจอคลิปจากช่อง AI Engineer ตัวนึง ชื่อว่า "MCP = Mega Context Problem" ของ Matt Carey จาก Cloudflare
ชื่อคลิปนี่ทำเอาต้องหยุดดู (เพราะเดือนที่ผ่านๆมาดราม่า MCP vs CLI ในทวิตเตอร์ก็ปั่นกันแบบไม่ลง) — ฟังจบแล้วก็เลยอยากเอามาเล่าให้ฟังว่า มุมที่ Cloudflare มอง MCP กับที่หลายๆคนมองนี่ มันต่างกันยังไง
MCP เปิดตัวมาประมาณเมษาปีที่แล้ว แล้วทุกคนก็ปั่นกันใหญ่ — เพราะมัน standardize tool calling ให้ agent ใช้ของกลางได้ ไม่ต้อง bundle tools เองในทุก app
แต่พอ Cloudflare เอา API ของตัวเองมาทำเป็น MCP server เพื่อให้ agent คุยได้ทั้งหมด — มันแตก
OpenAPI spec ของ Cloudflare หนัก 2.3 ล้าน tokens ; ลงเป็น MCP tool definitions ก็ราว 1.1 ล้าน tokens — แค่ description ของ tool อย่างเดียวก็กิน context ของ agent หมดแล้ว ยังไม่ทันใช้งานสักตัว
ทางออกที่ Cloudflare ลองก่อนคือ — แตก API ออกเป็น 16 MCP servers ตาม product แล้วให้ user เลือกใช้เอง (ใครจะใช้ Workers ก็ต่อ Workers, ใครจะใช้ R2 ก็ต่อ R2) แต่ก็เจอปัญหา 2 อย่าง:
- User ต้องมาเลือกเอง — UX พัง
- แต่ละ server ไม่ครอบคลุม API ทั้งหมด — เหลือ endpoint ตกค้างเยอะ (Cloudflare มี ~2,600 endpoints แต่ MCP servers ครอบคลุมจริงแค่บางส่วน)
Matt สรุปสั้นๆว่า "We did it all wrong" — เราคิดผิดตั้งแต่ต้น
ในคลิป Matt วาง 3 ทางที่ทุกวันนี้คนถกกันบนทวิตเตอร์:
1. CLI — ให้ agent ใช้ shell ไปเรียก CLI tool ตรงๆ (Wrangler, gh, ฯลฯ) ข้อดีคือ self-discoverable — มี --help มาให้แล้วในตัว ข้อเสียคือ agent ต้องมี shell access ซึ่งหลาย deployment ทำไม่ได้ (เช่น web client ที่ host บน vendor อื่น)
2. Tool search — ที่ Claude Code ใช้อยู่ตอนนี้ พอ user ถามคำถาม agent ทำ keyword matching ใน tool list แล้วโหลดประมาณ 8 tools ที่เกี่ยวข้องที่สุดเข้า context ส่วนที่เหลือไม่โหลด ผลคือใช้ ~2,100 tokens เผื่อ tool definitions แต่ใช้จริงประมาณ 500
3. Code Mode — ทาง Cloudflare เอง: gen TypeScript types จาก OpenAPI spec แล้วให้ model เขียนโค้ดเอง เรียก API ผ่าน typed SDK
ของ Code Mode นี่แหละที่ Matt ปั่นที่สุด — เพราะมันยุบ "tool นับพัน" เหลือ tool เดียวคือ code แล้ว model ก็ใช้ความสามารถที่มันถนัดอยู่แล้ว (เขียนโค้ด) ไปคุย API ที่ไหนก็ได้
Matt ยอมรับว่า Cloudflare เผยแพร่ Code Mode ตั้งแต่ฤดูร้อนปีที่แล้ว แต่ client (= agent) แทบไม่มีใครเอาไปใช้
เหตุผล: รันโค้ดที่ AI gen ขึ้นมาเองโดยไม่มีคนตรวจ มันคือ CV (security vulnerability)
ลองนึก ถ้าเมื่อ 3 ปีก่อนคุณบอกใครว่า "เราจะ exec code ที่ LLM gen มา บนเครื่อง user เลย" — เขาจะหาว่าคุณบ้า มัน exfiltrate secrets ได้, รัน infinite loop ได้, ขุด crypto ได้ — สารพัด
แต่ตอนนี้ของเล่นใหม่ๆพร้อมแล้ว — Cloudflare WorkerD (V8 isolate), Deno run, Pydantic Monty (Python sandbox) — พวกนี้คือ "primitive ใหม่" ที่ทำให้รัน untrusted code ได้แบบมี guardrail (เช่น flick boolean เพื่อ block internet access, หรือ whitelist เฉพาะบาง domain)
Matt วาดภาพว่าในอีกไม่นาน เราจะเห็นเทรนด์นี้ชัดขึ้น:
- Server-side: ทุกที่ต้องเตรียมตัวรับศึก — rate limit ดีๆ เพราะ AI gen for-loop ยิง API เป็นล้าน request ได้ใน sandbox เดียว
- Client-side: programmatic tool calling จะเป็นเรื่องปกติ พร้อม "saved mini scripts" — agent จะ save script ที่ user ใช้บ่อย ไว้รันซ้ำเป็น cron ได้ (เช่น scrape เว็บนึงทุกวัน)
- Framework: MCP จะกลายเป็น middleware แค่เปิด flag
mcp: trueใน Next.js / fullstack framework ก็ได้
ผมเห็นด้วยกับ diagnosis ของ Matt 90% — context window ไม่ใช่ปัญหาของ MCP, มันคือปัญหาของ agent ที่โหลดทุกอย่างเข้าไปไม่เลือก
แต่จุดที่ Matt ไม่พูด คือ Code Mode ที่ปั่นว่าดีนี่ มัน work เพราะ Cloudflare มี WorkerD isolate เป็น infra พื้นฐานอยู่แล้ว — ของแบบนี้ build ขึ้นมาเองยากมาก แพงด้วย
ถ้าคุณเป็น API provider เล็กๆ หรือเป็น indie dev อยากเปิด MCP ให้ user ใช้ — คุณไม่มี isolate infrastructure แบบ Cloudflare รออยู่ในมือ เลือกได้แค่ 2 ทางจริงๆ:
- ซื้อ Cloudflare / Deno Deploy / Modal: ได้ sandbox สำเร็จรูป แต่ผูก vendor + ค่ารันเพิ่มต่อ request
- ทำ tool search เอง: เหนื่อยน้อยกว่า ไม่ต้อง host code execution แต่ user กิน context มากกว่า
ผมเอง project ส่วนตัวก็ใช้ Claude Code ที่มี tool search built-in อยู่แล้ว — มันใช้ได้จริง ไม่ perfect แต่ก็ไม่ถึงกับต้องไปเสกเอา code execution sandbox มาวางใน stack ตัวเอง
อีกอย่าง — Matt บอกว่า "MCP จะเป็น middleware ใน framework แค่ flip flag" ซึ่งฟังเหมือนยุค Auth.js / next-auth ตอนแรกๆ — ผมว่าทิศทางถูก แต่ไม่ใช่ปลายปีนี้แน่ๆ (เพราะ MCP TypeScript SDK ยังต้องทำให้ stateless ก่อน — ตอนนี้ยัง stateful อยู่เลย) ผมเดาว่าน่าจะกลางปีหน้ามากกว่า
- ปัญหา MCP context แตก ไม่ใช่ปัญหาของ protocol — มันคือปัญหาของวิธีโหลด tool ของ client
- 3 ทางแก้: CLI / tool search / Code Mode — แต่ละทางมี trade-off ของตัวเอง
- Code Mode น่าจะเป็นอนาคต ถ้ามี sandbox primitive ดีพอ — แต่วันนี้ยังเป็นเกมของ infra player ใหญ่
- ถ้าคุณเป็น indie dev ตอนนี้ — tool search ยังเป็นทางที่เหนื่อยน้อยที่สุด
- ถ้าคุณ build API service — เตรียม rate limit ให้ดี เพราะอีกหน่อย AI จะ for-loop ยิงคุณจริงๆ
โลกเขียนโค้ดของ AI กำลังจะกลับไปยุค "ส่ง punch card ให้รันบนเครื่อง mainframe" — แค่คราวนี้ punch card คือ code ที่ LLM เขียน และ mainframe คือ V8 isolate ของ Cloudflare
Happy hacking ครับ 🛠️
แหล่งอ้างอิง: MCP = Mega Context Problem — Matt Carey @ AI Engineer