Best MCP Servers for OpenAI Codex in 2026
Firecrawl, Bright Data, Zyte, and Crawlora compared as Codex CLI MCP servers: config.toml syntax, install commands, tool counts, and which fits which job.
Firecrawl's own Codex quickstart and a combined "Best MCP Servers for Claude Code and Codex" roundup both landed within the last two weeks, and OpenAI has supported MCP in Codex since early 2025 — but nobody's published a Codex-specific buyer's guide for web-data MCP servers with real config, not a repackaged Claude Code post. This one pulls every command from each vendor's own docs and Codex's own docs, checked directly in September 2026.
Codex's MCP config
Codex stores MCP server definitions in a TOML file at ~/.codex/config.toml (applies everywhere) or a project-scoped .codex/config.toml for trusted repos. Each server gets its own [mcp_servers.<name>] table.
You don't have to hand-edit the file: codex mcp add <name> --env VAR=VALUE -- <command> [args...] registers a stdio server from the command line, and codex mcp list or the in-session /mcp command confirms what's connected.
Codex supports two server shapes:
- Stdio (local process):
command,args, and an[mcp_servers.<name>.env]table — a child process Codex launches and talks to over stdin/stdout, the same shape asnpx-based servers everywhere else. - Streamable HTTP (remote):
url, plus one ofauth = "oauth"(browser sign-in flow),bearer_token_env_var(points at a host env var holding a static token), orhttp_headers(static key-value headers) for auth.codex mcp add <name> --url <url>registers these too.
What to evaluate, for Codex specifically
- OAuth vs static key: Firecrawl's Codex path is a hosted OAuth server, no key handling on your machine at all. Bright Data and Crawlora use a static token — an env var either way, but one you generate and rotate yourself.
- Process or no process: stdio servers spawn an npx child process per Codex session; Streamable HTTP servers are one config block and nothing running locally.
- Codex surfaces: config.toml is described as shared across the CLI and IDE extension, so a server you add once should show up in both — worth a quick /mcp check in whichever surface you actually use daily.
- Generic crawl-to-markdown versus structured platform data versus a code-generation plugin: Firecrawl and Bright Data return data directly through tool calls; Zyte's Codex add-on instead hands you a Scrapy project to run and maintain yourself.
- Tool count versus tool relevance: a 69-tool or 2,021-tool catalog is only useful if Codex's tool picker and your prompt actually reach for the right one — narrower, task-specific servers can be easier for an agent to use correctly.
The contenders
| Tool | Format | Coverage | Config | Best for |
|---|---|---|---|---|
| Firecrawl MCP | Remote MCP server, OAuth | Search/scrape/crawl/extract/interact on any URL | url-based, https://mcp.firecrawl.dev/v2/mcp-oauth, codex mcp login firecrawl for browser OAuth | Generic crawl-to-markdown with zero key management |
| Bright Data | Local MCP server (69 tools) | 40+ named platforms + proxy/anti-bot infra | command-based, npx -y @brightdata/mcp, API_TOKEN (+ PRO_MODE) in env | Anti-bot-hardened extraction at scale |
| Zyte | Codex plugin (not MCP) | Generates a deployable Scrapy project from a prompt | Zyte's own Codex add-on, installed separately from MCP | Teams that want a maintained scraper codebase, not live tool calls |
| Crawlora | Remote MCP server | 2,021 tools across 236 platform groups | url-based, https://mcp.crawlora.net/mcp, bearer_token_env_var pointing at your key | Structured JSON from named platforms, pay-on-success, nothing to run locally |
Firecrawl MCP: OAuth, no key to paste
Firecrawl's Codex quickstart skips the usual FIRECRAWL_API_KEY-in-env pattern entirely: codex mcp add firecrawl --url https://mcp.firecrawl.dev/v2/mcp-oauth followed by codex mcp login firecrawl opens a browser sign-in, you pick a team, and Codex is connected — no local process, no key to generate or store. A keyless mode also exists for search/scrape/parse without an account at all. Choose it when the job is "read this page or these docs into context" and you'd rather not manage a token.
Bright Data: the standard stdio path, 69 tools
Bright Data's Codex setup is the conventional command-based entry: codex mcp add brightdata --env API_TOKEN=YOUR_API_KEY -- npx -y @brightdata/mcp, or the equivalent hand-written [mcp_servers.brightdata] block with env = { API_TOKEN = "...", PRO_MODE = "true" }. Rapid mode (no PRO_MODE) exposes a couple of tools for free; Pro mode unlocks the full current set of 69 tools spanning search, structured extraction, and browser automation across 40+ named platforms. Choose it for a stubborn, anti-bot-protected target where reliability matters more than keeping the setup process-free.
Zyte: a Scrapy generator, not a tool-calling server
Worth stating plainly: Zyte's July 22, 2026 Codex add-on is not an MCP server you call at runtime. It's a plugin that takes a natural-language description of what to extract and hands back a complete, tested Scrapy project with page objects and spiders — the same workflow Zyte ships for Claude Code, just wired into Codex now. Choose it if what you actually want out of Codex is a maintainable scraper codebase to own, not live structured data back in the conversation.
Crawlora: one config block, no process, 236 platform groups
Crawlora's MCP server is a url-based Streamable HTTP entry — point Codex at https://mcp.crawlora.net/mcp with a static bearer token, and Codex has nothing extra to launch or babysit between sessions:
[mcp_servers.crawlora]
url = "https://mcp.crawlora.net/mcp"
bearer_token_env_var = "CRAWLORA_API_KEY"
export CRAWLORA_API_KEY="your_key_here"
The current catalog covers 2,021 MCP tools across 236 platform groups — search, maps, e-commerce, social, finance, travel, jobs, media, app stores, and reviews — returning normalized JSON and billed only on success, with 2,000 free credits a month and no card. Choose it when Codex needs a number or a record from a named platform (a price, a ranking, a listing, a filing) rather than a page to read or a spider to maintain.
How to choose, by job
- Pulling a page or a doc into context with zero key setup → Firecrawl MCP's OAuth path.
- Extracting from a stubborn, named site at real volume → Bright Data, local process and all.
- Pulling a price, ranking, listing, or filing from a known platform as clean JSON → Crawlora MCP.
- Owning a Scrapy codebase instead of calling tools live → Zyte's Codex add-on, not an MCP server at all.
- Working across the Codex CLI and IDE extension →
config.tomlis shared, but verify with/mcpin whichever surface you use, since Codex hasn't published surface-specific caveats.
Add structured web data to Codex
2,021 MCP tools across 236 platform groups, one API key, billed only on success. 2,000 free credits a month, no card.
Sources
Related reading
- Best Web Scraping MCP Servers & Skills for Claude Code in 2026: the same three-plus-one comparison, Claude Code's config shape.
- Best MCP Servers for Warp in 2026: another terminal-first agent, same vendors.
- Best MCP Servers for Gemini CLI in 2026.
- Crawlora vs Firecrawl · Crawlora vs Bright Data · Crawlora vs Zyte.
- Give your AI agent live web data with MCP.
Frequently asked questions
What's the best MCP server for web scraping with Codex?
It depends on the job. Firecrawl's Codex quickstart connects over hosted OAuth with no API key to manage — good for reading arbitrary pages or docs. Bright Data is built for anti-bot-hardened extraction across 40+ named platforms via a standard stdio server. Zyte's Codex add-on isn't a tool-calling MCP server at all — it generates a complete Scrapy project from a prompt. Crawlora fits when you want structured JSON from named platforms without maintaining a parser, billed only on success.
Where does Codex read its MCP server config from?
A TOML file at ~/.codex/config.toml (global) or a project-scoped .codex/config.toml, with each server under its own [mcp_servers.<name>] table. codex mcp add <name> registers a server from the command line, and codex mcp list or the in-session /mcp command confirms what's connected.
How do I install Firecrawl's MCP server for Codex?
Run codex mcp add firecrawl --url https://mcp.firecrawl.dev/v2/mcp-oauth followed by codex mcp login firecrawl, which opens a browser OAuth flow — no API key to generate or paste. A keyless mode also covers search/scrape/parse without an account.
Does Zyte work with Codex?
Yes, but not as an MCP server. Zyte's July 2026 Codex add-on is a plugin that turns a natural-language extraction request into a complete, tested Scrapy project rather than returning data through live tool calls.
How do I install Crawlora's MCP server for Codex?
Add a [mcp_servers.crawlora] table to ~/.codex/config.toml with url = "https://mcp.crawlora.net/mcp" and bearer_token_env_var = "CRAWLORA_API_KEY", then export that env var with a free API key from crawlora.net (2,000 credits/month, no card).
