Skip to main content
Glama

@supabase/mcp-server-postgrest

Это сервер MCP для PostgREST . Он позволяет LLM выполнять операции CRUD в вашем приложении через REST API.

Этот сервер работает с проектами Supabase (которые запускают PostgREST) и любым автономным сервером PostgREST.

Инструменты

Доступны следующие инструменты:

postgrestRequest

Выполняет HTTP-запрос к настроенному серверу PostgREST. Принимает следующие аргументы:

  • method : HTTP-метод, который нужно использовать (например, GET , POST , PATCH , DELETE )

  • path : Путь к запросу (например, /todos?id=eq.1 )

  • body : тело запроса (для запросов POST и PATCH )

Он возвращает ответ JSON от сервера PostgREST, включая выбранные строки для запросов GET и обновленные строки для запросов POST и PATCH .

sqlToRest

Преобразует SQL-запрос в эквивалентный синтаксис PostgREST (как метод и путь). Полезно для сложных запросов, которые LLM в противном случае с трудом преобразовали бы в допустимый синтаксис PostgREST.

Обратите внимание, что PostgREST поддерживает только подмножество SQL, поэтому не все запросы будут преобразованы. Подробнее см. sql-to-rest .

Он принимает следующие аргументы:

  • sql : SQL-запрос для преобразования.

Он возвращает объект, содержащий method и свойства path для запроса. Затем LLM могут использовать инструмент postgrestRequest для выполнения запроса.

Related MCP server: Supabase MCP Server

Использование

С Клодом Десктопом

Claude Desktop — популярный клиент LLM, поддерживающий Model Context Protocol. Вы можете подключить свой сервер PostgREST к Claude Desktop, чтобы запрашивать базу данных с помощью команд естественного языка.

Вы можете добавить серверы MCP в Claude Desktop через его конфигурационный файл по адресу:

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

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

Чтобы добавить проект Supabase (или любой сервер PostgREST) в Claude Desktop, добавьте следующую конфигурацию в объект mcpServers в файле конфигурации:

{ "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" ] } } }

Конфигурация

  • apiUrl : базовый URL вашей конечной точки PostgREST

  • apiKey : Ваш ключ API для аутентификации (необязательно)

  • schema : Схема Postgres для обслуживания API (например, public ). Обратите внимание, что любые непубличные схемы должны быть вручную представлены из PostgREST.

Программно (пользовательский клиент MCP)

Если вы создаете свой собственный клиент MCP, вы можете подключиться к серверу PostgREST программно, используя предпочитаемый вами транспорт. MCP SDK предлагает встроенные транспорты stdio и SSE . Мы также предлагаем StreamTransport , если вы хотите напрямую подключаться к серверам MCP в памяти или через конвейер через ваш собственный потоковый транспорт.

Установка

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

Пример

В следующем примере StreamTransport используется для прямого соединения между клиентом и сервером MCP.

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
-
license - not tested
-
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