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

MCP Registry Version

เชื่อมต่อโปรเจกต์ Supabase ของคุณกับ Cursor, Claude, Windsurf และผู้ช่วย AI อื่นๆ

supabase-mcp-demo

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 ค่าเริ่มต้นคือ false
  • readOnly: เมื่อเป็น 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 ของโปรเจกต์

แหล่งข้อมูล

สำหรับนักพัฒนา

ดู CONTRIBUTING สำหรับรายละเอียดเกี่ยวกับวิธีการมีส่วนร่วมในโปรเจกต์นี้

ใบอนุญาต

โปรเจกต์นี้ได้รับอนุญาตภายใต้ Apache 2.0 ดูไฟล์ LICENSE สำหรับรายละเอียด