关于 Fetch Router
Fetch Router 是面向需要可靠读取网页的 Agent 的 MCP 服务,适用于逐个获取页面。它检测拦截、登录墙、空白 JavaScript 页面及校验失败,并尝试其他路线;失败请求不收费。
主要功能
- 01验证页面加载及预期文本
- 02检测拦截和登录墙
- 03尝试其他获取路线
- 04返回 Markdown 或 HTML
- 05查询域名路线可靠性
适用场景
- 01读取搜索结果和用户提供的链接
- 02无需自行管理 Playwright 即可获取 JavaScript 页面
- 03总结前确认页面确已加载
MCP 相关
托管 MCP 服务地址为 https://fetchrouter.dev/mcp,也可通过本地 stdio 使用。它提供 `fetch_page` 进行验证式获取,以及 `domain_reliability` 查询路线成功率。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://fetchrouter.dev/mcpclaude mcp add --transport http dev-fetchrouter-fetchrouter https://fetchrouter.dev/mcp{"mcpServers":{"dev-fetchrouter-fetchrouter":{"type":"http","url":"https://fetchrouter.dev/mcp"}}}在 Cursor 中打开{"servers":{"dev-fetchrouter-fetchrouter":{"type":"http","url":"https://fetchrouter.dev/mcp"}}}在 VS Code 中打开{"mcpServers":{"dev-fetchrouter-fetchrouter":{"type":"http","url":"https://fetchrouter.dev/mcp"}}}{"mcpServers":{"dev-fetchrouter-fetchrouter":{"serverUrl":"https://fetchrouter.dev/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
https://fetchrouter.dev/mcp需要授权工具
详细介绍
fetchrouter-mcp
适用于 Fetch Router 的 MCP 服务:为 AI Agent 提供网页抓取服务,只有页面实际加载成功时才计费。
Agent 经常会收到一个 200 OK,但实际上那只是 Cloudflare 验证页、DataDome 拦截页或空白的 React 外壳,随后便对错误页面进行总结。Fetch Router 会检查每个页面是否存在 HTTP 错误、拦截页和验证页(Cloudflare、DataDome、PerimeterX、Akamai、Imperva、Kasada 等)、登录墙、空白的 JavaScript 外壳,以及你指定应出现的文本。如果检查失败,它会改用其他路线重试,例如无头浏览器。抓取失败不收费。
适用场景
- Agent 需要读取它无法自行选择的页面:搜索结果、用户分享的链接,以及你无法控制的网站。
- 你需要确认页面是否真的加载成功,而不只是请求返回了 200。
- 某些目标是需要浏览器的单页应用,而你不想自己运行 Playwright。
- 你希望按成功加载的页面付费,而不是按请求付费。
不适用场景
- 抓取整个网站、绘制链接图谱或进行搜索。 请使用爬虫(Firecrawl、Crawl4AI、Apify)。Fetch Router 一次处理一个 URL。
- 需要登录或付费墙才能访问的页面。 根据政策,不支持此类页面。
- 一两个你熟悉的网站。 使用普通的
fetch或自己的 Playwright 脚本更省钱。 - 目前有严格保护措施的零售和旅游网站。 高级解除拦截路线尚未向客户流量开放。请参阅基准测试,了解哪些网站可以成功加载。
设置
无需密钥即可使用,每个 IP 地址每天最多可免费抓取 25 个页面。要抓取更多页面,请在 https://fetchrouter.dev/#signup 免费获取密钥(500 个额度,无需银行卡)。
远程(无需安装)。 使用 Streamable HTTP,地址为 https://fetchrouter.dev/mcp,并在请求头中加入密钥:
claude mcp add --transport http fetchrouter https://fetchrouter.dev/mcp --header "Authorization: Bearer fr_..."
也可以不使用密钥试用(每日免费额度):
claude mcp add --transport http fetchrouter https://fetchrouter.dev/mcp
其他客户端:URL 为 https://fetchrouter.dev/mcp,可选请求头为 Authorization: Bearer fr_...(或 X-API-Key: fr_...)。
Claude Code 插件(包含 MCP 服务和 verified-fetch 技能;会询问一次是否使用可选密钥,并安全存储该密钥):
claude plugin marketplace add JonnoGit/fetchrouter-mcp
claude plugin install fetchrouter@fetchrouter
本地(通过 npx 使用 stdio)。
{
"mcpServers": {
"fetchrouter": {
"command": "npx",
"args": ["-y", "fetchrouter-mcp"],
"env": { "FETCHROUTER_API_KEY": "fr_..." }
}
}
}
Claude Code:claude mcp add fetchrouter -e FETCHROUTER_API_KEY=fr_... -- npx -y fetchrouter-mcp。省略密钥(-e … 或 env 块)即可使用每日免费额度。
工具
fetch_page(url, mode?, expect_text?, expect_selector?, max_cost?):返回 Markdown(默认)或 HTML,以及成功传回页面的路线和尝试过的路线。max_cost用于限制额度:1 = 仅普通 HTTP,2(默认值)允许使用浏览器。如果页面无法加载,错误会说明原因(blocked:cloudflare、http_404、expect_text_missing等),且不会扣费。domain_reliability(domain):提供该网站过去 30 天内各路线的成功率,数据来自真实且经过验证的抓取。免费,无需密钥。
效果如何?
系统每晚会从数据中心 IP 地址出发,使用普通 HTTP 和无头浏览器抓取六种网站类型中固定列表里的 166 个公开页面。结果、方法和 CSV 文件见:https://fetchrouter.dev/benchmark
定价
每个静态页面 1 个额度($0.001),每个浏览器渲染页面 2 个额度,失败不收费。详情见:https://fetchrouter.dev/#pricing
环境(stdio)
| 变量 | 默认值 |
|---|---|
FETCHROUTER_API_KEY | 可选(不提供时:每天可免费抓取 25 个页面) |
FETCHROUTER_BASE_URL | https://fetchrouter.dev |
FETCHROUTER_MAX_CHARS | 60000(较长的页面会被截断) |
开发
npm install
npm run build
FETCHROUTER_API_KEY=fr_... node dist/index.js
工具定义位于 src/tools.ts,并与托管端点 https://fetchrouter.dev/mcp 共用。
采用 MIT 许可证。由 One + Done LLC 运营。联系邮箱:[email protected]
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。