Phase 2 · MCP 与工具生态

模型上下文协议 | ChatGPT 学习

OpenAI·2026/7/21·7 阅读

模型上下文协议 | ChatGPT 学习

来源: https://developers.openai.com/codex/mcp 抓取时间: 2026-07-21 16:19:09


模型上下文协议(MCP)将模型连接到工具和上下文。使用它可以让 ChatGPT 或 Codex 访问第三方文档,或者让它与开发者工具(如浏览器或 Figma)交互。 ChatGPT Web 可以使用插件提供的远程 MCP 工具。本地 Codex 客户端也可以直接连接到 MCP 服务器并共享它们的配置。 ChatGPT 桌面应用、Codex CLI 和 IDE 扩展支持 MCP 服务器,并为同一个 Codex 主机共享 MCP 配置。 下面支持的服务器功能适用于在 Codex 主机上配置的 MCP 服务器。托管插件工具可以有不同的功能。

支持的 MCP 功能

  • STDIO 服务器:作为本地进程运行的服务器(由命令启动)。
    • 环境变量
  • 可流式 HTTP 服务器:您在某个地址访问的服务器。
    • Bearer token 认证
    • OAuth 认证
    • 受信任的第一方服务器的 ChatGPT 会话认证
  • 服务器指令:Codex 读取初始化期间返回的 MCP instructions 字段,并将其与服务器的工具一起用作服务器范围的指导。

如果您为 Codex 构建或维护 MCP 服务器,请使用 instructions 来处理适用于整个服务器的跨工具工作流、约束和速率限制。保持前 512 个字符自包含,以便当 Codex 决定如何使用服务器时,最重要的指导是可用的。

将 Codex 连接到 MCP 服务器

Codex 将 MCP 配置存储在 config.toml 中,与其他 Codex 配置设置一起。默认情况下这是 ~/.codex/config.toml,但您也可以使用 .codex/config.toml 将 MCP 服务器限定到项目(仅限受信任的项目)。 ChatGPT 桌面应用、Codex CLI 和 IDE 扩展共享此配置。配置好 MCP 服务器后,您可以在这些客户端之间切换而无需重新设置。

在 ChatGPT 桌面应用中配置

  1. 打开 设置,然后选择 MCP 服务器
  2. 选择 添加服务器
  3. 输入名称,选择 STDIO可流式 HTTP,并提供服务器的命令或 URL。
  4. 保存服务器,然后选择 重新启动

服务器列表显示哪些服务器已启用,哪些需要 OAuth。当 OAuth 服务器需要登录时选择 认证。在编辑器中,键入 /mcp 以查看连接的服务器。

在 ChatGPT Web 中使用 MCP 工具

在工作模式下的托管聊天中,安装 插件 以使用其捆绑的连接器和远程 MCP 工具。工作区管理员可以控制哪些插件和工具可用。 ChatGPT Web 不会读取本地 Codex 配置文件或暴露本地 Codex 命令菜单。在 ChatGPT 的工作模式中通过 插件 浏览和管理可用工具。

使用 CLI 配置

添加 MCP 服务器

codex mcp add <server-name> --env VAR1=VALUE1 --env VAR2=VALUE2 -- <stdio server-command>

例如,要添加 Context7(一个免费的开发者文档 MCP 服务器),您可以运行以下命令:

codex mcp add context7 -- npx -y @upstash/context7-mcp

其他 CLI 命令

运行 codex mcp list 以查看已配置的服务器。要查看所有可用的 MCP 命令,请运行 codex mcp --help。对于支持 OAuth 的服务器,运行 codex mcp login <server-name>

终端 UI (TUI)

codex TUI 中,使用 /mcp 查看您的活动 MCP 服务器。

在 IDE 扩展中配置

  1. 打开齿轮菜单,然后选择 MCP 服务器
  2. 选择 添加服务器
  3. 输入名称,选择 STDIO可流式 HTTP,并提供服务器的命令或 URL。
  4. 保存服务器,然后选择 重新启动扩展

MCP 服务器列表显示哪些服务器已启用,哪些需要 OAuth。当 OAuth 服务器需要登录时选择 认证

使用 config.toml 配置

要获得更细粒度的控制,请编辑 ~/.codex/config.toml 或项目范围的 .codex/config.toml。请参阅 配置参考 以获取每个支持的 MCP 选项的可搜索列表。 使用配置文件中的 [mcp_servers.<server-name>] 表配置每个 MCP 服务器。

STDIO 服务器

  • command(必需):启动服务器的命令。
  • args(可选):传递给服务器的参数。
  • env(可选):为服务器设置的环境变量。
  • env_vars(可选):允许和转发的环境变量。
  • cwd(可选):启动服务器的工作目录。
  • experimental_environment(可选):设置为 remote 以在可用时通过远程执行器环境启动 stdio 服务器。

env_vars 可以包含纯变量名或带源的对象:

env_vars = ["LOCAL_TOKEN", { name = "REMOTE_TOKEN", source = "remote" }]

字符串条目和 source = "local" 从 Codex 的本地环境读取。source = "remote" 从远程执行器环境读取,并且需要远程 MCP stdio。

可流式 HTTP 服务器

  • url(必需):服务器地址。
  • auth(可选):在配置的 bearer token 和授权标头之后尝试的认证。使用 oauth(默认)用于存储的 MCP OAuth 凭证。使用 chatgpt 将当前 ChatGPT 会话用于受信任的第一方 ChatGPT 源,存储的 OAuth 作为后备。
  • bearer_token_env_var(可选):要在 Authorization 中发送的 bearer token 的环境变量名称。
  • http_headers(可选):标头名称到静态值的映射。
  • env_http_headers(可选):标头名称到环境变量名称的映射(值从环境中获取)。

如果没有凭证源解析,Codex 可以在不认证的情况下连接到服务器。单独运行 codex mcp login <server-name> 以启动 MCP OAuth 登录。

其他配置选项

  • startup_timeout_sec(可选):服务器启动的超时时间(秒)。默认值:10
  • tool_timeout_sec(可选):服务器运行工具的超时时间(秒)。默认值:60
  • enabled(可选):设置为 false 以在不删除服务器的情况下禁用它。
  • required(可选):设置为 true 以在该启用的服务器无法初始化时使启动失败。
  • enabled_tools(可选):工具允许列表。
  • disabled_tools(可选):工具拒绝列表(在 enabled_tools 之后应用)。
  • default_tools_approval_mode(可选):此服务器工具的默认审批行为。支持的值是 autopromptwritesapprovewrites 模式对未标记为只读的工具进行提示。
  • tools.<tool>.approval_mode(可选):每个工具的审批行为覆盖。

如果您的 OAuth 提供商需要固定回调端口,请在 config.toml 中设置顶级 mcp_oauth_callback_port。如果未设置,Codex 绑定到临时端口。 如果您的 MCP OAuth 流程必须使用特定的回调 URL(例如,远程 Devbox 入口 URL 或自定义回调路径),请设置 mcp_oauth_callback_url。Codex 使用此值作为基础回调 URL,然后附加服务器特定的回调 ID 以生成它在登录期间发送的 OAuth redirect_uri。向您的 OAuth 提供商注册完整的派生 redirect_uri,包括附加的回调 ID 和任何配置的路径、查询或端口,而不是仅注册没有该后缀的基础主机或路径。本地回调 URL(例如 localhost)绑定在本地接口上;非本地回调 URL 绑定在 0.0.0.0 上,以便回调可以到达主机。 如果 MCP 服务器宣称 scopes_supported,Codex 在 OAuth 登录期间更喜欢那些服务器宣称的范围。否则,Codex 回退到 config.toml 中配置的范围。

config.toml 示例

[mcp_servers.context7]
command = "npx"
args = ["-y", "@upstash/context7-mcp"]
env_vars = ["LOCAL_TOKEN"]

[mcp_servers.context7.env]
MY_ENV_VAR = "MY_ENV_VALUE"

# 可选的 MCP OAuth 回调覆盖(由 `codex mcp login` 使用)
mcp_oauth_callback_port = 5555
mcp_oauth_callback_url = "https://devbox.example.internal/callback"

[mcp_servers.figma]
url = "https://mcp.figma.com/mcp"
bearer_token_env_var = "FIGMA_OAUTH_TOKEN"
http_headers = { "X-Figma-Region" = "us-east-1" }

[mcp_servers.chrome_devtools]
url = "http://localhost:3000/mcp"
enabled_tools = ["open", "screenshot"]
disabled_tools = ["screenshot"] # 在 enabled_tools 之后应用
default_tools_approval_mode = "prompt"
startup_timeout_sec = 20
tool_timeout_sec = 45
enabled = true

[mcp_servers.chrome_devtools.tools.open]
approval_mode = "approve"

插件提供的 MCP 服务器

已安装的插件可以在其插件清单中捆绑 MCP 服务器。这些服务器从插件启动,因此用户配置不设置它们的传输命令。用户配置仍然可以在 plugins.<plugin>.mcp_servers.<server> 下控制开启/关闭状态和工具策略。

[plugins."sample@test".mcp_servers.sample]
enabled = true
default_tools_approval_mode = "prompt"
enabled_tools = ["read", "search"]

[plugins."sample@test".mcp_servers.sample.tools.search]
approval_mode = "approve"

有用的 MCP 服务器示例

MCP 服务器列表不断增长。以下是一些常见的:

评论 (0)

暂无评论,快来抢沙发吧!

91学AI

© 2026 91学AI · 按岗位学 AI 与大数据. All rights reserved.