Skip to main content
Glama

@supabase/mcp-server-postgrest

这是PostgREST的 MCP 服务器。它允许 LLM 通过 REST API 在你的应用上执行 CRUD 操作。

该服务器可与 Supabase 项目(运行 PostgREST)和任何独立的 PostgREST 服务器配合使用。

工具

可以使用以下工具:

postgrestRequest

已配置的PostgREST 服务器执行 HTTP 请求。它接受以下参数:

  • method :要使用的 HTTP 方法(例如GETPOSTPATCHDELETE

  • path :查询的路径(例如/todos?id=eq.1

  • body :请求主体(用于POSTPATCH请求)

它返回来自 PostgREST 服务器的 JSON 响应,包括GET请求的选定行以及POSTPATCH请求的更新行。

sqlToRest

将 SQL 查询转换为等效的 PostgREST 语法(作为方法和路径)。这对于 LLM 难以转换为有效 PostgREST 语法的复杂查询非常有用。

请注意,PostgREST 仅支持 SQL 的子集,因此并非所有查询都会转换。有关更多详细信息,请参阅sql-to-rest

它接受以下参数:

  • sql :要转换的 SQL 查询。

它返回一个包含请求的methodpath属性的对象。然后,LLM 可以使用postgrestRequest工具来执行该请求。

Related MCP server: Supabase MCP Server

用法

使用 Claude Desktop

Claude Desktop是一款流行的 LLM 客户端,支持模型上下文协议 (MCP)。您可以将 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 :PostgREST 端点的基本 URL

  • apiKey :用于身份验证的 API 密钥*(可选)*

  • schema :用于提供 API 的 Postgres 模式(例如public )。请注意,任何非公共模式都必须从 PostgREST 手动公开。

以编程方式(自定义 MCP 客户端)

如果您正在构建自己的 MCP 客户端,可以使用您首选的传输方式以编程方式连接到 PostgREST 服务器。MCP SDK提供内置的stdioSSE传输方式。如果您希望直接连接到内存中的 MCP 服务器,或者通过您自己的基于流的传输方式进行管道传输,我们还提供StreamTransport接口。

安装

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',
  },
});
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