Supabase MCP Server

Apache 2.0
699
  • Apple
  • Linux

Integrations

  • Provides tools for executing PostgreSQL queries against Supabase databases with risk assessment, parsing, and validation. Includes automatic migration versioning for database-altering operations.

  • Enables safely interacting with Supabase databases, executing SQL queries, managing database schemas, accessing the Supabase Management API, and using the Supabase Auth Admin SDK for user management. Includes safety controls for different risk levels of operations.

Abfrage | MCP-Server für Supabase

🌅 Mehr als 17.000 Installationen über pypi und fast 30.000 Downloads auf Smithery.ai – kurz gesagt, es hat Spaß gemacht! 🥳 Vielen Dank an alle, die diesen Server in den letzten Monaten genutzt haben. Ich hoffe, er war hilfreich für euch. Da Supabase einen eigenen offiziellen MCP-Server veröffentlicht hat, habe ich beschlossen, diesen nicht mehr aktiv zu pflegen. Der offizielle MCP-Server bietet genauso viele Funktionen, und in Zukunft werden viele weitere hinzugefügt. Schaut mal rein!

Inhaltsverzeichnis

✨ Hauptmerkmale

  • 💻 Kompatibel mit Cursor, Windsurf, Cline und anderen MCP-Clients, die stdio unterstützen
  • 🔐 Steuern Sie den Nur-Lese- und Lese-/Schreibmodus der SQL-Abfrageausführung
  • 🔍 Laufzeitvalidierung von SQL-Abfragen mit Risikobewertung
  • 🛡️ Dreistufiges Sicherheitssystem für SQL-Operationen: sicher, schreibend und destruktiv
  • 🔄 Robuste Transaktionsverarbeitung für direkte und gepoolte Datenbankverbindungen
  • 📝 Automatische Versionierung von Datenbankschemaänderungen
  • 💻 Verwalten Sie Ihre Supabase-Projekte mit der Supabase Management API
  • 🧑‍💻 Verwalten Sie Benutzer mit Supabase Auth Admin-Methoden über das Python SDK
  • 🔨 Vorgefertigte Tools, die Cursor und Windsurf dabei helfen, effektiver mit MCP zusammenzuarbeiten
  • 📦 Kinderleichte Installation und Einrichtung über den Paketmanager (uv, pipx usw.)

Erste Schritte

Voraussetzungen

Für die Installation des Servers ist Folgendes auf Ihrem System erforderlich:

  • Python 3.12+

Wenn Sie die Installation über uv planen, stellen Sie sicher, dass es installiert ist.

PostgreSQL-Installation

Für den MCP-Server selbst ist keine PostgreSQL-Installation mehr erforderlich, da dieser jetzt asyncpg verwendet, das nicht von PostgreSQL-Entwicklungsbibliotheken abhängig ist.

Sie benötigen jedoch weiterhin PostgreSQL, wenn Sie eine lokale Supabase-Instanz ausführen:

macOS

brew install postgresql@16

Windows

  • Laden Sie PostgreSQL 16+ von https://www.postgresql.org/download/windows/ herunter und installieren Sie es
  • Stellen Sie sicher, dass während der Installation „PostgreSQL Server“ und „Command Line Tools“ ausgewählt sind

Schritt 1. Installation

Seit v0.2.0 ist die Paketinstallation möglich. Sie können den Server mit Ihrem bevorzugten Python-Paketmanager wie folgt installieren:

# if pipx is installed (recommended) pipx install supabase-mcp-server # if uv is installed uv pip install supabase-mcp-server

pipx wird empfohlen, da es isolierte Umgebungen für jedes Paket erstellt.

Sie können den Server auch manuell installieren, indem Sie das Repository klonen und pipx install -e . aus dem Stammverzeichnis ausführen.

Installation von der Quelle

Wenn Sie aus der Quelle installieren möchten, beispielsweise für die lokale Entwicklung:

uv venv # On Mac source .venv/bin/activate # On Windows .venv\Scripts\activate # Install package in editable mode uv pip install -e .
Installation über Smithery.ai

Die vollständigen Anweisungen zur Verwendung von Smithery.ai zum Herstellen einer Verbindung mit diesem MCP-Server finden Sie hier .

Schritt 2. Konfiguration

Der Supabase MCP-Server erfordert eine Konfiguration, um eine Verbindung zu Ihrer Supabase-Datenbank herzustellen, auf die Management-API zuzugreifen und das Auth Admin SDK zu verwenden. Dieser Abschnitt erläutert alle verfügbaren Konfigurationsoptionen und deren Einrichtung.

🔑 Wichtig : Seit v0.4 benötigt der MCP-Server einen API-Schlüssel, den Sie kostenlos bei thequery.dev erhalten, um diesen MCP-Server zu verwenden.

Umgebungsvariablen

Der Server verwendet die folgenden Umgebungsvariablen:

VariableErforderlichStandardBeschreibung
SUPABASE_PROJECT_REFJa127.0.0.1:54322Ihre Supabase-Projektreferenz-ID (oder lokaler Host:Port)
SUPABASE_DB_PASSWORDJapostgresIhr Datenbankpasswort
SUPABASE_REGIONJa*us-east-1AWS-Region, in der Ihr Supabase-Projekt gehostet wird
SUPABASE_ACCESS_TOKENNEINKeinerPersönlicher Zugriffstoken für die Supabase Management API
SUPABASE_SERVICE_ROLE_KEYNEINKeinerServicerollenschlüssel für Auth Admin SDK
QUERY_API_KEYJaKeinerAPI-Schlüssel von thequery.dev (für alle Vorgänge erforderlich)

Hinweis : Die Standardwerte sind für die lokale Supabase-Entwicklung konfiguriert. Für Remote-Supabase-Projekte müssen Sie eigene Werte für SUPABASE_PROJECT_REF und SUPABASE_DB_PASSWORD angeben.

🚨 WICHTIGER KONFIGURATIONSHINWEIS : Für Remote-Supabase-Projekte MÜSSEN Sie die korrekte Region angeben, in der Ihr Projekt gehostet wird ( SUPABASE_REGION . Wenn die Fehlermeldung „Mandant oder Benutzer nicht gefunden“ auftritt, liegt dies höchstwahrscheinlich daran, dass Ihre Regionseinstellung nicht mit der tatsächlichen Region Ihres Projekts übereinstimmt. Sie finden die Region Ihres Projekts im Supabase-Dashboard unter „Projekteinstellungen“.

Verbindungstypen
Datenbankverbindung
  • Der Server verbindet sich mit Ihrer Supabase PostgreSQL-Datenbank über den Transaktionspooler-Endpunkt
  • Die lokale Entwicklung verwendet eine direkte Verbindung zu 127.0.0.1:54322
  • Remote-Projekte verwenden das Format: postgresql://postgres.[project_ref]:[password]@aws-0-[region].pooler.supabase.com:6543/postgres

⚠️ Wichtig : Session-Pooling-Verbindungen werden nicht unterstützt. Der Server verwendet ausschließlich Transaktionspooling für eine bessere Kompatibilität mit der MCP-Serverarchitektur.

Management-API-Verbindung
  • Erfordert die Festlegung SUPABASE_ACCESS_TOKEN
  • Verbindet sich mit der Supabase Management API unter https://api.supabase.com
  • Funktioniert nur mit Remote-Supabase-Projekten (keine lokale Entwicklung)
Auth Admin SDK-Verbindung
  • Erfordert die Festlegung SUPABASE_SERVICE_ROLE_KEY
  • Für die lokale Entwicklung wird eine Verbindung zu http://127.0.0.1:54321 hergestellt.
  • Für Remote-Projekte wird eine Verbindung zu https://[project_ref].supabase.co hergestellt.
Konfigurationsmethoden

Der Server sucht in dieser Reihenfolge nach Konfigurationen (von der höchsten zur niedrigsten Priorität):

  1. Umgebungsvariablen : Werte, die direkt in Ihrer Umgebung festgelegt werden
  2. Lokale .env Datei : Eine .env Datei in Ihrem aktuellen Arbeitsverzeichnis (funktioniert nur beim Ausführen aus der Quelle)
  3. Globale Konfigurationsdatei :
    • Windows: %APPDATA%\supabase-mcp\.env
    • macOS/Linux: ~/.config/supabase-mcp/.env
  4. Standardeinstellungen : Lokale Entwicklungsstandards (wenn keine andere Konfiguration gefunden wird)

⚠️ Wichtig : Bei Verwendung des über pipx oder uv installierten Pakets werden lokale .env Dateien in Ihrem Projektverzeichnis nicht erkannt. Sie müssen entweder Umgebungsvariablen oder die globale Konfigurationsdatei verwenden.

Einrichten der Konfiguration
Option 1: Clientspezifische Konfiguration (empfohlen)

Legen Sie Umgebungsvariablen direkt in Ihrer MCP-Clientkonfiguration fest (siehe clientspezifische Einrichtungsanweisungen in Schritt 3). Die meisten MCP-Clients unterstützen diesen Ansatz, sodass Ihre Konfiguration mit Ihren Clienteinstellungen übereinstimmt.

Option 2: Globale Konfiguration

Erstellen Sie eine globale .env -Konfigurationsdatei, die für alle MCP-Serverinstanzen verwendet wird:

# Create config directory # On macOS/Linux mkdir -p ~/.config/supabase-mcp # On Windows (PowerShell) mkdir -Force "$env:APPDATA\supabase-mcp" # Create and edit .env file # On macOS/Linux nano ~/.config/supabase-mcp/.env # On Windows (PowerShell) notepad "$env:APPDATA\supabase-mcp\.env"

Fügen Sie Ihre Konfigurationseinstellungen zur Datei hinzu:

QUERY_API_KEY=your-api-key SUPABASE_PROJECT_REF=your-project-ref SUPABASE_DB_PASSWORD=your-db-password SUPABASE_REGION=us-east-1 SUPABASE_ACCESS_TOKEN=your-access-token SUPABASE_SERVICE_ROLE_KEY=your-service-role-key
Option 3: Projektspezifische Konfiguration (nur Quellinstallation)

Wenn Sie den Server aus der Quelle ausführen (nicht über ein Paket), können Sie in Ihrem Projektverzeichnis eine .env Datei im gleichen Format wie oben erstellen.

So finden Sie Ihre Supabase-Projektinformationen
  • Projektreferenz : Gefunden in Ihrer Supabase-Projekt-URL: https://supabase.com/dashboard/project/<project-ref>
  • Datenbankkennwort : Wird während der Projekterstellung festgelegt oder unter „Projekteinstellungen“ → „Datenbank“ gefunden.
  • Zugriffstoken : Generieren Sie unter https://supabase.com/dashboard/account/tokens
  • Servicerollenschlüssel : Zu finden in Projekteinstellungen → API → Projekt-API-Schlüssel
Unterstützte Regionen

Der Server unterstützt alle Supabase-Regionen:

  • us-west-1 – Westen der USA (Nordkalifornien)
  • us-east-1 – Osten der USA (Nord-Virginia) – Standard
  • us-east-2 – Osten der USA (Ohio)
  • ca-central-1 – Kanada (Zentral)
  • eu-west-1 – West-EU (Irland)
  • eu-west-2 – Westeuropa (London)
  • eu-west-3 – West-EU (Paris)
  • eu-central-1 – Zentrale EU (Frankfurt)
  • eu-central-2 - Mitteleuropa (Zürich)
  • eu-north-1 – Nord-EU (Stockholm)
  • ap-south-1 – Südasien (Mumbai)
  • ap-southeast-1 – Südostasien (Singapur)
  • ap-northeast-1 – Nordostasien (Tokio)
  • ap-northeast-2 – Nordostasien (Seoul)
  • ap-southeast-2 – Ozeanien (Sydney)
  • sa-east-1 – Südamerika (São Paulo)
Einschränkungen
  • Kein Self-Hosted-Support : Der Server unterstützt nur offizielle Supabase.com-gehostete Projekte und lokale Entwicklung
  • Keine Unterstützung für Verbindungszeichenfolgen : Benutzerdefinierte Verbindungszeichenfolgen werden nicht unterstützt
  • Kein Sitzungspooling : Für Datenbankverbindungen wird nur Transaktionspooling unterstützt
  • API- und SDK-Funktionen : Die Management-API und die Auth Admin SDK-Funktionen funktionieren nur mit Remote-Supabase-Projekten, nicht mit lokaler Entwicklung

Schritt 3. Verwendung

Generell sollte jeder MCP-Client, der stdio -Protokoll unterstützt, mit diesem MCP-Server funktionieren. Dieser Server wurde explizit für die Zusammenarbeit mit folgenden Servern getestet:

  • Cursor
  • Windsurf
  • Cline
  • Claude Desktop

Darüber hinaus können Sie mit smithery.ai auch eine Reihe von Clients auf diesem Server installieren, darunter die oben genannten.

Befolgen Sie die nachstehenden Anleitungen, um diesen MCP-Server auf Ihrem Client zu installieren.

Cursor

Gehen Sie zu Einstellungen -> Funktionen -> MCP-Server und fügen Sie einen neuen Server mit dieser Konfiguration hinzu:

# can be set to any name name: supabase type: command # if you installed with pipx command: supabase-mcp-server # if you installed with uv command: uv run supabase-mcp-server # if the above doesn't work, use the full path (recommended) command: /full/path/to/supabase-mcp-server # Find with 'which supabase-mcp-server' (macOS/Linux) or 'where supabase-mcp-server' (Windows)

Wenn die Konfiguration korrekt ist, sollten Sie einen grünen Punkt und die Anzahl der vom Server bereitgestellten Tools sehen.

Windsurf

Gehen Sie zu Cascade -> Klicken Sie auf das Hammersymbol -> Konfigurieren -> Füllen Sie die Konfiguration aus:

{ "mcpServers": { "supabase": { "command": "/Users/username/.local/bin/supabase-mcp-server", // update path "env": { "QUERY_API_KEY": "your-api-key", // Required - get your API key at thequery.dev "SUPABASE_PROJECT_REF": "your-project-ref", "SUPABASE_DB_PASSWORD": "your-db-password", "SUPABASE_REGION": "us-east-1", // optional, defaults to us-east-1 "SUPABASE_ACCESS_TOKEN": "your-access-token", // optional, for management API "SUPABASE_SERVICE_ROLE_KEY": "your-service-role-key" // optional, for Auth Admin SDK } } } }

Wenn die Konfiguration korrekt ist, sollten Sie in der Liste der verfügbaren Server einen grünen Punktindikator und einen anklickbaren Supabase-Server sehen.

Claude Desktop

Claude Desktop unterstützt auch MCP-Server über eine JSON-Konfiguration. Befolgen Sie diese Schritte, um den Supabase MCP-Server einzurichten:

  1. Suchen Sie den vollständigen Pfad zur ausführbaren Datei (dieser Schritt ist entscheidend):
    # On macOS/Linux which supabase-mcp-server # On Windows where supabase-mcp-server
    Kopieren Sie den vollständigen zurückgegebenen Pfad (z. B. /Users/username/.local/bin/supabase-mcp-server ).
  2. Konfigurieren Sie den MCP-Server in Claude Desktop:
    • Öffnen Sie Claude Desktop
    • Gehen Sie zu Einstellungen → Entwickler -> Konfiguration MCP-Server bearbeiten
    • Fügen Sie eine neue Konfiguration mit dem folgenden JSON hinzu:
    { "mcpServers": { "supabase": { "command": "/full/path/to/supabase-mcp-server", // Replace with the actual path from step 1 "env": { "QUERY_API_KEY": "your-api-key", // Required - get your API key at thequery.dev "SUPABASE_PROJECT_REF": "your-project-ref", "SUPABASE_DB_PASSWORD": "your-db-password", "SUPABASE_REGION": "us-east-1", // optional, defaults to us-east-1 "SUPABASE_ACCESS_TOKEN": "your-access-token", // optional, for management API "SUPABASE_SERVICE_ROLE_KEY": "your-service-role-key" // optional, for Auth Admin SDK } } } }

⚠️ Wichtig : Im Gegensatz zu Windsurf und Cursor benötigt Claude Desktop den vollständigen absoluten Pfad zur ausführbaren Datei. Die Verwendung nur des Befehlsnamens ( supabase-mcp-server ) führt zu einem „spawn ENOENT“-Fehler.

Wenn die Konfiguration korrekt ist, sollte der Supabase MCP-Server in Claude Desktop als verfügbar aufgeführt sein.

Cline

Cline unterstützt auch MCP-Server über eine ähnliche JSON-Konfiguration. Befolgen Sie diese Schritte, um den Supabase MCP-Server einzurichten:

  1. Suchen Sie den vollständigen Pfad zur ausführbaren Datei (dieser Schritt ist entscheidend):
    # On macOS/Linux which supabase-mcp-server # On Windows where supabase-mcp-server
    Kopieren Sie den vollständigen zurückgegebenen Pfad (z. B. /Users/username/.local/bin/supabase-mcp-server ).
  2. Konfigurieren Sie den MCP-Server in Cline:
    • Öffnen Sie Cline in VS Code
    • Klicken Sie in der Cline-Seitenleiste auf die Registerkarte „MCP-Server“.
    • Klicken Sie auf „MCP-Server konfigurieren“.
    • Dadurch wird die Datei cline_mcp_settings.json geöffnet
    • Fügen Sie die folgende Konfiguration hinzu:
    { "mcpServers": { "supabase": { "command": "/full/path/to/supabase-mcp-server", // Replace with the actual path from step 1 "env": { "QUERY_API_KEY": "your-api-key", // Required - get your API key at thequery.dev "SUPABASE_PROJECT_REF": "your-project-ref", "SUPABASE_DB_PASSWORD": "your-db-password", "SUPABASE_REGION": "us-east-1", // optional, defaults to us-east-1 "SUPABASE_ACCESS_TOKEN": "your-access-token", // optional, for management API "SUPABASE_SERVICE_ROLE_KEY": "your-service-role-key" // optional, for Auth Admin SDK } } } }

Wenn die Konfiguration korrekt ist, sollten Sie neben dem Supabase MCP-Server in der Liste der Cline MCP-Server eine grüne Anzeige und unten im Fenster eine Bestätigungsmeldung „Supabase MCP-Server verbunden“ sehen.

Fehlerbehebung

Hier sind einige Tipps und Tricks, die Ihnen helfen könnten:

  • Debug-Installation : Führen Sie supabase-mcp-server direkt vom Terminal aus aus, um zu prüfen, ob es funktioniert. Falls nicht, liegt möglicherweise ein Problem mit der Installation vor.
  • MCP-Serverkonfiguration – Wenn der obige Schritt funktioniert, ist der Server korrekt installiert und konfiguriert. Sofern Sie den richtigen Befehl angegeben haben, sollte die IDE eine Verbindung herstellen können. Stellen Sie sicher, dass Sie den richtigen Pfad zur ausführbaren Serverdatei angeben.
  • Fehler „Keine Tools gefunden“ – Wenn im Cursor „Client geschlossen – keine Tools verfügbar“ angezeigt wird, obwohl das Paket installiert ist:
    • Finden Sie den vollständigen Pfad zur ausführbaren Datei, indem Sie which supabase-mcp-server (macOS/Linux) oder where supabase-mcp-server (Windows) ausführen.
    • Verwenden Sie den vollständigen Pfad in Ihrer MCP-Serverkonfiguration anstelle von nur supabase-mcp-server
    • Beispiel: /Users/username/.local/bin/supabase-mcp-server oder C:\Users\username\.local\bin\supabase-mcp-server.exe
  • Umgebungsvariablen – Um eine Verbindung mit der richtigen Datenbank herzustellen, stellen Sie sicher, dass Sie entweder Umgebungsvariablen in mcp_config.json oder in .env Datei in einem globalen Konfigurationsverzeichnis ( ~/.config/supabase-mcp/.env unter macOS/Linux oder %APPDATA%\supabase-mcp\.env unter Windows) festlegen.
  • Zugriff auf Protokolle – Der MCP-Server schreibt detaillierte Protokolle in eine Datei:
    • Speicherort der Protokolldatei:
      • macOS/Linux: ~/.local/share/supabase-mcp/mcp_server.log
      • Windows: %USERPROFILE%\.local\share\supabase-mcp\mcp_server.log
    • Protokolle enthalten Verbindungsstatus, Konfigurationsdetails und Betriebsergebnisse
    • Zeigen Sie Protokolle mit einem beliebigen Texteditor oder Terminalbefehlen an:
      # On macOS/Linux cat ~/.local/share/supabase-mcp/mcp_server.log # On Windows (PowerShell) Get-Content "$env:USERPROFILE\.local\share\supabase-mcp\mcp_server.log"

Wenn Sie nicht weiterkommen oder eine der oben aufgeführten Anweisungen falsch ist, melden Sie dies bitte.

MCP-Inspektor

Ein äußerst nützliches Tool zur Fehlerbehebung bei MCP-Serverproblemen ist MCP Inspector. Wenn Sie die Software aus der Quelle installiert haben, können Sie supabase-mcp-inspector aus dem Projektrepo ausführen. Dadurch wird die Inspector-Instanz ausgeführt. Zusammen mit den Protokollen erhalten Sie einen vollständigen Überblick über die Vorgänge auf dem Server.

📝 Das Ausführen supabase-mcp-inspector funktioniert nicht richtig, wenn es aus einem Paket installiert wurde. Ich werde das Problem in der nächsten Version überprüfen und beheben.

Funktionsübersicht

Datenbankabfragetools

Seit v0.3+ bietet der Server umfassende Datenbankverwaltungsfunktionen mit integrierten Sicherheitskontrollen:

  • Ausführung von SQL-Abfragen : Führen Sie PostgreSQL-Abfragen mit Risikobewertung aus
    • Dreistufiges Sicherheitssystem :
      • safe : Nur-Lese-Operationen (SELECT) – immer erlaubt
      • write : Datenänderungen (INSERT, UPDATE, DELETE) – erfordern unsicheren Modus
      • destructive : Schemaänderungen (DROP, CREATE) – erfordern unsicheren Modus + Bestätigung
  • SQL-Parsing und -Validierung :
    • Verwendet den Parser von PostgreSQL (pglast) für eine genaue Analyse und liefert klares Feedback zu Sicherheitsanforderungen
  • Automatische Migrationsversionierung :
    • Datenbankverändernde Operationen werden automatisch versioniert
    • Generiert beschreibende Namen basierend auf Operationstyp und Ziel
  • Sicherheitskontrollen :
    • Der Standard-SAFE-Modus erlaubt nur schreibgeschützte Vorgänge
    • Alle Anweisungen werden im Transaktionsmodus über asyncpg ausgeführt
    • 2-stufige Bestätigung für Hochrisikovorgänge
  • Verfügbare Tools :
    • get_schemas : Listet Schemata mit Größen und Tabellenanzahl auf
    • get_tables : Listet Tabellen, Fremdtabellen und Ansichten mit Metadaten auf
    • get_table_schema : Ruft die detaillierte Tabellenstruktur ab (Spalten, Schlüssel, Beziehungen)
    • execute_postgresql : Führt SQL-Anweisungen für Ihre Datenbank aus
    • confirm_destructive_operation : Führt Operationen mit hohem Risiko nach der Bestätigung aus
    • retrieve_migrations : Ruft Migrationen mit Filter- und Paginierungsoptionen ab
    • live_dangerously : Schaltet zwischen sicherem und unsicherem Modus um

Verwaltungs-API-Tools

Seit v0.3.0 bietet der Server sicheren Zugriff auf die Supabase Management API mit integrierten Sicherheitskontrollen:

  • Verfügbare Tools :
    • send_management_api_request : Sendet beliebige Anfragen an die Supabase Management API mit automatischer Einfügung der Projektreferenz
    • get_management_api_spec : Ruft die erweiterte API-Spezifikation mit Sicherheitsinformationen ab
      • Unterstützt mehrere Abfragemodi: nach Domäne, nach bestimmtem Pfad/Methode oder nach allen Pfaden
      • Enthält Informationen zur Risikobewertung für jeden Endpunkt
      • Bietet detaillierte Parameteranforderungen und Antwortformate
      • Hilft LLMs, die vollen Fähigkeiten der Supabase Management API zu verstehen
    • get_management_api_safety_rules : Ruft alle Sicherheitsregeln mit menschenlesbaren Erklärungen ab
    • live_dangerously : Schaltet zwischen sicheren und unsicheren Betriebsmodi um
  • Sicherheitskontrollen :
    • Verwendet denselben Sicherheitsmanager wie Datenbankoperationen für ein konsistentes Risikomanagement
    • Nach Risikostufe kategorisierte Vorgänge:
      • safe : Nur-Lese-Operationen (GET) – immer erlaubt
      • unsafe : Statusändernde Vorgänge (POST, PUT, PATCH, DELETE) – erfordern unsicheren Modus
      • blocked : Destruktive Operationen (Projekt löschen usw.) – niemals erlaubt
    • Der standardmäßige abgesicherte Modus verhindert versehentliche Statusänderungen
    • Pfadbasierter Musterabgleich für präzise Sicherheitsregeln

Hinweis : Management-API-Tools funktionieren nur mit Remote-Supabase-Instanzen und sind nicht mit lokalen Supabase-Entwicklungs-Setups kompatibel.

Auth-Admin-Tools

Ich hatte geplant, dem MCP-Server Unterstützung für Python-SDK-Methoden hinzuzufügen. Nach reiflicher Überlegung habe ich mich entschieden, nur Auth-Admin-Methoden zu unterstützen, da ich oft Testbenutzer manuell erstellt habe, was fehleranfällig und zeitaufwändig war. Jetzt kann ich Cursor einfach bitten, einen Testbenutzer zu erstellen, und es wird nahtlos erledigt. Lesen Sie die vollständige Dokumentation zur Auth-Admin-SDK-Methode, um mehr über ihre Funktionen zu erfahren.

Seit v0.3.6 unterstützt der Server den direkten Zugriff auf Supabase Auth Admin-Methoden über das Python SDK:

  • Enthält die folgenden Werkzeuge:
    • get_auth_admin_methods_spec zum Abrufen der Dokumentation für alle verfügbaren Auth-Admin-Methoden
    • call_auth_admin_method zum direkten Aufrufen von Auth-Admin-Methoden mit korrekter Parameterbehandlung
  • Unterstützte Methoden:
    • get_user_by_id : Ruft einen Benutzer anhand seiner ID ab
    • list_users : Listet alle Benutzer mit Seitennummerierung auf
    • create_user : Einen neuen Benutzer erstellen
    • delete_user : Löscht einen Benutzer anhand seiner ID
    • invite_user_by_email : Senden Sie einen Einladungslink an die E-Mail-Adresse eines Benutzers
    • generate_link : Generiert einen E-Mail-Link für verschiedene Authentifizierungszwecke
    • update_user_by_id : Benutzerattribute nach ID aktualisieren
    • delete_factor : Löscht einen Faktor für einen Benutzer (derzeit nicht im SDK implementiert)
Warum Auth Admin SDK anstelle von einfachen SQL-Abfragen verwenden?

Das Auth Admin SDK bietet gegenüber der direkten SQL-Manipulation mehrere wichtige Vorteile:

  • Funktionalität : Ermöglicht Vorgänge, die mit SQL allein nicht möglich sind (Einladungen, Magic Links, MFA)
  • Genauigkeit : Zuverlässiger als das Erstellen und Ausführen von Roh-SQL-Abfragen auf Authentifizierungsschemata
  • Einfachheit : Bietet klare Methoden mit ordnungsgemäßer Validierung und Fehlerbehandlung
    • Antwortformat:
      • Alle Methoden geben strukturierte Python-Objekte anstelle von Rohwörterbüchern zurück
      • Auf Objektattribute kann mit der Punktnotation zugegriffen werden (z. B. user.id anstelle von user["id"] )
    • Randfälle und Einschränkungen:
      • UUID-Validierung: Viele Methoden erfordern ein gültiges UUID-Format für Benutzer-IDs und geben spezifische Validierungsfehler zurück
      • E-Mail-Konfiguration: Methoden wie invite_user_by_email und generate_link erfordern die Konfiguration des E-Mail-Versands in Ihrem Supabase-Projekt.
      • Linktypen: Bei der Linkgenerierung gelten für unterschiedliche Linktypen unterschiedliche Anforderungen:
        • Für signup ist die Existenz des Benutzers nicht erforderlich
        • Für magiclink und recovery muss der Benutzer bereits im System vorhanden sein
      • Fehlerbehandlung: Der Server liefert detaillierte Fehlermeldungen der Supabase-API, die von der Dashboard-Oberfläche abweichen können
      • Methodenverfügbarkeit: Einige Methoden wie delete_factor werden in der API bereitgestellt, sind jedoch im SDK nicht vollständig implementiert

Protokolle und Analysen

Der Server bietet Zugriff auf Supabase-Protokolle und Analysedaten und erleichtert so die Überwachung und Fehlerbehebung Ihrer Anwendungen:

  • Verfügbares Tool : retrieve_logs - Zugriff auf Protokolle von jedem Supabase-Dienst
  • Protokollsammlungen :
    • postgres : Datenbankserverprotokolle
    • api_gateway : API-Gateway-Anfragen
    • auth : Authentifizierungsereignisse
    • postgrest : RESTful API-Dienstprotokolle
    • pooler : Verbindungspooling-Protokolle
    • storage : Objektspeichervorgänge
    • realtime : WebSocket-Abonnementprotokolle
    • edge_functions : Serverlose Funktionsausführungen
    • cron : Geplante Jobprotokolle
    • pgbouncer : Verbindungspooler-Protokolle
  • Funktionen : Filtern Sie nach Zeit, suchen Sie nach Text, wenden Sie Feldfilter an oder verwenden Sie benutzerdefinierte SQL-Abfragen

Vereinfacht das Debuggen in Ihrem Supabase-Stack, ohne zwischen Schnittstellen wechseln oder komplexe Abfragen schreiben zu müssen.

Automatische Versionierung von Datenbankänderungen

„Mit großer Macht geht große Verantwortung einher.“ Das Tool execute_postgresql in Verbindung mit dem treffend benannten Tool live_dangerously bietet eine leistungsstarke und einfache Möglichkeit zur Verwaltung Ihrer Supabase-Datenbank. Gleichzeitig bedeutet es, dass das Löschen oder Ändern einer Tabelle nur eine Chat-Nachricht entfernt ist. Um das Risiko irreversibler Änderungen zu reduzieren, unterstützt der Server seit Version 0.3.8:

  • Automatische Erstellung von Migrationsskripten für alle Schreib- und destruktiven SQL-Operationen, die auf der Datenbank ausgeführt werden
  • Verbesserter Sicherheitsmodus der Abfrageausführung, in dem alle Abfragen kategorisiert werden in:
    • safe Typ: immer zulässig. Schließt alle schreibgeschützten Operationen ein.
    • write : erfordert, dass write vom Benutzer aktiviert wird.
    • destructive Typ: erfordert, dass write vom Benutzer aktiviert wird UND eine zweistufige Bestätigung der Abfrageausführung für Clients, die Tools nicht automatisch ausführen.

Universeller Sicherheitsmodus

Seit v0.3.8 ist der Sicherheitsmodus über alle Dienste (Datenbank, API, SDK) hinweg mithilfe eines universellen Sicherheitsmanagers standardisiert. Dies ermöglicht ein konsistentes Risikomanagement und eine einheitliche Schnittstelle zur Steuerung der Sicherheitseinstellungen auf dem gesamten MCP-Server.

Alle Vorgänge (SQL-Abfragen, API-Anfragen, SDK-Methoden) werden in Risikostufen eingeteilt:

  • Low Risiko: Nur-Lese-Operationen, die weder Daten noch Struktur ändern (SELECT-Abfragen, GET-API-Anfragen)
  • Medium Risiko: Schreibvorgänge, die Daten, aber nicht die Struktur ändern (INSERT/UPDATE/DELETE, die meisten POST/PUT-API-Anfragen)
  • High Risiko: Destruktive Operationen, die die Datenbankstruktur verändern oder zu Datenverlust führen können (DROP/TRUNCATE, DELETE-API-Endpunkte)
  • Extreme Risiko: Operationen mit schwerwiegenden Folgen, die vollständig blockiert werden (Löschen von Projekten)

Sicherheitskontrollen werden je nach Risikostufe angewendet:

  • Operationen mit geringem Risiko sind immer erlaubt
  • Bei Vorgängen mit mittlerem Risiko muss der unsichere Modus aktiviert werden
  • Hochrisikovorgänge erfordern den unsicheren Modus UND eine ausdrückliche Bestätigung
  • Extrem riskante Operationen sind niemals erlaubt
So funktioniert der Bestätigungsablauf

Alle Vorgänge mit hohem Risiko (sei es eine PostgreSQL- oder API-Anfrage) werden auch im unsafe Modus blockiert. Sie müssen jede Operation mit hohem Risiko ausdrücklich bestätigen und genehmigen, damit sie ausgeführt werden kann.

Änderungsprotokoll

  • 📦 Vereinfachte Installation über den Paketmanager - ✅ (v0.2.0)
  • 🌎 Unterstützung für verschiedene Supabase-Regionen - ✅ (v0.2.2)
  • 🎮 Programmatischer Zugriff auf die Supabase-Verwaltungs-API mit Sicherheitskontrollen - ✅ (v0.3.0)
  • 👷‍♂️ SQL-Abfragen für Datenbanken lesen und lesen/schreiben mit Sicherheitskontrollen - ✅ (v0.3.0)
  • 🔄 Robuste Transaktionsverarbeitung für direkte und gepoolte Verbindungen - ✅ (v0.3.2)
  • 🐍 Unterstützte Methoden und Objekte, die im nativen Python SDK verfügbar sind – ✅ (v0.3.6)
  • 🔍 Stärkere SQL-Abfragevalidierung ✅ (v0.3.8)
  • 📝 Automatische Versionierung von Datenbankänderungen ✅ (v0.3.8)
  • 📖 Radikal verbesserte Kenntnisse und Tools der API-Spezifikation ✅ (v0.3.8)
  • ✍️ Verbesserte Konsistenz der Migrationstools für ein besser organisiertes Datenbank-VCS ✅ (v0.3.10)
  • 🥳 Query MCP ist veröffentlicht (v0.4.0)

Eine detailliertere Roadmap finden Sie in dieser Diskussion auf GitHub.

Sternengeschichte


Viel Spaß! ☺️

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Dieser Server ermöglicht die Interaktion mit Supabase PostgreSQL-Datenbanken über das MCP-Protokoll und erlaubt eine nahtlose Integration mit Cursor- und Windsurf-IDEs für eine sichere und validierte Datenbankverwaltung.

  1. Inhaltsverzeichnis
    1. ✨ Hauptmerkmale
      1. Erste Schritte
        1. Voraussetzungen
        2. PostgreSQL-Installation
        3. Schritt 1. Installation
        4. Schritt 2. Konfiguration
        5. Schritt 3. Verwendung
        6. Fehlerbehebung
        7. MCP-Inspektor
      2. Funktionsübersicht
        1. Datenbankabfragetools
        2. Verwaltungs-API-Tools
        3. Auth-Admin-Tools
        4. Protokolle und Analysen
        5. Automatische Versionierung von Datenbankänderungen
        6. Universeller Sicherheitsmodus
      3. Änderungsprotokoll
        1. Sternengeschichte

          Related MCP Servers

          • A
            security
            A
            license
            A
            quality
            An MCP server that provides tools for interacting with Supabase databases, storage, and edge functions.
            Last updated -
            14
            41
            JavaScript
            MIT License
          • -
            security
            A
            license
            -
            quality
            An MCP server that connects to Supabase PostgreSQL databases, exposing table schemas as resources and providing tools for data analysis through SQL queries.
            Last updated -
            JavaScript
            MIT License
          • -
            security
            F
            license
            -
            quality
            A server implementing the Model Context Protocol (MCP) for Cursor that allows using a PostgreSQL database as storage for model contexts, enabling secure database exploration and querying.
            Last updated -
            JavaScript
            • Linux
            • Apple
          • -
            security
            A
            license
            -
            quality
            Enables Cursor and Windsurf to safely interact with Supabase databases by providing tools for database management, SQL query execution, and Supabase Management API access with built-in safety controls.
            Last updated -
            7
            Python
            Apache 2.0
            • Apple
            • Linux

          View all related MCP servers

          ID: cyeeqagb81