用 MCP 为 Claude Code 搭建网页研究流程
教程通过 AgentSearch MCP 串联搜索、正文提取和按需浏览器渲染,让 Claude Code 获取实时网页资料。提供安装命令、测试环境与免费额度说明,无需单独申请搜索 API 密钥。
AI 深度解读
给 Claude Code 接上联网工具,难点很快会从「能不能搜」变成「什么时候该读全文、什么时候值得启动浏览器、谁来限制花费」。这篇教程给出的办法是:先 Search,再按需 Extract,只有静态提取失败时才 Render,并把顺序写进项目规则。
它值得参考的地方,是把工具、权限、预算和不可信网页放进了同一套流程。但作者只验证了安装与部分工具行为,没有跑通完整的交互式调研任务。读它更适合拿走配置思路,不能把它当成效果评测。
为什么搜索之后,不该直接打开所有网页
作者使用 AgentSearch MCP,让 Claude Code 在读取仓库之外,还能搜索实时网页、提取页面正文,以及调用无头浏览器渲染页面。MCP 在这里负责把外部能力接入 Claude Code;真正决定调研成本的,是后续怎么选工具。
流程分成三步:
- 用
agentsearch_web_search找候选 URL 和摘要,优先使用范围明确的查询。 - 摘要不足以回答时,用
agentsearch_extract读取最相关的 1–2 个页面。 - 只有 Extract 返回空内容、内容过少,或明显只有 JavaScript 页面外壳时,才用
agentsearch_render。
所谓「页面外壳」,就是拿到了 HTML,却没拿到浏览器执行 JavaScript 后才出现的正文。Render 适合处理这类 SPA 和客户端渲染文档,普通静态文档、更新日志通常用不到。
先用便宜的信息判断是否需要更贵的信息,是这套流程最有用的设计。
免费搜索每次最多返回 5 条结果,窄问题可以通过 max_results 请求 1–5 条。免费额度是每 IP 每天最多 25 次搜索,且受共享每日容量约束,不能理解成每位开发者都有独立保底额度。
付费路径通过 x402 使用 USDC 按次支付,Search 和 Extract 都是每次 $0.005。原文没有给出 Render 的具体价格,只让读者查看定价。因此,不能直接用搜索或提取的单价估算浏览器渲染成本。原文称付费调用没有次数上限,但仍应设置自己的预算。
两个 MCP 服务,分别管搜索和花钱
免费服务的安装命令是 claude mcp add agentsearch -- npx -y @agentsearchhq/agentsearch-mcp。它通过 stdio,也就是标准输入输出,与 Claude Code 通信。
免费搜索不需要搜索 API key、注册账号或最低消费,但模型仍需要正常的 Claude Code 登录。
作者建议再建一个 agentsearch-paid,专门放钱包和付费读取工具。下面的命令把单次服务会话的支付总额限制在 $0.05:
claude mcp add agentsearch-paid \
--env AGENTSEARCH_WALLET_PRIVATE_KEY=0xYOUR_DEDICATED_WALLET_KEY \
--env AGENTSEARCH_MAX_TOTAL_ATOMIC=50000 \
-- npx -y @agentsearchhq/agentsearch-mcp
要看清两处:agentsearch-paid 必须放在 --env 前面,否则 CLI 可能把服务名当成另一个环境变量参数;钱包则应使用专用钱包,在 Base 上放少量 USDC,原文称不需要准备 ETH 支付 gas。
预算参数也有边界。AGENTSEARCH_MAX_TOTAL_ATOMIC 使用 USDC 最小单位,1000000 = $1.00,所以 50000 = $0.05。它限制的是服务会话,重启就会重置。AGENTSEARCH_MAX_PER_CALL_ATOMIC 控制单次上限,原文说明只能调低。
达到上限后,工具在签名前停止,返回包含 Session spend cap reached 和 Nothing was signed. 的消息。它不是跨重启累计的账单控制,不能替代团队级预算管理。
从包版本 1.3.5 开始,仅配置钱包就能启用 Extract 和 Render,搜索仍走免费层;额外设置 AGENTSEARCH_MODE=paid 才会切换付费搜索。因此,双服务是为了把权限和密钥边界摆清楚,并非功能上的硬性要求。
项目也可以通过 .mcp.json 配置服务。原文使用 ${AGENTSEARCH_WALLET_PRIVATE_KEY} 引用密钥,并用 ${AGENTSEARCH_MAX_TOTAL_ATOMIC:-50000} 设置预算默认值。真实私钥不能提交进仓库,也不要随手导出到启动 claude 的 shell,让其他 MCP 服务继承它。
配置完成后,用 claude mcp list 检查连接,在会话中用 /mcp 查看各服务的工具。项目作用域的服务还需要队友各自批准一次。
规则写进项目,网页内容仍然只能当资料
工具接通之后,还要告诉 Claude Code 怎样使用。作者建议把调研步骤写进 CLAUDE.md,或者放进 .claude/rules/web-research.md,让会话复用同一套规则。
规则不只是 Search → Extract → Render,还包括优先官方文档、changelog、RFC;引用实际依赖的 URL;遇到错误或预算上限时换来源,或者停止并报告已有结果。
权限可以先只放行免费搜索。下面这段放进项目 .claude/settings.json 或用户设置:
{
"permissions": {
"allow": [
"mcp__agentsearch__agentsearch_web_search"
]
}
}
关键是 allow 中只有搜索。工具权限名遵循 mcp__<server>__<tool>,付费提取对应 mcp__agentsearch-paid__agentsearch_extract。作者建议先保留 Extract 和 Render 的确认,等提示词与预算配置可信后再决定是否放行。
网页则始终是不可信第三方输入。正文、HTML 注释、review note 中要求执行命令或修改文件的内容,都不能升级成项目指令。原文还要求保留文件修改和 shell 命令的权限确认。
这对仓库调研尤其重要:模型可以根据迁移文档提出改动,但不能因为某个网页要求执行一段命令,就直接照做。引用 URL 帮助检查事实来源,操作权限则约束它接下来能做什么,两者解决不同问题。
我的判断
我认可工具逐级升级和免费、付费服务分开的做法。相比一开始就让浏览器遍历页面,它给每次读取增加了理由;相比把所有能力自动放行,它也更容易定位一次付费调用从哪里发生。
但作者没有提供成本、速度或答案质量的对照数据,「这样调研更好」仍然是经验判断。
作者实际验证的环境是 Linux、Claude Code 2.1.309、Node.js 20+,测试机器使用 Node v24.22.1,MCP 包版本为 1.3.6。他们通过 stdio 启动服务,列出了五个工具,包括 Search、Extract、Render 和两个 review 工具,还确认无钱包时 Extract 返回提示且不会发起网络调用。
这些验证没有覆盖完整的交互式 Claude Code 调研,也没有证明模型每次都会正确判断摘要是否充分、是否需要 Render,或稳定抵抗网页里的恶意指令。CLAUDE.md 是行为指导,预算检查和权限控制才承担明确的执行约束。
另外,原文最初发布于 AgentSearch 自家博客。它展示了自家工具的接入路径,没有比较其他搜索 MCP 或浏览器方案。一般团队是否值得采用,还取决于能否接受 USDC 钱包支付、共享搜索额度,以及会话重启后预算重置这些条件。
能拿来做什么
- 查前端或 Node 库升级时,让 Claude Code 先找最新稳定版的官方 release notes,再提取 changelog,列出影响仓库
src/的 breaking changes,并标明版本和日期。只有页面确实依赖客户端渲染时才启用 Render。 - 做 API 迁移前,要求它搜索官方迁移指南和两篇近期社区实践,完整提取官方指南,再生成对应当前仓库的代码修改清单。网页提供证据,是否执行改动仍由项目权限控制。
- 排查 MCP 服务日志时,先搜索 stdio transport 对 stderr 和 logging 的规定;摘要互相矛盾时,再读取规范原文,对照仓库实现给出引文和 URL。
- 团队试用时先接免费搜索,再按需添加小额钱包和付费服务。把调研顺序写进项目规则,同时明确
$0.05示例只约束一次服务会话,避免把它误当成长期预算上限。