Best MCP Servers for OpenCode in 2026
Firecrawl, Bright Data, and Crawlora compared as OpenCode MCP servers — opencode.json syntax, tool counts, and which fits which job (Zyte isn't here yet).
OpenCode passed Codex CLI and Gemini CLI in GitHub stars a while ago and is still growing the fastest of the free, open-source coding agents — but nobody's published a head-to-head comparison of web-data MCP servers for it. Firecrawl and Bright Data each have their own OpenCode quickstart; this one puts them side by side, sourced from OpenCode's own docs and each vendor's own guide, not paraphrased from a listicle.
One naming note worth clearing up first: this is OpenCode from opencode.ai (the SST-built agent, 200K+ stars), not Crush, an unrelated project that used the name "opencode" earlier and still gets confused with it in search results. If a config or guide mentions Crush, it's a different tool.
OpenCode's MCP config
OpenCode reads MCP server definitions from opencode.json (or .jsonc, both parse the same) — either globally at ~/.config/opencode/opencode.json, or per-project at the repo root, which takes precedence when both define the same server name. Entries live under a mcp key, keyed by server name, and most examples include a $schema line pointing at https://opencode.ai/config.json for editor autocomplete.
Two server shapes:
- Local:
{ "type": "local", "command": ["npx", "-y", "..."], "environment": {...}, "cwd": "...", "enabled": true, "timeout": 5000 }— OpenCode launches it as a child process. - Remote:
{ "type": "remote", "url": "...", "headers": {...}, "oauth": {...}, "enabled": true }— points at a hosted endpoint. OpenCode auto-detects a 401 response and drives the OAuth flow itself (Dynamic Client Registration, RFC 7591) if the server needs it, so most remote servers need no extra config beyond the URL.
What to evaluate, in OpenCode specifically
- Local versus remote: a type: "local" entry starts an npx process per OpenCode session; a type: "remote" entry is one URL and nothing running locally. OpenCode's own docs warn that MCP servers add to context — a tool-heavy server can burn tokens fast, so check tool count against what the session actually needs.
- Keyless versus keyed: Firecrawl's hosted endpoint works with no API key (rate-limited, 3 tools); the full tool set and higher limits need a key. Decide whether zero-setup or the full surface matters more for the session.
- Generic crawl (any URL → markdown) versus structured platform data (named sites → JSON). A coding-agent session tends to want both: read a docs page, then look up a fact on a known site.
- Tool count against OpenCode's context budget: 60+ tools that mostly need a browser, or thousands mapped one-to-one onto documented REST endpoints? More tools in context isn't automatically better once you factor in OpenCode's own token-budget warning.
- Billing on failure: a blocked or rate-limited fetch inside an agent loop retries. Whether each failed attempt is billed changes the cost of a long session.
The contenders
| Tool | Format | Coverage | Config | Best for |
|---|---|---|---|---|
| Firecrawl MCP | Remote MCP server (hosted, keyless) | Search/scrape/parse any URL, 3 tools by default | type: "remote", https://mcp.firecrawl.dev/v2/mcp per Firecrawl's own OpenCode quickstart | Zero-setup, try-before-you-key |
| Bright Data | Local MCP server (60+ tools) | 40+ named platforms + proxy/anti-bot infra | type: "local", npx @brightdata/mcp, API_TOKEN (+ PRO_MODE: "true" for the full set) in environment | Anti-bot-hardened extraction at scale |
| Zyte | — | — | No official OpenCode integration | Not currently an option here |
| Crawlora | Remote MCP server | 2,021 tools across 236 platform groups | type: "remote", https://mcp.crawlora.net/mcp, API key under headers.Authorization | Structured JSON from named platforms, pay-on-success |
Firecrawl MCP: hosted, keyless, and OpenCode-documented by name
Firecrawl publishes a dedicated OpenCode quickstart at docs.firecrawl.dev/quickstarts/opencode. The config is about as short as this series gets:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"firecrawl": {
"type": "remote",
"url": "https://mcp.firecrawl.dev/v2/mcp",
"enabled": true
}
}
}
Restart OpenCode, run /mcp, and firecrawl_search, firecrawl_scrape, and firecrawl_parse show up with no API key at all — rate-limited and shared with everyone on your public IP, but genuinely zero-setup. An API key (or OAuth sign-in) unlocks the broader tool surface, including crawl. Choose it when the job is "read this page or repo into context" and you want to try it before creating an account.
Bright Data: a local process, and PRO_MODE for the full 60+ tools
Bright Data publishes its own OpenCode tutorial, using a type: "local" entry instead of a hosted URL:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"brightData": {
"type": "local",
"enabled": true,
"command": ["npx", "-y", "@brightdata/mcp"],
"environment": {
"API_TOKEN": "<YOUR_BRIGHT_DATA_API_KEY>",
"PRO_MODE": "true"
}
}
}
}
Without PRO_MODE, the free tier exposes exactly two tools (scrape_as_markdown, search_engine); flipping it to "true" opens up the rest of the catalog — LinkedIn, Amazon, Yahoo Finance, TikTok, and dozens more named targets, plus proxy and browser-automation infrastructure — at Pro-mode pricing, not the free tier. Choose it when the target is a hard, named site and anti-bot reliability at scale is the actual constraint, and running a local npx process is fine.
Zyte: not currently available for OpenCode
Worth stating plainly rather than skipping: Zyte's two Claude-adjacent products (the Claude Code plugin and the GitHub-Copilot-specific Web Scraping Copilot VS Code extension) are each locked to one client, and neither connects to OpenCode. Third-party MCP wrappers around Zyte's API circulate in a few directories, but that's not a Zyte-published integration. If your stack is OpenCode-first, Zyte is not in the running here.
Crawlora: one URL, no process, 236 platform groups
Crawlora's MCP server uses the same type: "remote" shape as Firecrawl's default, at the full tool count with no keyless tier to outgrow:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"crawlora": {
"type": "remote",
"url": "https://mcp.crawlora.net/mcp",
"enabled": true,
"headers": { "Authorization": "Bearer YOUR_CRAWLORA_API_KEY" }
}
}
}
No npx process to install or keep alive. 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, billed only on success, 2,000 free credits a month, no card. Choose it when OpenCode needs a record from a named platform (a price, a ranking, a listing, a filing) rather than a page to read.
How to choose, by job
- Want to read a page or repo into context before you've even created an account? Firecrawl MCP's keyless default.
- Need reliable data off a hard, named site, at real volume? Flip on Bright Data's
PRO_MODE. - Need a normalized JSON record — a price, a ranking, a filing — from a named platform with zero local processes? Crawlora MCP is built for exactly that.
- Want Zyte's Scrapy-generation workflow specifically? That still means Claude Code or GitHub Copilot; OpenCode isn't an option for it yet.
- Running tight on session context? Lean toward a narrow, keyless tool set over a 60+-tool server you don't fully need — OpenCode's own docs call out MCP tool count as a real token cost.
Add structured web data to OpenCode
2,021 tools across 236 platform groups, one API key, billed only on success. 2,000 free credits a month, no card.
Sources
Related reading
- Best MCP Servers for OpenAI Codex in 2026 · Best MCP Servers for Hermes Agent in 2026 · Best MCP Servers for OpenClaw in 2026 — the same comparison, three more clients.
- Best Web Scraping MCP Servers & Skills for Claude Code in 2026 — the same four vendors, Claude Code's config shape.
- Crawlora vs Firecrawl · Crawlora vs Bright Data · Crawlora vs Zyte.
- Give your AI agent live web data with MCP — how MCP works and how to connect in three minutes.
Frequently asked questions
What's the best MCP server for web scraping with OpenCode?
It depends on the job. Firecrawl's hosted, keyless OpenCode quickstart fits reading arbitrary pages with zero setup. Bright Data is built for anti-bot-hardened extraction across 40+ named platforms and publishes its own OpenCode tutorial, at the cost of running a local npx process. Crawlora fits when you want structured JSON from named platforms without maintaining a parser, billed only on success. Zyte does not currently offer an OpenCode integration.
Where does OpenCode read its MCP server config from?
A JSON (or JSONC) file at ~/.config/opencode/opencode.json (global) or opencode.json at the project root (project-scoped, takes precedence on a name conflict), under a mcp key. Entries use type: "local" (a command array OpenCode runs as a child process) or type: "remote" (a url, with optional headers and automatic OAuth handling).
Is OpenCode the same thing as Crush?
No. OpenCode (opencode.ai, 200K+ GitHub stars) is a different, unrelated project from Crush, which used the name "opencode" earlier — the two are frequently confused in search results and some third-party guides.
Does Zyte work with OpenCode?
Not officially. Zyte's Claude Code plugin and its GitHub-Copilot-specific Web Scraping Copilot extension are each locked to one client, and neither connects to OpenCode.
How do I install Crawlora's MCP server for OpenCode?
Add a type: "remote" entry to opencode.json pointing at https://mcp.crawlora.net/mcp, with the API key under headers.Authorization (Bearer <key>). No local process to install or run. Free tier is 2,000 credits/month, no card.
