Supabase MCP

chính thức

Máy chủ MCP chính thức của Supabase để quản lý các dự án Supabase, cơ sở dữ liệu, xác thực, lưu trữ, hàm biên và quy trình làm việc SQL từ các tác nhân AI.

Bạn có thể làm gì với Supabase MCP?

  • Quản lý bảng cơ sở dữ liệu — Yêu cầu AI liệt kê, tạo, cập nhật hoặc xóa các bảng trong dự án Supabase của bạn bằng các công cụ như list_tablescreate_table.
  • Lấy cấu hình dự án — Truy xuất cài đặt dự án, biến môi trường và thông tin xác thực API với get_project_url và các công cụ cấu hình liên quan.
  • Truy vấn và kiểm tra dữ liệu — Cho AI thực thi các truy vấn SQL chỉ đọc hoặc khám phá trực tiếp lược đồ cơ sở dữ liệu của bạn thông qua máy chủ MCP.
  • Tích hợp với AI SDK — Sử dụng createToolSchemas() để lấy lược đồ đầu vào/đầu ra có kiểu cho máy khách MCP của Vercel AI SDK.

Tài liệu

Supabase MCP Server

MCP Registry Version

Kết nối các dự án Supabase của bạn với Cursor, Claude, Windsurf và các trợ lý AI khác.

supabase-mcp-demo

Model Context Protocol (MCP) chuẩn hóa cách các Mô hình Ngôn ngữ Lớn (LLM) giao tiếp với các dịch vụ bên ngoài như Supabase. Nó kết nối trực tiếp các trợ lý AI với dự án Supabase của bạn và cho phép chúng thực hiện các tác vụ như quản lý bảng, lấy cấu hình và truy vấn dữ liệu. Xem danh sách đầy đủ các công cụ.

Thiết lập

1. Tuân thủ các phương pháp bảo mật tốt nhất của chúng tôi

Trước khi thiết lập máy chủ MCP, chúng tôi khuyên bạn nên đọc các phương pháp bảo mật tốt nhất của chúng tôi để hiểu rõ rủi ro khi kết nối LLM với các dự án Supabase và cách giảm thiểu chúng.

2. Cấu hình máy khách MCP của bạn

Để cấu hình máy chủ Supabase MCP trên máy khách của bạn, hãy truy cập tài liệu thiết lập của chúng tôi. Bạn cũng có thể tạo URL MCP tùy chỉnh cho dự án của mình bằng cách truy cập tab kết nối MCP trong bảng điều khiển Supabase.

Máy khách MCP của bạn sẽ tự động nhắc bạn đăng nhập vào Supabase trong quá trình thiết lập. Hãy đảm bảo chọn tổ chức chứa dự án bạn muốn làm việc.

Hầu hết các máy khách MCP yêu cầu thông tin sau:

{
  "mcpServers": {
    "supabase": {
      "type": "http",
      "url": "https://mcp.supabase.com/mcp"
    }
  }
}

Nếu bạn không thấy máy khách MCP của mình được liệt kê trong tài liệu của chúng tôi, hãy kiểm tra tài liệu MCP của máy khách và sao chép thông tin MCP ở trên vào định dạng mong đợi của họ (json, yaml, v.v.).

CLI

Nếu bạn đang chạy Supabase cục bộ với Supabase CLI, bạn có thể truy cập máy chủ MCP tại http://localhost:54321/mcp. Hiện tại, Máy chủ MCP trong môi trường CLI cung cấp một tập hợp con giới hạn các công cụ và không có OAuth 2.1.

Tự lưu trữ

Đối với Supabase tự lưu trữ, hãy kiểm tra trang Kích hoạt máy chủ MCP. Hiện tại, Máy chủ MCP trong môi trường tự lưu trữ cung cấp một tập hợp con giới hạn các công cụ và không có OAuth 2.1.

Tùy chọn cấu hình và công cụ

Xem tài liệu Supabase MCP Server để biết danh sách đầy đủ các công cụ có sẵntùy chọn cấu hình.

Tài liệu cũng có trình tạo URL tương tác để điền các tùy chọn cấu hình cho bạn.

Rủi ro bảo mật

[!TIP] Trước khi sử dụng máy chủ MCP, hãy xem xét các rủi ro bảo mật và các biện pháp giảm thiểu được khuyến nghị trong Tài liệu Supabase.

Sử dụng với MCP Client của AI SDK

Gói @supabase/mcp-server-supabase xuất createToolSchemas() để điền các lược đồ đầu vào và đầu ra cho MCP client của Vercel AI SDK. Điều này cho phép các công cụ Supabase MCP được coi là công cụ tĩnh với xác thực phía máy khách và các kiểu TypeScript được suy luận cho đầu vào và đầu ra của chúng.

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() chấp nhận các tùy chọn lọc tương tự như các tham số URL của máy chủ MCP:

  • features: Giới hạn ở các nhóm tính năng cụ thể (ví dụ: ['database', 'docs']). Mặc định là tất cả các nhóm tính năng mặc định.
  • projectScoped: Khi true, bỏ qua project_id khỏi lược đồ đầu vào công cụ và loại trừ các công cụ cấp tài khoản — sử dụng khi kết nối với máy chủ được cấu hình với project_ref. Mặc định là false.
  • readOnly: Khi true, loại trừ các công cụ thay đổi — sử dụng khi kết nối với máy chủ được cấu hình với read_only=true. Mặc định là 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] Máy chủ này không gửi structuredContent trong kết quả công cụ MCP. AI SDK sẽ quay lại phân tích cú pháp JSON từ văn bản content.

Để biết thêm thông tin, hãy xem Định nghĩa Lược đồĐầu ra Công cụ có Kiểu trong tài liệu AI SDK.

Các máy chủ MCP khác

@supabase/mcp-server-postgrest

Máy chủ PostgREST MCP cho phép bạn kết nối người dùng của chính mình với ứng dụng của bạn thông qua API REST. Xem thêm chi tiết trên README dự án của nó.

Tài nguyên

Dành cho nhà phát triển

Xem CONTRIBUTING để biết chi tiết về cách đóng góp cho dự án này.

Giấy phép

Dự án này được cấp phép theo Apache 2.0. Xem tệp LICENSE để biết chi tiết.