← กลับไปหน้าบทความ
คู่มือ

ต่อ Supabase MCP เข้า Claude Code แล้วให้ Agent อ่าน Schema เขียน SQL ให้เอง

ทีมบรรณาธิการ linli12 ส.ค. 04:52อัปเดต 12 ส.ค. 04:52อ่าน 3 นาที
ต่อ Supabase MCP เข้า Claude Code แล้วให้ Agent อ่าน Schema เขียน SQL ให้เอง
บทความนี้จัดทำเพื่อความรู้ ชื่อธุรกิจ ตัวเลข หรือบทสนทนาที่ไม่มีแหล่งอ้างอิงกำกับเป็นกรณีตัวอย่างเพื่ออธิบายแนวคิด ดูรายละเอียดที่ นโยบายกองบรรณาธิการ

สรุปสั้น ๆ

การเชื่อม Supabase MCP กับ Claude Code ทำได้โดยสร้าง Access Token เฉพาะงานนี้ แล้วเพิ่มการตั้งค่า MCP Server ลงในไฟล์คอนฟิกของ Claude Code พร้อมกำหนดขอบเขตโปรเจกต์และสิทธิ์ให้ชัดตั้งแต่ต้น เมื่อเชื่อมสำเร็จ Agent จะอ่านโครงสร้างตาราง (Schema) ได้โดยตรงและช่วยร่างคำสั่ง SQL ตามบริบทของโปรเจกต์จริง

นักพัฒนาคนหนึ่งเล่าให้ฟังว่าอ่านเจอโพสต์เรื่อง Supabase MCP มาสองสัปดาห์แล้ว รู้สึกว่าน่าจะช่วยงานได้เยอะ แต่พอลองตั้งค่ากับ Claude Code จริงกลับเจอปัญหาเชื่อมต่อไม่สำเร็จ Agent ตอบว่าไม่รู้จักเครื่องมือที่ชื่อ Supabase ทั้งที่ทำตามขั้นตอนที่อ่านมาแล้วทุกอย่าง สุดท้ายพบว่าปัญหาอยู่ที่ไฟล์คอนฟิกใส่ Token ผิดตำแหน่งเล็กน้อยเท่านั้นเอง

ปัญหาแบบนี้พบได้บ่อยเพราะขั้นตอนเชื่อม MCP เข้ากับเครื่องมือแต่ละตัวมีรายละเอียดปลีกย่อยที่ต่างกัน แม้หลักการโดยรวมจะเหมือนกัน บทความนี้จะไล่ทีละขั้นตอนเฉพาะสำหรับ Claude Code ตั้งแต่การสร้าง Token การตั้งค่าไฟล์คอนฟิก ไปจนถึงการทดสอบว่า Agent เข้าใจโครงสร้างฐานข้อมูลจริงแล้วหรือยัง

เป้าหมายไม่ใช่แค่ให้เชื่อมต่อติด แต่ให้ Agent ใช้งานได้อย่างมีประโยชน์จริงในงานเขียนโค้ดประจำวัน ไม่ใช่เชื่อมต่อเสร็จแล้วก็ไม่รู้จะถามอะไรต่อ

สิ่งที่ต้องมีก่อนเริ่มเชื่อมต่อ

ก่อนลงมือตั้งค่า ควรเตรียมสิ่งเหล่านี้ให้พร้อม เพื่อไม่ให้ต้องหยุดกลางทางระหว่างตั้งค่า: มีบัญชี Supabase และโปรเจกต์ที่ต้องการเชื่อมต่ออยู่แล้ว มี Claude Code ติดตั้งและใช้งานได้ปกติ และรู้ว่าจะเชื่อมต่อกับโปรเจกต์เดียวหรือหลายโปรเจกต์พร้อมกัน เพราะการตัดสินใจนี้ส่งผลต่อวิธีตั้งค่า Token ตั้งแต่ต้น

ควรตัดสินใจล่วงหน้าด้วยว่าจะเปิดสิทธิ์ให้ Agent อ่านข้อมูลอย่างเดียว หรือเปิดให้แก้ไขข้อมูลได้ด้วย เพราะการเปลี่ยนใจภายหลังต้องกลับมาสร้าง Token ใหม่และแก้ไฟล์คอนฟิกอีกรอบ การตัดสินใจตั้งแต่แรกให้ชัดจะประหยัดเวลากว่า

สร้าง Access Token เฉพาะสำหรับ MCP

ขั้นแรกคือเข้าไปที่ส่วนตั้งค่าบัญชีในแดชบอร์ด Supabase แล้วสร้าง Personal Access Token ใหม่ ควรตั้งชื่อ Token ให้สื่อความหมายชัดเจน เช่นระบุว่าใช้สำหรับ MCP ของ Claude Code เพื่อให้ภายหลังตรวจสอบและเพิกถอนสิทธิ์ได้ง่ายถ้าจำเป็น ไม่ควรใช้ Token เดียวกันกับที่ใช้ในงานอื่น เพราะถ้าต้องเพิกถอน Token นี้ในอนาคต จะได้ไม่กระทบระบบอื่นที่ใช้ Token ร่วมกัน

Token ที่สร้างขึ้นควรเก็บไว้ในที่ปลอดภัย เช่นตัวจัดการรหัสผ่านหรือไฟล์ Environment Variable ที่ไม่ถูกเก็บเข้า Git ไม่ควรวางไว้ในไฟล์คอนฟิกที่อาจถูก Commit ขึ้นไปยัง Repository สาธารณะโดยไม่ตั้งใจ

ตั้งค่าไฟล์คอนฟิกใน Claude Code ให้รู้จัก Supabase MCP

ขั้นตอนถัดไปคือเพิ่มการตั้งค่า MCP Server ของ Supabase ลงในไฟล์คอนฟิกของ Claude Code ซึ่งโดยทั่วไปจะระบุคำสั่งที่ใช้เรียก MCP Server พร้อมส่ง Token ที่สร้างไว้เข้าไปเป็นค่าตั้งต้น จุดที่มักพลาดคือใส่ Token ผิดตำแหน่งในไฟล์ หรือลืมระบุว่าต้องการเชื่อมกับโปรเจกต์ไหนเมื่อบัญชีมีหลายโปรเจกต์พร้อมกัน

  1. เปิดไฟล์คอนฟิก MCP ของ Claude Code ตามตำแหน่งที่เอกสารล่าสุดของเครื่องมือระบุไว้ เพราะตำแหน่งไฟล์อาจเปลี่ยนไปตามเวอร์ชัน
  2. เพิ่มรายการ MCP Server ใหม่ ตั้งชื่อให้จำง่าย เช่น supabase แล้วระบุคำสั่งเรียกใช้งานตามที่ Supabase MCP กำหนด
  3. ใส่ Token ที่สร้างไว้ในตำแหน่งตัวแปรสภาพแวดล้อมที่ไฟล์คอนฟิกกำหนด ไม่ใช่พิมพ์ Token แบบข้อความธรรมดาปนกับคำสั่งอื่น
  4. ถ้าต้องการจำกัดให้เชื่อมเฉพาะโปรเจกต์เดียว ให้ระบุ Project Reference ของโปรเจกต์นั้นในค่าคอนฟิกด้วย เพื่อไม่ให้ Agent มองเห็นโปรเจกต์อื่นที่ไม่เกี่ยวข้อง
  5. บันทึกไฟล์แล้วรีสตาร์ท Claude Code เพื่อให้โหลดค่าคอนฟิกใหม่ที่เพิ่มเข้าไป

ทดสอบว่า Agent อ่าน Schema ได้จริงก่อนใช้งานลึกขึ้น

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

ถ้า Agent ตอบว่าไม่พบเครื่องมือ Supabase หรือไม่สามารถเชื่อมต่อได้ ให้ตรวจสามจุดหลักก่อน คือ Token ยังใช้งานได้อยู่หรือถูกเพิกถอนไปแล้ว ไฟล์คอนฟิกมีข้อผิดพลาดด้านรูปแบบหรือไม่ และได้รีสตาร์ทเครื่องมือหลังแก้ไฟล์คอนฟิกแล้วหรือยัง สามจุดนี้เป็นสาเหตุที่พบบ่อยที่สุดของปัญหาเชื่อมต่อไม่สำเร็จ

ตัวอย่างคำสั่งที่ใช้ได้ผลจริงหลังเชื่อมต่อสำเร็จ

เมื่อเชื่อมต่อสำเร็จแล้ว คำสั่งที่ได้ผลดีมักเป็นคำสั่งที่ระบุบริบทชัดเจน ไม่ใช่คำถามกว้าง ๆ เพราะยิ่ง Agent เข้าใจเป้าหมายชัดเท่าไร คำตอบหรือ SQL ที่ร่างมาก็แม่นยำขึ้นเท่านั้น

  • ขอให้อธิบายความสัมพันธ์ระหว่างตารางผู้ใช้กับตารางออเดอร์ ก่อนเริ่มเขียนฟีเจอร์ใหม่ที่เกี่ยวข้องกับสองตารางนี้
  • ขอให้ร่างคำสั่ง SQL สำหรับดึงรายงานที่ต้องการ พร้อมอธิบายเงื่อนไขที่ใช้กรองข้อมูล เพื่อให้ตรวจสอบความถูกต้องได้ก่อนรันจริง
  • ขอให้ตรวจสอบว่ามีนโยบาย Row Level Security ครอบคลุมตารางที่กำลังจะเปิดใช้งานฟีเจอร์ใหม่หรือยัง
  • ขอให้เปรียบเทียบโครงสร้างตารางปัจจุบันกับสิ่งที่โค้ดฝั่งแอปพลิเคชันคาดหวัง เพื่อหาจุดที่อาจไม่ตรงกันหลังมีการแก้ไขโครงสร้าง

ข้อผิดพลาดที่พบบ่อยตอนตั้งค่าครั้งแรก

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

อีกจุดที่มักถูกมองข้ามคือการไม่ทดสอบด้วยคำถามง่ายก่อน แล้วรีบให้ Agent รันคำสั่งที่ซับซ้อนหรือแก้ไขข้อมูลทันที ซึ่งถ้าการเชื่อมต่อยังมีปัญหาบางส่วนที่มองไม่เห็นตั้งแต่ต้น ความเสี่ยงจะสูงกว่าการค่อย ๆ ทดสอบทีละขั้น

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

วางแนวทางให้ทั้งทีมตั้งค่าแบบเดียวกัน ไม่ใช่ต่างคนต่างทำ

เมื่อทีมมีสมาชิกหลายคนที่ต้องใช้ Supabase MCP ร่วมกับ Claude Code การปล่อยให้แต่ละคนตั้งค่าเองตามความเข้าใจของตัวเองมักนำไปสู่ความไม่สอดคล้องกัน บางคนเปิดสิทธิ์กว้างเกินจำเป็น บางคนตั้งชื่อ MCP Server ไม่ตรงกัน ทำให้เวลาช่วยกันแก้ปัญหาต้องมานั่งไล่ดูว่าใครตั้งค่าแบบไหนไว้

แนวทางที่ช่วยได้คือเขียนเอกสารภายในทีมสั้น ๆ ระบุว่า Token ควรสร้างด้วยชื่อรูปแบบไหน ไฟล์คอนฟิกควรมีโครงสร้างแบบไหนเป็นมาตรฐาน และใครเป็นคนรับผิดชอบดูแลว่า Token ที่ออกไปแล้วยังจำเป็นต้องใช้อยู่หรือควรเพิกถอน โดยเฉพาะเมื่อมีสมาชิกลาออกจากทีมหรือเปลี่ยนเครื่องที่ใช้งาน ควรมีขั้นตอนตรวจสอบและเพิกถอน Token เก่าเป็นประจำ ไม่ใช่ปล่อยให้ Token ค้างอยู่โดยไม่มีใครติดตาม

สำหรับทีมที่ใช้ Repository ร่วมกัน ควรระบุไว้ในเอกสารของโปรเจกต์ด้วยว่าไฟล์คอนฟิกที่มี Token ห้าม Commit ขึ้น Git โดยเด็ดขาด และควรมีไฟล์ตัวอย่าง (Template) ที่ไม่มี Token จริงให้สมาชิกใหม่คัดลอกไปกรอกค่าของตัวเอง เพื่อไม่ให้เกิดเหตุ Token หลุดไปกับ Repository สาธารณะโดยไม่ตั้งใจ

ขั้นต่อไปหลังเชื่อมต่อสำเร็จ ต้องคิดเรื่องความปลอดภัยด้วย

การเชื่อมต่อสำเร็จเป็นแค่จุดเริ่มต้น ขั้นตอนที่สำคัญไม่แพ้กันคือการทบทวนว่าสิทธิ์ที่เปิดให้ Agent เหมาะสมกับงานจริงหรือไม่ โดยเฉพาะถ้าโปรเจกต์ที่เชื่อมมีข้อมูลลูกค้าจริงอยู่ ควรอ่านต่อเรื่อง Supabase MCP มีความเสี่ยงอะไรบ้าง และควรตั้ง Read Only อย่างไร เพื่อวางขอบเขตสิทธิ์ให้รัดกุมก่อนใช้งานต่อเนื่องในระยะยาว

ถ้ายังไม่เคยอ่านภาพรวมของ Supabase MCP มาก่อน แนะนำให้ย้อนกลับไปอ่านบทความ Supabase MCP คืออะไร และช่วยให้ AI Agent จัดการฐานข้อมูลได้อย่างไร เพื่อเข้าใจภาพรวมก่อนมาเจาะรายละเอียดขั้นตอนตั้งค่ากับ Claude Code ในบทความนี้

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

สรุป

การเชื่อม Supabase MCP กับ Claude Code ไม่ได้ยากในเชิงเทคนิค แต่มีรายละเอียดเล็ก ๆ ที่ทำให้พลาดได้ง่าย ตั้งแต่ตำแหน่ง Token ในไฟล์คอนฟิกไปจนถึงการลืมรีสตาร์ทเครื่องมือหลังแก้ไข ถ้าทำตามลำดับขั้นตอนและทดสอบทีละจุด การเชื่อมต่อจะสำเร็จได้ไม่ยาก

หลังเชื่อมต่อสำเร็จ สิ่งที่ควรทำต่อไม่ใช่แค่ลองถามคำถามสนุก ๆ แต่ควรกลับไปทบทวนขอบเขตสิทธิ์ที่เปิดให้ Agent ว่าเหมาะสมกับความเสี่ยงของโปรเจกต์แล้วหรือยัง ก่อนจะพึ่งพา Agent ในงานประจำวันมากขึ้นเรื่อย ๆ

  • สร้าง Access Token เฉพาะสำหรับ MCP แยกจาก Token ที่ใช้ในงานอื่นเสมอ
  • ตั้งค่าไฟล์คอนฟิกให้ระบุโปรเจกต์ที่ต้องการเชื่อมชัดเจน ไม่เปิดกว้างเกินจำเป็น
  • ทดสอบด้วยคำถามอ่านข้อมูลง่าย ๆ ก่อนให้ Agent รันคำสั่งที่แก้ไขข้อมูลจริง
  • ปัญหาเชื่อมต่อไม่สำเร็จส่วนใหญ่มาจาก Token หมดอายุ ไฟล์คอนฟิกผิดรูปแบบ หรือลืมรีสตาร์ทเครื่องมือ

คำถามที่พบบ่อย

ทำไมตั้งค่าตามขั้นตอนแล้ว Claude Code ยังไม่รู้จัก Supabase MCP

สาเหตุที่พบบ่อยที่สุดคือยังไม่ได้รีสตาร์ท Claude Code หลังแก้ไฟล์คอนฟิก หรือ Token ที่ใส่ไว้หมดอายุ/ถูกเพิกถอนไปแล้ว ควรตรวจสองจุดนี้ก่อนเป็นอันดับแรก

เชื่อมต่อได้หลายโปรเจกต์พร้อมกันไหม

ทำได้โดยตั้งค่า MCP Server หลายรายการในไฟล์คอนฟิก แต่ละรายการใช้ Token และ Project Reference แยกกัน แนะนำให้ตั้งชื่อรายการให้ชัดเจนว่าแต่ละอันเชื่อมกับโปรเจกต์ไหน เพื่อไม่ให้สับสนตอนใช้งาน

ถ้า Token หลุดหรือสงสัยว่าไม่ปลอดภัยควรทำยังไง

ควรเข้าไปเพิกถอน Token นั้นทันทีในแดชบอร์ด Supabase แล้วสร้าง Token ใหม่มาแทน พร้อมอัปเดตไฟล์คอนฟิกให้ตรงกับ Token ใหม่ ไม่ควรปล่อยให้ Token เก่าใช้งานต่อแม้จะยังไม่แน่ใจว่าหลุดจริงหรือไม่

Agent จะเห็นข้อมูลจริงในตารางเลยไหม ไม่ใช่แค่โครงสร้าง

ขึ้นอยู่กับสิทธิ์ที่ Token กำหนดไว้ ถ้าเปิดสิทธิ์อ่านข้อมูล Agent จะดึงตัวอย่างข้อมูลจริงมาช่วยวิเคราะห์ได้ ซึ่งควรระวังเป็นพิเศษถ้าข้อมูลนั้นเป็นข้อมูลส่วนบุคคลของลูกค้า

ถ้าไม่ถนัด SQL เลย ยังใช้ประโยชน์จาก Supabase MCP กับ Claude Code ได้ไหม

ได้ในระดับหนึ่ง เพราะ Agent ช่วยร่างคำสั่งให้จากคำอธิบายภาษาธรรมชาติ แต่ควรมีคนที่พอเข้าใจ SQL อยู่ในทีมเพื่อตรวจสอบความถูกต้องก่อนรันคำสั่งที่แก้ไขข้อมูลจริง ไม่ควรเชื่อคำตอบของ Agent ทั้งหมดโดยไม่ตรวจสอบ

ถ้าทีมใช้ทั้ง Claude Code และเครื่องมืออื่นพร้อมกัน ต้องสร้าง Token แยกกันไหม

แนะนำให้แยก Token ตามเครื่องมือที่ใช้งาน แม้จะเชื่อมกับโปรเจกต์เดียวกันก็ตาม เพราะถ้าวันหนึ่งต้องเพิกถอน Token ของเครื่องมือใดเครื่องมือหนึ่ง จะได้ไม่กระทบการเชื่อมต่อของเครื่องมืออื่นที่ยังใช้งานอยู่ปกติ

ทดลองวัดผลโฆษณาเข้า LINE ฟรี 14 วัน

สมัครแล้วสร้างโปรเจกต์ เชื่อม LINE ติดตั้ง Tracking แล้วเริ่มเห็น Funnel จาก Click ถึง Purchase ได้ทันที ไม่ต้องใช้บัตรเครดิต

เริ่มทดลองใช้ฟรี 14 วัน

บทความที่เกี่ยวข้อง

อัปเดต Embedding มือทุกคืนจนพัง แล้ว Automatic Embeddings ของ Supabase ช่วยตรงไหน

อัปเดต Embedding มือทุกคืนจนพัง แล้ว Automatic Embeddings ของ Supabase ช่วยตรงไหน

ทีมที่ทำ Semantic Search มักเจอปัญหาเดิมซ้ำ ๆ คือลืมอัปเดต Embedding เมื่อข้อมูลต้นฉบับเปลี่ยน บทความนี้อธิบายว่า Automatic Embeddings ของ Supabase ทำงานยังไง และลดงานดูแล Pipeline เองได้จริงแค่ไหน
ตั้ง Token แบบ Read Only กับแบบเขียนได้เต็มสิทธิ์ เสี่ยงต่างกันแค่ไหน

ตั้ง Token แบบ Read Only กับแบบเขียนได้เต็มสิทธิ์ เสี่ยงต่างกันแค่ไหน

หลายทีมเปิด Supabase MCP ให้ Agent เขียนข้อมูลได้เต็มสิทธิ์ตั้งแต่วันแรกเพราะสะดวก แล้วมาพบทีหลังว่าคำสั่งเดียวที่ตีความคลาดเคลื่อนอาจแก้ไขข้อมูลผิดตารางได้ บทความนี้แจกแจงความเสี่ยงจริงและวิธีตั้ง Scope ให้ปลอดภัย
ทีมสามคนดูแลฐานข้อมูลสิบโปรเจกต์ พอเปิด Supabase MCP แล้วงานเบาลงตรงไหน

ทีมสามคนดูแลฐานข้อมูลสิบโปรเจกต์ พอเปิด Supabase MCP แล้วงานเบาลงตรงไหน

งานที่กินเวลาทีมพัฒนามากที่สุดมักไม่ใช่การเขียนโค้ด แต่คือการเปิดแดชบอร์ดไปดูโครงสร้างตารางซ้ำ ๆ ก่อนเขียน Query บทความนี้อธิบายว่า Supabase MCP คืออะไร และช่วยลดงานส่วนนั้นได้จริงแค่ไหน