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',
  },
});
A
license - permissive license
-
quality - not tested
B
maintenance

Maintenance

Maintainers
7hResponse time
2wRelease cycle
24Releases (12mo)
Issues opened vs closed

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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/supabase-mcp'

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