Code Agent 联网搜索接入大合集

makoMakoGo 于 2026-05-11 发布

0. 先把“联网搜索”拆开

给 code agent 接搜索时,最容易混在一起的其实是四类东西:

类型解决的问题典型工具
通用 Web Search找实时网页、新闻、价格、issue、论坛讨论Brave、Serper、Bocha、Metaso、Kagi、SearXNG
Agent Search / Answer直接返回带来源的综合答案Perplexity Sonar、Tavily、Exa Answer、Anthropic / OpenAI / Gemini 内置搜索
Web Fetch / Reader已有 URL,抽正文、转 Markdown、去噪Jina Reader、Firecrawl、Tavily Extract、Exa Fetch
Library Docs查库、框架、SDK、CLI 的版本化文档Context7、Exa code/doc search、官方 docs MCP

这四类不要硬压成一个“搜索工具”。

真正稳定的配置通常不是“只装一个最强搜索”,而是:

库文档:Context7 / 官方 docs MCP
通用网页:1~2 个 Web Search provider
网页正文:1 个 Reader / Fetch provider
中文搜索:按需补中文源
内置搜索:能用就作为最后兜底或特定模型的原生能力

1. Agent 里的接入方式

1.1 原生内置工具

有些 CLI / API 自带搜索工具。

平台形态备注
Claude API / Claude CodeAnthropic web search toolAPI 文档里的 web_search_20250305 / web_search_20260209;新版支持 dynamic filtering,但依赖模型与平台支持。
OpenAI Responses / Codexweb_search toolCodex 和 Responses 路线里常见,具体可用性取决于账号、模型和宿主 CLI。
Gemini CLIgoogle_web_search + web_fetchGemini CLI 文档把 search 与 fetch 分开讲,适合实时检索和 URL 深读。
Kimi CodeSearchWeb / FetchURL配置 services.moonshot_search 后出现 SearchWeb,配置 moonshot_fetch 后 FetchURL 优先走该服务。
Oh My Pi统一 web_search 工具OMP 下面挂一组 provider:Tavily、Perplexity、Brave、Jina、Kimi、Anthropic、Gemini、Codex、Z.AI、Exa、Kagi、SearXNG 等。

内置工具的优点是调用体验好,模型知道怎么用;缺点是可控性和成本边界不一定透明。尤其是官方内置搜索,经常和账号类型、模型、区域、组织开关绑定。

1.2 MCP Server

MCP 是现在最通用的接入层。Claude Code、Cursor、Windsurf、VS Code、Codex、OpenCode、Gemini CLI 等都在不同程度支持 MCP。

MCP 的好处是:

MCP 的问题是:

1.3 Skill / CLI Wrapper

第三种方式是把搜索封成 skill 或 CLI wrapper。比如 Grok Search skill 这类方案,不是把搜索服务注册成 MCP,而是在 skill 里规定命令入口:

python scripts/groksearch_entry.py web_search --query "..."
python scripts/groksearch_entry.py web_fetch --url "..."

这种方式的优点是:

缺点是:

2. 通用 Web Search 服务

Brave Search API 是比较正统的 Web Search API。官方有 MCP server:@brave/brave-search-mcp-server

官方 MCP server 支持:

Brave MCP 2.x 默认走 stdio,并支持用 BRAVE_MCP_ENABLED_TOOLS 做工具白名单。

{
  "mcpServers": {
    "brave-search": {
      "command": "npx",
      "args": [
        "-y",
        "@brave/brave-search-mcp-server",
        "--transport",
        "stdio"
      ],
      "env": {
        "BRAVE_API_KEY": "YOUR_BRAVE_API_KEY",
        "BRAVE_MCP_ENABLED_TOOLS": "brave_web_search"
      }
    }
  }
}

Brave 适合做英文通用网页搜索。它的 MCP 工具面很宽,如果只是给 code agent 做网页搜索,建议先只开 brave_web_search

2.2 Serper

Serper 是 Google SERP API,首页明确写了 “Get 2,500 free queries” 和 “No credit card required”。它返回结构化 Google 搜索结果,适合需要普通 SERP JSON 的场景。

社区 MCP:serper-search-mcp

{
  "mcpServers": {
    "serper-search": {
      "command": "npx",
      "args": ["-y", "serper-search-mcp"],
      "env": {
        "SERPER_API_KEY": "YOUR_SERPER_API_KEY"
      }
    }
  }
}

这个 MCP server 会暴露多种工具:

Serper 的定位很直接:Google 搜索结果 API。它不负责网页正文提取,也不是文档专用索引。

2.3 Exa

Exa 更像“给 agent 用的神经搜索 / 内容检索 API”。它有 hosted MCP,也有 npm server:exa-mcp-server

Hosted MCP:

{
  "mcpServers": {
    "exa": {
      "url": "https://mcp.exa.ai/mcp"
    }
  }
}

npm server:

{
  "mcpServers": {
    "exa-search": {
      "command": "npx",
      "args": ["-y", "exa-mcp-server", "--tools=web_search_exa"],
      "env": {
        "EXA_API_KEY": "YOUR_EXA_API_KEY"
      }
    }
  }
}

Exa MCP 默认工具包括:

可选工具里还有 advanced search。官方 pricing 页显示:Search 是 $7/1k requests,Contents 是 $1/1k pages per content type,Answer 是 $5/1k requests。Exa 还提供 hosted MCP free plan,但官方文档没有把具体 hosted MCP 限流阈值公开写死;命中限制时会返回 429

Exa 适合:

2.4 Tavily

Tavily 是明确面向 AI Agent 的 search / extract / map / crawl 服务。

官方文档写得比较清楚:

Tavily MCP 支持 remote MCP 和本地 npm server。

Remote MCP:

https://mcp.tavily.com/mcp/?tavilyApiKey=<your-api-key>

Claude Code 也可以走 OAuth:

claude mcp add tavily-remote-mcp --transport http https://mcp.tavily.com/mcp/

本地 server:

{
  "mcpServers": {
    "tavily": {
      "command": "npx",
      "args": ["-y", "tavily-mcp"],
      "env": {
        "TAVILY_API_KEY": "YOUR_TAVILY_API_KEY"
      }
    }
  }
}

Tavily 适合 agent research:搜索、提取、map、crawl 是一套能力,不只是 SERP。

2.5 Kagi

Kagi Search API 是高质量付费搜索。官方文档写明 Search API 还处于 closed beta,需要申请;价格是 $25 / 1000 queries

它适合重视搜索质量和隐私的场景,不适合作为“随手免费 fallback”。如果已经是 Kagi 用户,并且愿意付费,可以考虑接入;否则优先级不高。

2.6 SearXNG

SearXNG 是自托管 metasearch。它支持简单 HTTP Search API:GET /search?q=...&format=json

关键注意点:

SearXNG 适合想要 self-hosted、可控、不依赖单一商业 API 的人,但它不是“免费无限搜索”。如果拿公共实例硬塞给 agent 高频调用,很容易不稳定。

3. 中文搜索服务

3.1 博查 Bocha

博查的定位很明确:给 AI 用的中文/全网搜索引擎。开放平台 overview 页写了“免费领取1000次调用资源包”;pricing 页写了 “Absolutely Free”、“No upfront cost. No hidden costs. 100% free to use.”,但具体商业计费规则仍应以登录后的开放平台为准。

官方 MCP:BochaAI/bocha-search-mcp

Bocha MCP 提供:

官方 README 里写到,Bocha Web Search 返回网页标题、URL、摘要、网站名、图标、发布时间、图片链接等;Bocha AI Search 会额外返回天气、日历、百科、医疗、股票等结构化模态卡。

配置示例:

{
  "mcpServers": {
    "bocha-search-mcp": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/bocha-search-mcp",
        "run",
        "bocha-search-mcp"
      ],
      "env": {
        "BOCHA_API_KEY": "YOUR_BOCHA_API_KEY"
      }
    }
  }
}

如果主要查中文新闻、百科、实时信息、国内网页,Bocha 是值得试的中文搜索候选。

3.2 秘塔 Metaso

秘塔 Search API playground 显示它提供:

公开页面没有稳定展示完整价格表。第三方资讯 AIBase 报道称秘塔搜索 API 定价为每次查询 0.03 元人民币,并支持网页、图片、视频、文库等多模态搜索。

秘塔适合中文搜索和问答,但免费额度不如 Bocha / Tavily / Serper 这类页面写得清楚。

3.3 腾讯 WebSearchMCP

Tencent/WebSearchMCP 是腾讯云联网搜索 API 的 MCP 封装。README 写明底层来自腾讯云联网搜索 API,搜索引擎来源于搜狗搜索,特点包括:

它适合腾讯云账号体系内的中文搜索接入。缺点是免费额度和开通门槛需要看腾讯云产品页,不如单独 API 服务直观。

4. Reader / Fetch / Scrape 类服务

Search 只负责“找到 URL”,但 code agent 经常真正需要的是“把页面正文读进来”。这时 Reader / Fetch / Scrape 比搜索本身更关键。

4.1 Jina Reader / Jina MCP

Jina Reader 的核心是:

https://r.jina.ai/http://example.com
https://s.jina.ai/your search query

Reader 页写明:

官方 Jina MCP 提供很多工具,包括:

Jina MCP 支持 server-side tool filtering,例如:

{
  "mcpServers": {
    "jina-mcp-server": {
      "url": "https://mcp.jina.ai/v1?include_tags=search,read",
      "headers": {
        "Authorization": "Bearer ${JINA_API_KEY}"
      }
    }
  }
}

Jina 的优势是网页读取、批量读取、学术搜索和 rerank 能放在一套 MCP 里。缺点是工具很多,不过滤会占上下文。

4.2 Firecrawl

Firecrawl 是 Web data API:Search、Scrape、Crawl、Map、Interact 都在一套里。官方 MCP 支持 remote hosted URL,也支持本地 npx -y firecrawl-mcp

Remote MCP:

https://mcp.firecrawl.dev/{FIRECRAWL_API_KEY}/v2/mcp

Claude Code:

claude mcp add firecrawl --url https://mcp.firecrawl.dev/your-api-key/v2/mcp

claude mcp add firecrawl -e FIRECRAWL_API_KEY=your-api-key -- npx -y firecrawl-mcp

Firecrawl pricing 页写明:

Firecrawl 适合网页抓取、动态页面、爬站、结构化抽取,不只是搜索。把它接给 code agent 时,最好想清楚是否真的需要 crawl / interact;否则工具面会偏重。

4.3 Tavily Extract / Map / Crawl

Tavily 也能做 Reader 类工作。Search、Extract、Map、Crawl 都有清楚的 credit 规则。相比 Firecrawl,Tavily 更偏 research workflow;Firecrawl 更偏网页抓取和动态页面处理。

5.1 Context7

Context7 不是普通搜索服务,而是“当前库文档检索”。它的目标是减少模型用过期训练数据瞎写 API。

Context7 MCP 工具很简单:

它适合:

它不适合替代新闻搜索、网页搜索、论坛搜索。

配置示例:

claude mcp add --scope user context7 -- npx -y @upstash/context7-mcp --api-key YOUR_API_KEY

或者远程 MCP:

claude mcp add --scope user \
  --header "CONTEXT7_API_KEY: YOUR_API_KEY" \
  --transport http \
  context7 https://mcp.context7.com/mcp

5.2 Exa 的代码 / 文档检索

Exa 官方 MCP 文档把 web_search_exaweb_fetch_exa 作为默认工具,也强调 coding agents 可以用它搜 docs、repos、changelogs、Stack Overflow。它更像“搜索层”,Context7 更像“文档库层”。

工程上可以这样分工:

已知库 / 版本 / API:Context7
未知问题 / issue / changelog / repo 搜索:Exa / Brave / Serper
找到 URL 后读全文:Exa Fetch / Jina / Firecrawl / Tavily Extract

6. Answer 型搜索和模型内置搜索

6.1 Perplexity

Perplexity API Platform 提供 Sonar、Search、Agent、Embeddings 等能力。官方 overview 里给了 Search API、Agent API、带 web_search tool 的示例。

它适合让 agent 快速拿到“带来源的综合答案”。但它不是普通 SERP API;成本、模型、输出格式和引用质量都需要单独评估。

Anthropic web search tool 会让 Claude 自己决定什么时候搜索,API 执行搜索并把结果交给 Claude,最终回复带 citations。web_search_20260209 增加 dynamic filtering:Claude 可以在搜索结果进入上下文前写代码过滤结果,从而降低无关内容占用。

这类内置搜索的特点是:模型最会用,但可迁移性差。离开 Anthropic API 或特定 Claude Code 环境,就不能原样复用。

OpenAI Responses / Codex 也有内置 web search 路线。优点同样是模型自然会用,缺点同样是和账号、模型、CLI 实现绑得很紧。

如果你要跨多个 code agent 复用,MCP 或 CLI wrapper 比内置工具更可控。

Gemini CLI 文档把 google_web_searchweb_fetch 分开讲。这个设计很合理:先搜索,再对具体 URL 做深读。对于已经在用 Gemini CLI 的人,原生搜索就是最省心的路径。

7. 自托管 / 聚合 / 代理方案

7.1 SearXNG

SearXNG 的价值在于自托管和聚合。它可以把多个搜索引擎统一成一个 /search?q=...&format=json 接口。

适合:

不适合:

7.2 自己做统一 Search Gateway

当接入的搜索源超过三四个,就会出现重复问题:

这时可以自己做一层 Search Gateway,统一暴露一个 OpenAI-compatible / MCP / CLI 接口,后端再接 Brave、Serper、Tavily、Bocha、Jina、Exa 等。

这种方案只有在你已经有明确痛点时才值得做。否则直接用现成 MCP 更省。

8. 怎么选

8.1 最小组合

如果只想给 code agent 补一套实用联网能力:

Context7:库文档
Brave 或 Serper:通用网页搜索
Jina 或 Firecrawl:网页正文读取

这套组合简单、可解释、可迁移。

8.2 偏工程 / 代码资料

Context7 + Exa + Jina

8.3 偏中文

Bocha + Metaso / Tencent WebSearchMCP + Jina

8.4 偏 research

Tavily + Perplexity + Jina / Firecrawl

8.5 偏自托管

SearXNG + Jina / Firecrawl + 自己的 wrapper

SearXNG 做搜索入口,Reader / Scraper 做正文读取,wrapper 做结果格式统一。

9. 配置时的几个原则

9.1 不要一次暴露太多工具

MCP tool schema 会占上下文。一个 server 暴露 20 个工具,模型还未开始干活就先背了一堆工具描述。

能过滤就过滤:

{
  "env": {
    "BRAVE_MCP_ENABLED_TOOLS": "brave_web_search"
  }
}
https://mcp.jina.ai/v1?include_tags=search,read
https://mcp.exa.ai/mcp?tools=web_search_exa,web_fetch_exa

9.2 Search 和 Fetch 分开

不要指望搜索摘要承担完整证据责任。更稳的流程是:

search -> pick source URLs -> fetch/read -> synthesize -> cite

Search 结果只告诉你“可能相关”;Fetch 才让模型看到真实页面内容。

9.3 Library docs 不走普通搜索优先

库文档、SDK 参数、框架配置,优先走 Context7 或官方 docs MCP。普通网页搜索容易搜到旧教程、过时博客和复制粘贴的错答案。

9.4 为中文和英文分开准备源

英文技术资料:Brave、Exa、Serper、Tavily 通常够用。中文实时信息:Bocha、Metaso、腾讯 WebSearchMCP 更值得单独看。

9.5 免费额度不要当生产承诺

很多服务写了 free plan,但限流、刷新周期、是否需要信用卡、是否可商用并不总是清楚。博客、个人配置可以用免费额度;生产系统要按付费方案和 SLA 重新评估。

10. 一张表

服务类型MCP / 接入免费信息适合场景
Context7Library docs@upstash/context7-mcp / remote MCP免费 API key 可提高限流库、框架、SDK、CLI 文档
Brave SearchWeb Search@brave/brave-search-mcp-serverFree 计划可用,dashboard 为准通用英文网页搜索
SerperGoogle SERP APIserper-search-mcp2,500 free queries,无需信用卡结构化 Google 搜索结果
ExaNeural search / fetchhosted MCP / exa-mcp-serverhosted MCP free plan;Search $7/1k技术资料、repo、docs、changelog
TavilyAgent search / extractremote MCP / tavily-mcp1,000 credits/月,无需信用卡research、搜索+提取
JinaReader / search / rerankhttps://mcp.jina.ai/v1API key 可提高限流URL 转 Markdown、批量读取、学术搜索
FirecrawlSearch / scrape / crawlremote MCP / firecrawl-mcp500 one-time credits,无需信用卡抓网页、动态页面、爬站
Bocha中文 Web / AI SearchBochaAI/bocha-search-mcpoverview 写 1000 次资源包;pricing 写 free中文搜索、模态卡
Metaso中文 search / fetch / Q&A官方 API / MCP第三方报道 0.03 元/次中文搜索、网页读取、问答
Tencent WebSearchMCP腾讯云中文搜索Tencent/WebSearchMCP以腾讯云为准腾讯云体系、搜狗来源中文搜索
KagiPremium Search APIAPI / community wrappersclosed beta;$25/1000 queries付费高质量搜索
SearXNGSelf-hosted metasearchHTTP API / wrappers自托管免费,维护成本自负自托管、聚合搜索
PerplexityAnswer / Search APIAPI / wrappers以 console 为准带来源综合答案
Anthropic Web Search模型内置搜索Claude API / Claude Code以 Anthropic 计费为准Claude 原生搜索与引用
OpenAI / Codex Web Search模型内置搜索Responses / Codex以 OpenAI 计费为准Codex / Responses 原生搜索
Gemini Google Search模型内置搜索Gemini CLI / API以 Google 账号与模型为准Gemini 原生搜索与 fetch

11. 参考链接

12. 我的结论

给 code agent 接 Web Search,不要追求“全都装”。比较好的做法是按层次配:

  1. Docs 层:Context7 或官方 docs MCP。
  2. Search 层:Brave / Serper / Exa / Tavily 选一两个。
  3. Fetch 层:Jina / Firecrawl / Tavily Extract / Exa Fetch 选一个。
  4. 中文层:需要中文实时信息时再加 Bocha / Metaso / Tencent WebSearchMCP。
  5. 内置层:Claude、Codex、Gemini、Kimi 自带的搜索能力按宿主环境使用,不要把它当跨 agent 的统一方案。

如果只想要一套不折腾的个人 code-agent 配置,我会从这个组合开始:

Context7 + Brave/Serper + Jina

如果更偏代码资料和工程搜索:

Context7 + Exa + Jina

如果更偏研究和实时资料:

Tavily + Perplexity + Firecrawl

如果你关心中文搜索:

Bocha + Metaso/Tencent + Jina

核心原则只有一个:搜索源少而准,正文读取可靠,库文档单独走专用通道。