Supabase MCP
ทางการเซิร์ฟเวอร์ MCP อย่างเป็นทางการของ Supabase สำหรับจัดการโปรเจกต์ Supabase, ฐานข้อมูล, การยืนยันตัวตน, พื้นที่จัดเก็บ, ฟังก์ชัน Edge และเวิร์กโฟลว์ SQL จากเอเจนต์ AI
คุณทำอะไรได้บ้างด้วย Supabase MCP?
- จัดการตารางฐานข้อมูล — ให้ AI แสดงรายการ สร้าง อัปเดต หรือลบตารางในโปรเจกต์ Supabase ของคุณโดยใช้เครื่องมือเช่น
list_tablesและcreate_table - ดึงข้อมูลการกำหนดค่าโปรเจกต์ — ดึงการตั้งค่าโปรเจกต์ ตัวแปรสภาพแวดล้อม และข้อมูลประจำตัว API ด้วย
get_project_urlและเครื่องมือกำหนดค่าที่เกี่ยวข้อง - สอบถามและตรวจสอบข้อมูล — ให้ AI รันคำสั่ง SQL แบบอ่านอย่างเดียว หรือสำรวจโครงร่างฐานข้อมูลของคุณโดยตรงผ่านเซิร์ฟเวอร์ MCP
- ผสานรวมกับ AI SDK — ใช้
createToolSchemas()เพื่อรับโครงร่างอินพุต/เอาต์พุตแบบมีชนิดสำหรับไคลเอ็นต์ MCP ของ Vercel AI SDK
เอกสาร
Supabase MCP Server
เชื่อมต่อโปรเจกต์ Supabase ของคุณกับ Cursor, Claude, Windsurf และผู้ช่วย AI อื่นๆ
Model Context Protocol (MCP) กำหนดมาตรฐานวิธีที่ Large Language Models (LLMs) สื่อสารกับบริการภายนอกอย่าง Supabase มันเชื่อมต่อผู้ช่วย AI เข้ากับโปรเจกต์ Supabase ของคุณโดยตรง และอนุญาตให้พวกเขาทำงานต่างๆ เช่น จัดการตาราง ดึงข้อมูลการตั้งค่า และสืบค้นข้อมูล ดูรายการเครื่องมือทั้งหมด
การติดตั้ง
1. ปฏิบัติตามแนวทางปฏิบัติที่ดีที่สุดด้านความปลอดภัยของเรา
ก่อนตั้งค่าเซิร์ฟเวอร์ MCP เราขอแนะนำให้คุณอ่านแนวทางปฏิบัติที่ดีที่สุดด้านความปลอดภัยของเรา เพื่อทำความเข้าใจความเสี่ยงในการเชื่อมต่อ LLM เข้ากับโปรเจกต์ Supabase ของคุณ และวิธีลดความเสี่ยงเหล่านั้น
2. กำหนดค่าไคลเอนต์ MCP ของคุณ
ในการกำหนดค่าเซิร์ฟเวอร์ Supabase MCP บนไคลเอนต์ของคุณ โปรดดูเอกสารการติดตั้งของเรา คุณยังสามารถสร้าง URL MCP แบบกำหนดเองสำหรับโปรเจกต์ของคุณได้ โดยไปที่แท็บการเชื่อมต่อ MCP ในแดชบอร์ด Supabase
ไคลเอนต์ MCP ของคุณจะแจ้งให้คุณเข้าสู่ระบบ Supabase โดยอัตโนมัติระหว่างการติดตั้ง ตรวจสอบให้แน่ใจว่าได้เลือกองค์กรที่มีโปรเจกต์ที่คุณต้องการทำงานด้วย
ไคลเอนต์ MCP ส่วนใหญ่ต้องการข้อมูลต่อไปนี้:
{
"mcpServers": {
"supabase": {
"type": "http",
"url": "https://mcp.supabase.com/mcp"
}
}
}
หากคุณไม่เห็นไคลเอนต์ MCP ของคุณในรายการเอกสารของเรา ให้ตรวจสอบเอกสาร MCP ของไคลเอนต์ของคุณ และคัดลอกข้อมูล MCP ข้างต้นไปยังรูปแบบที่พวกเขาคาดหวัง (json, yaml, ฯลฯ)
CLI
หากคุณกำลังรัน Supabase ภายในเครื่องด้วย Supabase CLI คุณสามารถเข้าถึงเซิร์ฟเวอร์ MCP ได้ที่ http://localhost:54321/mcp ปัจจุบัน เซิร์ฟเวอร์ MCP ในสภาพแวดล้อม CLI มีชุดเครื่องมือย่อยที่จำกัด และไม่มี OAuth 2.1
โฮสต์เอง
สำหรับ Supabase แบบโฮสต์เอง โปรดดูหน้าการเปิดใช้งานเซิร์ฟเวอร์ MCP ปัจจุบัน เซิร์ฟเวอร์ MCP ในสภาพแวดล้อมแบบโฮสต์เอง มีชุดเครื่องมือย่อยที่จำกัด และไม่มี OAuth 2.1
ตัวเลือกการกำหนดค่าและเครื่องมือ
ดูเอกสาร Supabase MCP Server สำหรับรายการเครื่องมือที่มีอยู่และตัวเลือกการกำหนดค่าทั้งหมด
เอกสารยังมีเครื่องมือสร้าง URL แบบโต้ตอบ เพื่อเติมตัวเลือกการกำหนดค่าให้คุณ
ความเสี่ยงด้านความปลอดภัย
[!TIP] ก่อนใช้เซิร์ฟเวอร์ MCP โปรดทบทวนความเสี่ยงด้านความปลอดภัยและการลดความเสี่ยงที่แนะนำใน Supabase Docs
การใช้งานกับ AI SDK's MCP Client
แพ็คเกจ @supabase/mcp-server-supabase ส่งออก createToolSchemas() เพื่อเติม schema อินพุตและเอาต์พุตสำหรับ MCP client ของ Vercel AI SDK สิ่งนี้ทำให้เครื่องมือ Supabase MCP ถูกปฏิบัติเหมือนเป็นเครื่องมือแบบ static พร้อมการตรวจสอบฝั่งไคลเอนต์ และ TypeScript types ที่อนุมานได้สำหรับอินพุตและเอาต์พุตของพวกมัน
import { createToolSchemas } from '@supabase/mcp-server-supabase';
import { createMCPClient } from '@ai-sdk/mcp';
import { streamText } from 'ai';
const mcpClient = await createMCPClient({
transport: {
type: 'http',
url: 'https://mcp.supabase.com/mcp',
},
});
const tools = await mcpClient.tools({
schemas: createToolSchemas(),
});
const result = streamText({ model, tools, prompt: '...' });
for (const step of await result.steps) {
for (const toolResult of step.staticToolResults) {
if (toolResult.toolName === 'get_project_url') {
toolResult.input; // { project_id: string }
toolResult.output; // { url: string }
}
}
}
createToolSchemas() ยอมรับตัวเลือกการกรองที่คล้ายกับพารามิเตอร์ URL ของเซิร์ฟเวอร์ MCP:
features: จำกัดเฉพาะกลุ่มฟีเจอร์ที่ระบุ (เช่น['database', 'docs']) ค่าเริ่มต้นคือกลุ่มฟีเจอร์เริ่มต้นทั้งหมดprojectScoped: เมื่อเป็นtrueจะละเว้นproject_idจาก schema อินพุตของเครื่องมือ และไม่รวมเครื่องมือระดับบัญชี — ใช้เมื่อเชื่อมต่อกับเซิร์ฟเวอร์ที่กำหนดค่าด้วยproject_refค่าเริ่มต้นคือfalsereadOnly: เมื่อเป็นtrueจะไม่รวมเครื่องมือที่เปลี่ยนแปลงข้อมูล — ใช้เมื่อเชื่อมต่อกับเซิร์ฟเวอร์ที่กำหนดค่าด้วยread_only=trueค่าเริ่มต้นคือfalse
const mcpClient = await createMCPClient({
transport: {
type: 'http',
url: 'https://mcp.supabase.com/mcp?project_ref=<project-ref>&read_only=true&features=database,docs',
},
});
const tools = await mcpClient.tools({
schemas: createToolSchemas({
features: ['database', 'docs'],
projectScoped: true,
readOnly: true,
}),
});
[!NOTE] เซิร์ฟเวอร์นี้ไม่ส่ง
structuredContentในผลลัพธ์เครื่องมือ MCP AI SDK จะถอยกลับไปแยกวิเคราะห์ JSON จากข้อความcontent
สำหรับข้อมูลเพิ่มเติม โปรดดู Schema Definition และ Typed Tool Outputs ในเอกสาร AI SDK
เซิร์ฟเวอร์ MCP อื่นๆ
@supabase/mcp-server-postgrest
เซิร์ฟเวอร์ PostgREST MCP อนุญาตให้คุณเชื่อมต่อผู้ใช้ของคุณเองกับแอปของคุณผ่าน REST API ดูรายละเอียดเพิ่มเติมได้ที่ README ของโปรเจกต์
แหล่งข้อมูล
- Model Context Protocol: เรียนรู้เพิ่มเติมเกี่ยวกับ MCP และความสามารถของมัน
- จากการพัฒนาสู่การใช้งานจริง: เรียนรู้วิธีโปรโมตการเปลี่ยนแปลงไปยังสภาพแวดล้อมการใช้งานจริงอย่างปลอดภัย
สำหรับนักพัฒนา
ดู CONTRIBUTING สำหรับรายละเอียดเกี่ยวกับวิธีการมีส่วนร่วมในโปรเจกต์นี้
ใบอนุญาต
โปรเจกต์นี้ได้รับอนุญาตภายใต้ Apache 2.0 ดูไฟล์ LICENSE สำหรับรายละเอียด