MCP คืออะไร — ต่อ AI agent เข้ากับ Supabase, Vercel, Stripe ยังไงให้ไม่เปิดประตูทิ้งไว้
MCP ทำให้ Claude Code หยิบข้อมูลและสั่งงานระบบจริงได้เอง ซึ่งแปลว่าความสะดวกมาพร้อมความเสี่ยง บทความนี้สรุปสิ่งที่ Supabase, Vercel และ Stripe เขียนไว้เองเรื่องการต่อ MCP อย่างปลอดภัย (ตรวจ ก.ย. 2026) และกติกาที่ผมใช้กับระบบที่แตะเงินจริง
โดย วรัญชัย ยิ่งคำนึง (Boom) · เผยแพร่ครั้งแรก · ตรวจทานล่าสุด
ตอนเริ่มใช้ Claude Code วิธีให้ข้อมูลที่คุ้นที่สุดคือก็อปวาง แต่พอสร้าง product จริง งานส่วนใหญ่คือการดึงข้อมูลจากที่หนึ่ง เทียบกับอีกที่ แล้วสั่งงานต่อ MCP ทำให้ agent ทำเรื่องพวกนี้เองได้ — และนั่นคือเหตุผลที่ต้องคิดเรื่องสิทธิ์ก่อนเรื่องความสะดวก
MCP คืออะไร?
Anthropic ประกาศ MCP เมื่อ 25 พ.ย. 2024 โดยนิยามว่า:
"The Model Context Protocol is an open standard that enables developers to build secure, two-way connections between their data sources and AI-powered tools."
วิธีคิดที่ง่ายที่สุดคือปลั๊กไฟมาตรฐาน เครื่องใช้ไฟฟ้าหลายยี่ห้อเสียบรูเดียวกันได้ ฝั่งบริการ (ฐานข้อมูล · ระบบ deploy · ระบบจ่ายเงิน) เปิด "MCP server" ฝั่ง AI (Claude Code, Cursor, Codex ฯลฯ) เป็น "client" ที่เสียบเข้าไปใช้

Supabase, Vercel, Stripe เขียนกติกาไว้ว่าอย่างไร?
ข้อดีของปี 2026 คือผู้ให้บริการหลักเขียนแนวปฏิบัติของตัวเองไว้แล้ว ผมสรุปจากเอกสารทางการ (ตรวจ 27 ก.ย. 2026):
| บริการ | จุดเชื่อมต่อทางการ | สิ่งที่เอกสารของเขาเองแนะนำ |
|---|---|---|
| Supabase | MCP server ของ Supabase | จำกัดให้เห็นแค่โปรเจกต์เดียว · ใช้ read-only · ต่อโปรเจกต์ production เฉพาะเมื่องานต้องใช้หลักฐานจาก production จริง |
| Vercel | https://mcp.vercel.com (OAuth) | การต่อ = ให้ AI มีสิทธิ์เท่าบัญชี Vercel ของคุณ · รับเฉพาะ client ที่ Vercel ตรวจแล้ว · เปิด human confirmation เสมอ |
| Stripe | https://mcp.stripe.com (OAuth หรือ agent key) | เปิด human confirmation · ระวัง prompt injection เมื่อใช้คู่ server อื่น · refund และการจ่ายออกต้องให้คนกดอนุมัติ |
ประโยคจาก Supabase ที่ผมชอบที่สุด เพราะมันคือหลัก least-privilege แบบเขียนเป็นขั้นตอน:
"Connect to a production project only when the task requires production evidence. Use project scoping, read-only mode, restricted feature groups, and the narrowest data query that can answer the question."
และคำเตือนของ Vercel ที่ควรติดไว้ข้างจอ: "Connecting to Vercel MCP grants the AI system you're using the same access as your Vercel user account"
ทำไมระบบที่แตะเงินต้องมีคนกดยืนยัน?
Stripe เขียนไว้ตรงที่สุดในหน้าเครื่องมือ MCP ของเขา:

"Enable human confirmation of tools and exercise caution when using the Stripe MCP with other servers to avoid prompt injection attacks."
เหตุผลคือ prompt injection: ถ้า agent อ่านข้อความจากแหล่งที่ไม่น่าไว้ใจ (หน้าเว็บ อีเมล ไฟล์ที่ลูกค้าส่งมา) แล้วในนั้นมีคำสั่งแฝง agent ที่มีสิทธิ์ refund อาจทำตามได้ Stripe จึงบังคับให้คนกดยืนยันก่อน action บางอย่าง เช่น refund และการจ่ายเงินออก และถ้าไม่อนุมัติภายใน 24 ชั่วโมง คำขอจะหมดอายุ
อีกเรื่องที่คนต่อ Stripe MCP ต้องรู้ตอนนี้: ตั้งแต่ 31 ต.ค. 2026 Stripe MCP จะไม่รับ secret key แบบ full-access หรือ restricted key ที่ไม่มีป้าย Agent อีกต่อไป ต้องเปลี่ยนเป็น agent key ที่ให้สิทธิ์เท่าที่จำเป็น หรือเชื่อมผ่าน OAuth แทน
กติกาที่ผมใช้จริงคืออะไร?

- Read-only ก่อนเสมอ — ถ้างานแค่ต้องดู ห้ามให้สิทธิ์เขียน
- จำกัดขอบเขต — หนึ่งโปรเจกต์ หนึ่ง environment (sandbox ก่อน production)
- ใช้ OAuth หรือ key ที่สิทธิ์น้อยที่สุด — ไม่วาง key ตัวเต็มไว้ในไฟล์ตั้งค่า และไม่พิมพ์ key ลงใน command line
- คนกดยืนยัน action ที่ย้อนไม่ได้ — ลบ จ่ายเงิน deploy production
สถานะจริงของผม ณ วันที่เขียน: ในโปรเจกต์หลักของ lab มี MCP server ตั้งไว้ 1 ตัว (ต่อโมเดล local สำหรับงานที่ข้อมูลห้ามออกนอกเครื่อง) ส่วนระบบจ่ายเงินของ Boom Field Lab และฐานข้อมูลลูกค้า ยังไม่เปิดให้ agent ต่อผ่าน MCP — ไม่ใช่เพราะทำไม่ได้ แต่เพราะ downside ของความผิดพลาดครั้งเดียวสูงกว่าเวลาที่ประหยัดได้ งานพวกนั้นผ่านโค้ดที่ review แล้ว และด่านของ harness (อ่านเรื่อง hook ที่บล็อก agent)
เริ่มต่อ MCP ครั้งแรกควรทำยังไง?
- เริ่มจาก server ตัวเดียว กับงานเล็กที่ตรวจผลได้ง่าย เช่น ค้นเอกสาร (Vercel และ Stripe มีเครื่องมือค้น docs ที่ไม่ต้องแตะข้อมูลจริง)
- ใช้ข้อมูลตัวอย่างหรือ sandbox ก่อนต่อข้อมูลจริง
- อ่านหน้า security ของผู้ให้บริการก่อนกดเชื่อม — ทั้งสามเจ้าที่อ้างในบทความนี้เขียนไว้ชัด
- ถามตัวเองก่อนเปิดสิทธิ์ทุกครั้ง: "ถ้า agent ทำตามคำสั่งแฝงจากข้อความที่มันอ่าน ความเสียหายสูงสุดคืออะไร" ถ้าตอบว่า "เงินลูกค้า" ยังไม่ต้องเปิด