Firecrawl MCP 用 mcp-oauth 登录,密钥走 bearer 不要拼进 URL

交互主路径:codex mcp add firecrawl --url https://mcp.firecrawl.dev/v2/mcp-oauth,再 mcp login。无账号用 /v2/mcp;CI 才 bearer_token_env_var = FIRECRAWL_API_KEY。不要把密钥拼进 URL,也不要同时加两台 firecrawl。

Firecrawl 官方给 Codex 的交互主路径是托管 Streamable HTTP + 浏览器登录,不是本地 npx:

codex mcp add firecrawl --url https://mcp.firecrawl.dev/v2/mcp-oauth
codex mcp login firecrawl
[mcp_servers.firecrawl]
url = "https://mcp.firecrawl.dev/v2/mcp-oauth"
enabled = true

这条 URL 是客户端配置值,不要在浏览器里直接打开。Codex 会自己拉起登录,让你选团队并批准。进会话后用 /mcp 确认 firecrawl 已连接。改过已有连接时,先新开会话再试。

三种托管入口不要混:

  • https://mcp.firecrawl.dev/v2/mcp-oauth:有人在场时登录。新发的 OAuth token 只认这个 audience。
  • https://mcp.firecrawl.dev/v2/mcp:无账号 keyless,只有 Search / Scrape / Parse,按 IP 限流。
  • 同一条 /v2/mcp 再加 bearer_token_env_var:无人值守、要完整工具面时用 API key。

不要同时加两台名叫 firecrawl 的服务器。codex mcp add 同名会覆盖。也不要再开一台 firecrawl_oauth 之类的第二张表。/v2/mcp/v2/mcp-oauth 的 token 不能混用;audience 对不上或缺失会 fail closed。旧 token 若是发给 /v2/mcp 的,只继续在那条上用。

无账号先试:

codex mcp add firecrawl --url https://mcp.firecrawl.dev/v2/mcp

keyless 连上后应看到 firecrawl_searchfirecrawl_scrapefirecrawl_parse。要完整工具或更高限额,换成登录或 API key,不要叠第二台。

CI / 脚本不能开浏览器时,密钥走 bearer_token_env_var永远不要把 key 拼进 URL,也不要写进 http_headersenv 字面量:

[mcp_servers.firecrawl]
url = "https://mcp.firecrawl.dev/v2/mcp"
bearer_token_env_var = "FIRECRAWL_API_KEY"
enabled = true

键里是变量。变量必须在启动 Codex 的那个进程里,Codex 不读 .env。不要和已经 mcp login 的 OAuth 写在同一张表。OAuth 返回 401 先重新 codex mcp login firecrawl;对 OAuth 地址发一条未登录请求,401 是预期。API key 路径 401 时,先换启动 Codex 那个进程里的密钥,再新开会话。

只要本机进程或自建 Firecrawl API 才跑本地 stdio。官方要求 Node.js 22+。密钥用 env_vars 转发,不要抄旧页把 fc- 写进 env 表:

[mcp_servers.firecrawl]
command = "npx"
args = ["-y", "firecrawl-mcp"]
env_vars = ["FIRECRAWL_API_KEY"]
enabled = true

自建 API 再加 FIRECRAWL_API_URL。本地 HTTP 是 http://localhost:3000/mcp,那是给已经起好的进程用的,不是托管 /v2/mcp。Windows 上 spawn npx ENOENT 时,把 command 改成 where npx 看到的 npx.cmd 绝对路径。

文献检索技能是可选的:官方写 npx skills add firecrawl/skills@firecrawl-research-index。那是 Agent Skills 安装器,可能改所有检测到的客户端,不是 Codex /plugins 主路径。不确定就别装。

不要做这些:

  • 不要把 https://mcp.firecrawl.dev/v2/mcp-oauth 当网页打开。
  • 不要把 API key 拼进 URL 或 Authorization: Bearer 写进 http_headers
  • 不要抄 mcpServers JSON,也不要抄 Claude 的 --transport http
  • 不要套 mcp-remote
  • 不要给它 required = true 挂全局。
  • 不要一上来 --yolo。抓站结果会进上下文。

网页 Cloud 不读 ~/.codex/config.toml。改完新开会话。用 codex mcp get firecrawl 看传输是 streamable_http。会话里 /mcp 应显示已连接。

来源