README
🚀 PostgREST MCP 服务器
这是一个完整的 PostgREST MCP(模型上下文协议)服务器,它使用 OAuth2 进行身份验证,可与任何 PostgREST 服务器配合使用。目前已在 NEON 和 Supabase 上进行了测试。
该服务器基于 Hono 构建,并支持流式 HTTP。
🚀 快速开始
本服务器可部署到以下平台:
- Supabase 边缘函数 - 默认配置会自动检测
- Cloudflare Workers - 需要配置环境变量
- Deno Deploy - 需要配置环境变量
当部署到 Supabase 时,服务器会自动检测 PostgREST API 端点和身份验证配置。对于其他提供商(NEON、自定义 PostgREST 服务器),则需要配置环境变量。
📦 安装指南
环境变量
AUTH_SERVER_URL
OAuth 授权服务器的 URL。对于 Cloudflare Workers 和 Deno Deploy 部署,此变量是必需的。
当作为 Supabase 边缘函数部署时可选 - 会根据自动可用的 SUPABASE_URL 环境变量自动构建为 {origin}/auth/v1。
示例:https://jdnlvjebzatlybaysdcp.supabase.co/auth/v1
API_BASE_URL
用于进行 API 请求的 PostgREST 服务器 URL。
当设置了 SUPABASE_URL 时可选 - 会根据 SUPABASE_URL 自动构建为 {origin}/rest/v1。设置此变量可覆盖自动构建的 URL。
示例:https://jdnlvjebzatlybaysdcp.supabase.co/rest/v1
API_KEY
在 PostgREST 请求的 apikey 标头中发送的 API 密钥。
当同时设置了 API_KEY 和 SUPABASE_ANON_KEY 时,API_KEY 优先。使用此变量可使用自定义 API 密钥覆盖 Supabase 匿名密钥。
示例:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
SUPABASE_ANON_KEY
当未提供 API_KEY 时,用作 PostgREST 请求的 apikey 标头的 Supabase 匿名密钥。
作为 Supabase 边缘函数部署时会自动可用。对于本地开发或非 Supabase 部署,需要手动设置此变量。
示例:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
💻 使用示例
Supabase 边缘函数
本服务器支持来自 Supabase OAuth2 服务器的 MCP 身份验证。
环境:当作为 Supabase 边缘函数部署时,SUPABASE_URL 环境变量会自动可用。服务器会根据它自动构建 AUTH_SERVER_URL(即 {origin}/auth/v1),因此无需额外的环境配置。
前提条件
需要安装 Supabase CLI。如有需要,可作为依赖项进行安装:
# 作为开发依赖安装
pnpm add -D supabase
开发
deno task supabase:dev
MCP 端点将在以下地址可用:http://localhost:54321/functions/v1/postgrest-mcp/mcp
部署
首先,关联你的项目(一次性设置):
supabase link --project-ref <your-project-ref>
注意:在 Supabase 仪表板 URL 中找到你的项目引用:https://supabase.com/dashboard/project/<your-project-ref> 或在项目设置 > 常规 > 参考 ID 中查找
然后部署函数:
deno task supabase:deploy
MCP 端点将在以下地址可用:https://<your-project-ref>.supabase.co/functions/v1/postgrest-mcp/mcp
⚠️ 重要提示 MCP 检查器(截至 2026 年 1 月)尚未符合 RFC 9728,并且无法正确处理 WWW-Authenticate 标头中的
resource_metadata参数。当 OAuth 元数据端点位于不常见的路径(如/functions/v1/postgrest-mcp/.well-known/oauth-protected-resource)时,会出现问题。Claude Desktop 和 Claude Web 可以正确处理此问题,并能成功发现元数据端点。详情请参阅 检查器问题 #576。
Cloudflare Workers
开发
pnpm cloudflare:dev
MCP 端点将在以下地址可用:http://localhost:3000/mcp
部署
pnpm cloudflare:deploy
MCP 端点将在以下地址可用:https://<your-worker>.workers.dev/mcp
Deno
前提条件
安装 Deno:
# macOS/Linux
curl -fsSL https://deno.land/install.sh | sh
# Windows
irm https://deno.land/install.ps1 | iex
开发
pnpm deno:dev
# 或者直接使用 deno
deno task dev
MCP 端点将在以下地址可用:http://localhost:8000/mcp
部署
首先,创建一个新项目(一次性设置):
deno deploy create --org=<your-org>
然后进行部署:
deno task deploy
MCP 端点将在以下地址可用:https://<your-project>.deno.dev/mcp
📄 许可证
本实现基于 supabase-mcp。
Scan to join WeChat group