﻿---
title: "Supabase MCP 用 mcp.supabase.com/mcp，查询参数写进 url"
summary: "CLI：codex mcp add supabase --url https://mcp.supabase.com/mcp，再 mcp login。官方查询 read_only=true、project_ref=abc123 写进 url。不要 PAT 当主路径，也不要抄 experimental_use_rmcp_client。"
category: mcp
level: intermediate
surfaces: [cli, app, ide]
tags: ["MCP", "Supabase", "OAuth", "HTTP"]
canonical: /tips/mcp-supabase-remote/
---

# Supabase MCP 用 mcp.supabase.com/mcp，查询参数写进 url

CLI：codex mcp add supabase --url https://mcp.supabase.com/mcp，再 mcp login。官方查询 read_only=true、project_ref=abc123 写进 url。不要 PAT 当主路径，也不要抄 experimental_use_rmcp_client。

Supabase **托管**的是远程 Streamable HTTP + OAuth（动态客户端登记）。官方 Codex 节：

```bash
codex mcp add supabase --url "https://mcp.supabase.com/mcp"
codex mcp login supabase
```

```toml
[mcp_servers.supabase]
url = "https://mcp.supabase.com/mcp"
enabled = true
```

这和 Datadog 不同：Datadog 在 Codex 里要用 `http_headers` 选工具集；Supabase 官方就是把查询参数写进 `url`。常用三个：

- `?read_only=true`：SQL 以只读 Postgres 用户跑
- `?project_ref=abc123`：限定到一个项目（官方表示例就是 `abc123`）。加上之后 **account** 类工具会关掉
- `?features=database,docs`：只开指定工具组。Storage 组**默认关**，要用再写进 `features`

可以组合：

```toml
[mcp_servers.supabase]
url = "https://mcp.supabase.com/mcp?project_ref=abc123&read_only=true"
enabled = true
```

本机 Supabase CLI 是另一台：`http://localhost:54321/mcp`，工具子集，**没有** OAuth。不要把托管 URL 抄到本地，也不要把本地地址拿去 `mcp login`。

日常不要 PAT。CI 不能开浏览器时才用个人访问令牌，走 `bearer_token_env_var`，变量必须在**启动 Codex 的那个进程**里。不要把 `Authorization: Bearer` 写进 `http_headers`：

```toml
[mcp_servers.supabase]
url = "https://mcp.supabase.com/mcp?project_ref=abc123&read_only=true"
bearer_token_env_var = "SUPABASE_ACCESS_TOKEN"
enabled = true
```

键里是变量**名**。不要和已经 `mcp login` 的 OAuth 写在同一张表。

不要做这些：

- 不要抄旧文的 `experimental_use_rmcp_client`，也不要抄 `[mcp] remote_mcp_client_enabled = true`。那是 Studio / 旧客户端旗标，不是 Codex 配置面；Supabase 自己已经从流程里删掉。
- 不要抄 Claude 的 `--transport http`，也不要抄 `mcpServers` JSON。
- 不要套 `mcp-remote`。
- 不要给它 `required = true` 挂全局。生产库带着写工具不是每条会话都要的依赖。
- 不要一上来 `--yolo`。SQL 结果和工单正文都可能带提示注入，保持工具批准。

网页 Cloud 不读 `~/.codex/config.toml`。改完新开会话。用 `codex mcp get supabase` 看传输是 streamable_http。会话里 `/mcp` 只是核对工具，不是唯一登录入口。

## 来源

- [Supabase · MCP Server](https://supabase.com/docs/guides/ai-tools/mcp)
- [OpenAI · Model Context Protocol](https://learn.chatgpt.com/docs/extend/mcp)
