Back to MCP directory
publicPublicdnsLocal runtime

Selfhosted Supabase

这是一个专为自托管Supabase实例设计的Model Context Protocol (MCP)服务器项目,提供了数据库管理、模式查询、用户认证、存储查看等功能,支持通过MCP客户端工具进行开发环境集成。

article

README

🚀 自托管 Supabase MCP 服务器

本项目可帮助你自托管 Supabase MCP 服务器,通过简单的安装和配置,就能快速搭建并运行服务。

🚀 快速开始

要使用自托管 Supabase MCP 服务器,需完成安装和配置环境变量的步骤,之后就可以运行服务了。

📦 安装指南

使用 npm 安装 @supabase/supabase-jspg

npm install @supabase/supabase-js pg

🔧 配置环境变量

创建一个 .env 文件并添加以下内容:

SUPABASE_URL=your-supabase-url
SUPABASE_ANON_KEY=your-supabase-anon-key
SUPABASE_SERVICE_ROLE_KEY=your-supabase-service-key (可选)
DATABASE_URL=postgres://user:password@localhost:5432/dbname (可选)
SUPABASE_AUTH_JWT_SECRET=your-jwt-secret (可选)

💻 使用示例

基础用法

通过 Node.js 运行:

import { createServer } from '@modelcontextprotocol/sdk'
import { SupabaseProvider } from './src/SupabaseProvider'

async function start() {
  const server = await createServer()
  server.use(new SupabaseProvider())
  await server.listen(3001)
}

start().catch(console.error)

📚 详细文档

CLI 选项

Usage: mcp-server [options]

Options:
  -u, --url <supabase-url>      Supabase 服务 URL
  -a, --anon-key <anon-key>     Supabase 匿名访问密钥
  -s, --service-key <service-key>  Supabase 服务角色密钥(可选)
  -d, --db-url <db-url>        数据库连接 URL(可选)
  -j, --jwt-secret <jwt-secret>  Supabase JWT 签名密钥(可选)
  -c, --config <config-path>    工具配置文件路径(默认为 ./mcp-tools.json)
  -h, --help                   显示帮助信息

配置文件示例

package.json

{
  "scripts": {
    "start": "mcp-server --url your-supabase-url --anon-key your-anon-key"
  }
}

mcp-tools.json

{
  "tools": {
    "supabase": {
      "version": "2.39.0",
      "path": "~/.supabase/cli"
    },
    "psql": {
      "version": "15.4",
      "path": "/usr/bin/psql"
    }
  }
}

自定义工具配置

import { defineTools } from '@modelcontextprotocol/sdk'

defineTools(() => ({
  supabase: {
    version: '2.39.0',
    path: '~/.supabase/cli'
  },
  psql: {
    version: '15.4',
    path: '/usr/bin/psql'
  }
}))

注意事项

⚠️ 重要提示

  • 支持的文件类型:.sql, .psql, .js, .ts
  • 使用 #-- 注释 SQL 查询
  • 忽略语言特定的注释(如 TypeScript 的 // 和 JavaScript 的 //

开发

  • 语言:TypeScript
  • 构建:使用 tsc(TypeScript 编译器)
  • 依赖项:请参阅 package.json
  • 开发:在 src/ 目录中进行修改

📄 许可证

本项目遵循 MIT 协议。

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client