Interacts with a self-hosted Supabase instance from MCP clients such as IDE extensions.
接入配置
选择客户端,复制配置,再按项目文档补齐环境变量。
claude mcp add self-hosted-supabase --env SUPABASE_URL='<SUPABASE_URL>' --env SUPABASE_ANON_KEY='<SUPABASE_ANON_KEY>' -- node dist/index.js --url '{{config.SUPABASE_URL}}' --anon-key '{{config.SUPABASE_ANON_KEY}}' --service-key '{{config.SUPABASE_SERVICE_ROLE_KEY}}' --db-url '{{config.DATABASE_URL}}' --jwt-secret '{{config.SUPABASE_AUTH_JWT_SECRET}}' --tools-config '{{config.TOOLS_CONFIG_PATH}}'~/.codex/config.toml
[mcp_servers.self-hosted-supabase]
command = "node"
args = ["dist/index.js", "--url", "{{config.SUPABASE_URL}}", "--anon-key", "{{config.SUPABASE_ANON_KEY}}", "--service-key", "{{config.SUPABASE_SERVICE_ROLE_KEY}}", "--db-url", "{{config.DATABASE_URL}}", "--jwt-secret", "{{config.SUPABASE_AUTH_JWT_SECRET}}", "--tools-config", "{{config.TOOLS_CONFIG_PATH}}"]
env = { SUPABASE_URL = "<SUPABASE_URL>", SUPABASE_ANON_KEY = "<SUPABASE_ANON_KEY>" }
# codex mcp add self-hosted-supabase --env SUPABASE_URL='<SUPABASE_URL>' --env SUPABASE_ANON_KEY='<SUPABASE_ANON_KEY>' -- node dist/index.js --url '{{config.SUPABASE_URL}}' --anon-key '{{config.SUPABASE_ANON_KEY}}' --service-key '{{config.SUPABASE_SERVICE_ROLE_KEY}}' --db-url '{{config.DATABASE_URL}}' --jwt-secret '{{config.SUPABASE_AUTH_JWT_SECRET}}' --tools-config '{{config.TOOLS_CONFIG_PATH}}'~/.cursor/mcp.json
{
"mcpServers": {
"self-hosted-supabase": {
"command": "node",
"args": [
"dist/index.js",
"--url",
"{{config.SUPABASE_URL}}",
"--anon-key",
"{{config.SUPABASE_ANON_KEY}}",
"--service-key",
"{{config.SUPABASE_SERVICE_ROLE_KEY}}",
"--db-url",
"{{config.DATABASE_URL}}",
"--jwt-secret",
"{{config.SUPABASE_AUTH_JWT_SECRET}}",
"--tools-config",
"{{config.TOOLS_CONFIG_PATH}}"
],
"env": {
"SUPABASE_URL": "<SUPABASE_URL>",
"SUPABASE_ANON_KEY": "<SUPABASE_ANON_KEY>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"self-hosted-supabase": {
"type": "stdio",
"command": "node",
"args": [
"dist/index.js",
"--url",
"{{config.SUPABASE_URL}}",
"--anon-key",
"{{config.SUPABASE_ANON_KEY}}",
"--service-key",
"{{config.SUPABASE_SERVICE_ROLE_KEY}}",
"--db-url",
"{{config.DATABASE_URL}}",
"--jwt-secret",
"{{config.SUPABASE_AUTH_JWT_SECRET}}",
"--tools-config",
"{{config.TOOLS_CONFIG_PATH}}"
],
"env": {
"SUPABASE_URL": "<SUPABASE_URL>",
"SUPABASE_ANON_KEY": "<SUPABASE_ANON_KEY>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"self-hosted-supabase": {
"command": "node",
"args": [
"dist/index.js",
"--url",
"{{config.SUPABASE_URL}}",
"--anon-key",
"{{config.SUPABASE_ANON_KEY}}",
"--service-key",
"{{config.SUPABASE_SERVICE_ROLE_KEY}}",
"--db-url",
"{{config.DATABASE_URL}}",
"--jwt-secret",
"{{config.SUPABASE_AUTH_JWT_SECRET}}",
"--tools-config",
"{{config.TOOLS_CONFIG_PATH}}"
],
"env": {
"SUPABASE_URL": "<SUPABASE_URL>",
"SUPABASE_ANON_KEY": "<SUPABASE_ANON_KEY>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"self-hosted-supabase": {
"command": "node",
"args": [
"dist/index.js",
"--url",
"{{config.SUPABASE_URL}}",
"--anon-key",
"{{config.SUPABASE_ANON_KEY}}",
"--service-key",
"{{config.SUPABASE_SERVICE_ROLE_KEY}}",
"--db-url",
"{{config.DATABASE_URL}}",
"--jwt-secret",
"{{config.SUPABASE_AUTH_JWT_SECRET}}",
"--tools-config",
"{{config.TOOLS_CONFIG_PATH}}"
],
"env": {
"SUPABASE_URL": "<SUPABASE_URL>",
"SUPABASE_ANON_KEY": "<SUPABASE_ANON_KEY>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"self-hosted-supabase": {
"command": "node",
"args": [
"dist/index.js",
"--url",
"{{config.SUPABASE_URL}}",
"--anon-key",
"{{config.SUPABASE_ANON_KEY}}",
"--service-key",
"{{config.SUPABASE_SERVICE_ROLE_KEY}}",
"--db-url",
"{{config.DATABASE_URL}}",
"--jwt-secret",
"{{config.SUPABASE_AUTH_JWT_SECRET}}",
"--tools-config",
"{{config.TOOLS_CONFIG_PATH}}"
],
"env": {
"SUPABASE_URL": "<SUPABASE_URL>",
"SUPABASE_ANON_KEY": "<SUPABASE_ANON_KEY>"
}
}
}
}需要的环境变量
SUPABASE_URLSUPABASE_ANON_KEY
把占位值换成你自己的密钥;不要把密钥提交到代码仓库。