Supabase MCP

resmi

Server MCP resmi Supabase untuk mengelola proyek Supabase, database, autentikasi, penyimpanan, fungsi edge, dan alur kerja SQL dari agen AI.

Apa yang bisa Anda lakukan dengan Supabase MCP?

  • Mengelola tabel database — Minta AI untuk membuat daftar, membuat, memperbarui, atau menghapus tabel di proyek Supabase Anda menggunakan alat seperti list_tables dan create_table.
  • Mengambil konfigurasi proyek — Ambil pengaturan proyek, variabel lingkungan, dan kredensial API dengan get_project_url serta alat konfigurasi terkait.
  • Mengkueri dan memeriksa data — Minta AI untuk menjalankan kueri SQL hanya-baca atau menjelajahi skema database Anda secara langsung melalui server MCP.
  • Integrasi dengan AI SDK — Gunakan createToolSchemas() untuk mendapatkan skema input/output yang diketik untuk klien MCP Vercel AI SDK.

Dokumentasi

Server MCP Supabase

MCP Registry Version

Hubungkan proyek Supabase Anda ke Cursor, Claude, Windsurf, dan asisten AI lainnya.

supabase-mcp-demo

Model Context Protocol (MCP) menstandarisasi cara Large Language Models (LLM) berkomunikasi dengan layanan eksternal seperti Supabase. Ini menghubungkan asisten AI langsung dengan proyek Supabase Anda dan memungkinkan mereka melakukan tugas seperti mengelola tabel, mengambil konfigurasi, dan melakukan kueri data. Lihat daftar lengkap alat.

Penyiapan

1. Ikuti praktik terbaik keamanan kami

Sebelum menyiapkan server MCP, kami sarankan Anda membaca praktik terbaik keamanan kami untuk memahami risiko menghubungkan LLM ke proyek Supabase Anda dan cara menguranginya.

2. Konfigurasikan klien MCP Anda

Untuk mengonfigurasi server MCP Supabase pada klien Anda, kunjungi dokumentasi penyiapan kami. Anda juga dapat membuat URL MCP khusus untuk proyek Anda dengan mengunjungi tab koneksi MCP di dasbor Supabase.

Klien MCP Anda akan secara otomatis meminta Anda untuk masuk ke Supabase selama penyiapan. Pastikan untuk memilih organisasi yang berisi proyek yang ingin Anda gunakan.

Sebagian besar klien MCP memerlukan informasi berikut:

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

Jika Anda tidak melihat klien MCP Anda tercantum dalam dokumentasi kami, periksa dokumentasi MCP klien Anda dan salin informasi MCP di atas ke dalam format yang diharapkan (json, yaml, dll).

CLI

Jika Anda menjalankan Supabase secara lokal dengan Supabase CLI, Anda dapat mengakses server MCP di http://localhost:54321/mcp. Saat ini, Server MCP di lingkungan CLI menawarkan subset alat yang terbatas dan tanpa OAuth 2.1.

Self-hosted

Untuk Supabase self-hosted, periksa halaman Mengaktifkan server MCP. Saat ini, Server MCP di lingkungan self-hosted menawarkan subset alat yang terbatas dan tanpa OAuth 2.1.

Opsi konfigurasi dan alat

Lihat dokumentasi Server MCP Supabase untuk daftar lengkap alat yang tersedia dan opsi konfigurasi.

Dokumentasi juga menampilkan pembangun URL interaktif untuk mengisi opsi konfigurasi untuk Anda.

Risiko keamanan

[!TIP] Sebelum menggunakan server MCP, tinjau risiko keamanan dan mitigasi yang direkomendasikan di Dokumentasi Supabase.

Penggunaan dengan Klien MCP AI SDK

Paket @supabase/mcp-server-supabase mengekspor createToolSchemas() untuk mengisi skema input dan output untuk klien MCP Vercel AI SDK. Ini memungkinkan alat MCP Supabase diperlakukan sebagai alat statis dengan validasi sisi klien dan tipe TypeScript yang disimpulkan untuk input dan output mereka.

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() menerima opsi pemfilteran yang mirip dengan parameter URL server MCP:

  • features: Batasi ke grup fitur tertentu (mis. ['database', 'docs']). Default ke semua grup fitur default.
  • projectScoped: Saat true, menghilangkan project_id dari skema input alat dan mengecualikan alat tingkat akun — gunakan saat menghubungkan ke server yang dikonfigurasi dengan project_ref. Default ke false.
  • readOnly: Saat true, mengecualikan alat yang bermutasi — gunakan saat menghubungkan ke server yang dikonfigurasi dengan read_only=true. Default ke 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] Server ini tidak mengirim structuredContent dalam hasil alat MCP. AI SDK kembali ke penguraian JSON dari teks content.

Untuk informasi lebih lanjut, lihat Definisi Skema dan Output Alat Bertipe di dokumentasi AI SDK.

Server MCP lainnya

@supabase/mcp-server-postgrest

Server MCP PostgREST memungkinkan Anda menghubungkan pengguna Anda sendiri ke aplikasi Anda melalui REST API. Lihat detail lebih lanjut di README proyek.

Sumber daya

Untuk pengembang

Lihat CONTRIBUTING untuk detail tentang cara berkontribusi pada proyek ini.

Lisensi

Proyek ini dilisensikan di bawah Apache 2.0. Lihat file LICENSE untuk detailnya.