Supabase MCP

offiziell

Offizieller Supabase MCP-Server zur Verwaltung von Supabase-Projekten, Datenbanken, Authentifizierung, Speicher, Edge Functions und SQL-Workflows über KI-Agenten.

Was kann man mit Supabase MCP machen?

  • Datenbanktabellen verwalten — Bitten Sie die KI, Tabellen in Ihrem Supabase-Projekt aufzulisten, zu erstellen, zu aktualisieren oder zu löschen, mithilfe von Tools wie list_tables und create_table.
  • Projektkonfiguration abrufen — Rufen Sie Projekteinstellungen, Umgebungsvariablen und API-Anmeldeinformationen mit get_project_url und verwandten Konfigurationstools ab.
  • Daten abfragen und überprüfen — Lassen Sie die KI schreibgeschützte SQL-Abfragen ausführen oder Ihr Datenbankschema direkt über den MCP-Server erkunden.
  • Integration mit dem AI SDK — Verwenden Sie createToolSchemas(), um typisierte Eingabe-/Ausgabeschemata für den MCP-Client des Vercel AI SDK zu erhalten.

Dokumentation

Supabase MCP Server

MCP Registry Version

Verbinden Sie Ihre Supabase-Projekte mit Cursor, Claude, Windsurf und anderen KI-Assistenten.

supabase-mcp-demo

Das Model Context Protocol (MCP) standardisiert, wie Large Language Models (LLMs) mit externen Diensten wie Supabase kommunizieren. Es verbindet KI-Assistenten direkt mit Ihrem Supabase-Projekt und ermöglicht ihnen, Aufgaben wie das Verwalten von Tabellen, das Abrufen von Konfigurationen und das Abfragen von Daten durchzuführen. Siehe die vollständige Liste der Tools.

Einrichtung

1. Befolgen Sie unsere Sicherheits-Best Practices

Bevor Sie den MCP-Server einrichten, empfehlen wir Ihnen, unsere Sicherheits-Best Practices zu lesen, um die Risiken der Verbindung eines LLM mit Ihren Supabase-Projekten und deren Eindämmung zu verstehen.

2. Konfigurieren Sie Ihren MCP-Client

Um den Supabase MCP-Server auf Ihrem Client zu konfigurieren, besuchen Sie unsere Einrichtungsdokumentation. Sie können auch eine benutzerdefinierte MCP-URL für Ihr Projekt generieren, indem Sie den MCP-Verbindungstab im Supabase-Dashboard besuchen.

Ihr MCP-Client wird Sie während der Einrichtung automatisch auffordern, sich bei Supabase anzumelden. Achten Sie darauf, die Organisation auszuwählen, die das Projekt enthält, mit dem Sie arbeiten möchten.

Die meisten MCP-Clients benötigen die folgenden Informationen:

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

Wenn Ihr MCP-Client nicht in unserer Dokumentation aufgeführt ist, überprüfen Sie die MCP-Dokumentation Ihres Clients und kopieren Sie die obigen MCP-Informationen in das erwartete Format (json, yaml, etc.).

CLI

Wenn Sie Supabase lokal mit der Supabase CLI ausführen, können Sie auf den MCP-Server unter http://localhost:54321/mcp zugreifen. Derzeit bietet der MCP-Server in CLI-Umgebungen eine eingeschränkte Teilmenge an Tools und kein OAuth 2.1.

Self-hosted

Für selbst gehostetes Supabase lesen Sie die Seite MCP-Server aktivieren. Derzeit bietet der MCP-Server in selbst gehosteten Umgebungen eine eingeschränkte Teilmenge an Tools und kein OAuth 2.1.

Konfigurationsoptionen und Tools

Siehe die Supabase MCP Server Dokumentation für die vollständige Liste der verfügbaren Tools und Konfigurationsoptionen.

Die Dokumentation enthält auch einen interaktiven URL-Builder, um Konfigurationsoptionen für Sie zu befüllen.

Sicherheitsrisiken

[!TIP] Bevor Sie den MCP-Server verwenden, lesen Sie die Sicherheitsrisiken und empfohlenen Gegenmaßnahmen in den Supabase Docs.

Verwendung mit dem MCP-Client des AI SDK

Das @supabase/mcp-server-supabase Paket exportiert createToolSchemas(), um Eingabe- und Ausgabeschemata für den MCP-Client des Vercel AI SDK zu befüllen. Dies ermöglicht es, Supabase MCP-Tools als statische Tools mit clientseitiger Validierung und abgeleiteten TypeScript-Typen für ihre Ein- und Ausgaben zu behandeln.

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() akzeptiert ähnliche Filteroptionen wie die URL-Parameter des MCP-Servers:

  • features: Auf bestimmte Funktionsgruppen beschränken (z. B. ['database', 'docs']). Standardmäßig alle Standard-Funktionsgruppen.
  • projectScoped: Wenn true, werden project_id aus den Tool-Eingabeschemata weggelassen und Tools auf Kontoebene ausgeschlossen — zu verwenden bei Verbindung mit einem Server, der mit project_ref konfiguriert ist. Standardmäßig false.
  • readOnly: Wenn true, werden mutierende Tools ausgeschlossen — zu verwenden bei Verbindung mit einem Server, der mit read_only=true konfiguriert ist. Standardmäßig 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] Dieser Server sendet kein structuredContent in MCP-Tool-Ergebnissen. AI SDK greift auf das Parsen von JSON aus content Text zurück.

Weitere Informationen finden Sie unter Schema Definition und Typed Tool Outputs in der AI SDK-Dokumentation.

Andere MCP-Server

@supabase/mcp-server-postgrest

Der PostgREST MCP-Server ermöglicht es Ihnen, Ihre eigenen Benutzer über die REST-API mit Ihrer App zu verbinden. Weitere Details finden Sie in der Projekt-README.

Ressourcen

Für Entwickler

Siehe CONTRIBUTING für Details, wie Sie zu diesem Projekt beitragen können.

Lizenz

Dieses Projekt ist unter Apache 2.0 lizenziert. Siehe die LICENSE Datei für Details.