Skip to main content
Glama

@supabase/mcp-server-postgrest

Dies ist ein MCP-Server für PostgREST . Er ermöglicht LLMs, CRUD-Operationen an Ihrer App über die REST-API durchzuführen.

Dieser Server funktioniert mit Supabase-Projekten (die PostgREST ausführen) und jedem eigenständigen PostgREST-Server.

Werkzeuge

Folgende Tools stehen zur Verfügung:

postgrestRequest

Führt eine HTTP-Anfrage an einen konfigurierten PostgREST-Server aus. Akzeptiert die folgenden Argumente:

  • method : Die zu verwendende HTTP-Methode (z. B. GET , POST , PATCH , DELETE )

  • path : Der abzufragende Pfad (z. B. /todos?id=eq.1 )

  • body : Der Anforderungstext (für POST und PATCH Anforderungen)

Es gibt die JSON-Antwort vom PostgREST-Server zurück, einschließlich ausgewählter Zeilen für GET Anfragen und aktualisierter Zeilen für POST und PATCH Anfragen.

sqlToRest

Konvertiert eine SQL-Abfrage in die entsprechende PostgREST-Syntax (als Methode und Pfad). Nützlich für komplexe Abfragen, die LLMs sonst nur schwer in gültige PostgREST-Syntax konvertieren könnten.

Beachten Sie, dass PostgREST nur eine Teilmenge von SQL unterstützt, sodass nicht alle Abfragen konvertiert werden. Weitere Informationen finden Sie sql-to-rest .

Es akzeptiert die folgenden Argumente:

  • sql : Die zu konvertierende SQL-Abfrage.

Es gibt ein Objekt mit method und path für die Anfrage zurück. LLMs können dann das Tool postgrestRequest verwenden, um die Anfrage auszuführen.

Related MCP server: Supabase MCP Server

Verwendung

Mit Claude Desktop

Claude Desktop ist ein beliebter LLM-Client, der das Model Context Protocol unterstützt. Sie können Ihren PostgREST-Server mit Claude Desktop verbinden, um Ihre Datenbank über natürliche Sprachbefehle abzufragen.

Sie können MCP-Server über die Konfigurationsdatei unter folgender Adresse zu Claude Desktop hinzufügen:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Um Ihr Supabase-Projekt (oder einen beliebigen PostgREST-Server) zu Claude Desktop hinzuzufügen, fügen Sie dem mcpServers Objekt in der Konfigurationsdatei die folgende Konfiguration hinzu:

{
  "mcpServers": {
    "todos": {
      "command": "npx",
      "args": [
        "-y",
        "@supabase/mcp-server-postgrest@latest",
        "--apiUrl",
        "https://your-project-ref.supabase.co/rest/v1",
        "--apiKey",
        "your-anon-key",
        "--schema",
        "public"
      ]
    }
  }
}

Konfiguration

  • apiUrl : Die Basis-URL Ihres PostgREST-Endpunkts

  • apiKey : Ihr API-Schlüssel zur Authentifizierung (optional)

  • schema : Das Postgres-Schema, aus dem die API bereitgestellt wird (z. B. public “). Beachten Sie, dass nicht öffentliche Schemata manuell über PostgREST bereitgestellt werden müssen.

Programmgesteuert (benutzerdefinierter MCP-Client)

Wenn Sie Ihren eigenen MCP-Client erstellen, können Sie sich programmgesteuert über Ihren bevorzugten Transport mit einem PostgREST-Server verbinden. Das MCP SDK bietet integrierte stdio- und SSE- Transporte. Wir bieten außerdem einen StreamTransport an, wenn Sie eine direkte Verbindung zu MCP-Servern im Arbeitsspeicher oder über Ihren eigenen streambasierten Transport herstellen möchten.

Installation

npm i @supabase/mcp-server-postgrest
yarn add @supabase/mcp-server-postgrest
pnpm add @supabase/mcp-server-postgrest

Beispiel

Im folgenden Beispiel wird StreamTransport verwendet, um eine direkte Verbindung zwischen einem MCP-Client und einem Server herzustellen.

import { Client } from '@modelcontextprotocol/sdk/client/index.js';
import { StreamTransport } from '@supabase/mcp-utils';
import { createPostgrestMcpServer } from '@supabase/mcp-server-postgrest';

// Create a stream transport for both client and server
const clientTransport = new StreamTransport();
const serverTransport = new StreamTransport();

// Connect the streams together
clientTransport.readable.pipeTo(serverTransport.writable);
serverTransport.readable.pipeTo(clientTransport.writable);

const client = new Client(
  {
    name: 'MyClient',
    version: '0.1.0',
  },
  {
    capabilities: {},
  }
);

const supabaseUrl = 'https://your-project-ref.supabase.co'; // http://127.0.0.1:54321 for local
const apiKey = 'your-anon-key'; // or service role, or user JWT
const schema = 'public'; // or any other exposed schema

const server = createPostgrestMcpServer({
  apiUrl: `${supabaseUrl}/rest/v1`,
  apiKey,
  schema,
});

// Connect the client and server to their respective transports
await server.connect(serverTransport);
await client.connect(clientTransport);

// Call tools, etc
const output = await client.callTool({
  name: 'postgrestRequest',
  arguments: {
    method: 'GET',
    path: '/todos',
  },
});
-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/supabase-community/mcp-supabase'

If you have feedback or need assistance with the MCP directory API, please join our Discord server