Exa 在 Codex 里先装插件,手工 MCP 才是 mcp.exa.ai/mcp
ChatGPT / Codex 推荐路径是 chatgpt.com/plugins/exa,插件自带 MCP 和技能。本机手工:codex mcp add exa --url https://mcp.exa.ai/mcp。密钥用 env_http_headers 的 x-api-key,不要抄 mcp-remote,也不要把 key 写进 URL。
Exa 官方给 ChatGPT 和 Codex 的推荐路径是插件,不是先手写 MCP。打开 chatgpt.com/plugins/exa,点安装,按提示登录 Exa。技能只进安装之后新开的会话,旧线程不会自动加载。插件已经带上托管 MCP 以及 search / exa-agent 技能,不必再单独加一次。
本机 CLI、或你就是要自己管 config.toml 时,才手工接托管 Streamable HTTP:
codex mcp add exa --url https://mcp.exa.ai/mcp
[mcp_servers.exa]
url = "https://mcp.exa.ai/mcp"
enabled = true
默认工具是 web_search_exa 和 web_fetch_exa:自然语言搜索会带回页面内容,也可以按 URL 读文档 / changelog / issue。只要部分工具时,把名单写进 url 的 tools 查询,不要另开第二台:
[mcp_servers.exa]
url = "https://mcp.exa.ai/mcp?tools=web_search_exa,web_fetch_exa"
enabled = true
多步调研、名单、结构化输出才开 agent_run。那条按用量计费,必须登录或带自己的 API key。长任务大约 750 秒窗口内没跑完时,工具会回 status: running 和 id,再用同一个 runId 接着等,不要当成失败重开一条。
免费档够随便搜。生产或要抬限额时,官方 JSON 示例把 x-api-key 写成字面量,不要抄进 Codex。Codex 用 env_http_headers,左边是头名,右边是启动 Codex 那个进程里的变量名:
[mcp_servers.exa]
url = "https://mcp.exa.ai/mcp"
enabled = true
[mcp_servers.exa.env_http_headers]
x-api-key = "EXA_API_KEY"
不要把密钥拼进 URL,不要写进 http_headers。Bearer 表 bearer_token_env_var 对这台不对口,Exa 要的是 x-api-key。变量缺失时这颗头会被静默丢掉,请求仍会发出去,随后限流或 401。Codex 不读 .env。
不要做这些:
- 不要套
mcp-remote。Codex 自己会连 Streamable HTTP。 - 不要抄 Claude 的
claude plugin install exa@claude-plugins-official或--transport http。 - 不要抄
mcpServersJSON 当 Codex 主路径。 - 不要把
EXA_API_KEY写进env表或args。 - 不要给它
required = true挂全局。 - 不要一上来
--yolo。网页正文会进上下文。
网页 Cloud 不读 ~/.codex/config.toml。改完新开会话。用 codex mcp get exa 看传输是 streamable_http。插件不生效时先确认装完后开了新会话。