/ 目录 / 演练场 / Fetch
● 官方 modelcontextprotocol ⚡ 即开即用

Fetch

作者 modelcontextprotocol · modelcontextprotocol/servers

最简单的方式让 Claude 访问网络——获取 URL,得到干净的 Markdown。无需 JS 渲染、无需 API 密钥、无需折腾。

标准 Fetch MCP。接收 URL,下载页面,去除样板代码,转换为 Markdown,返回内容块。适合静态页面、文档、更新日志、RSS——任何不需要 JavaScript 运行的地方。对于 SPA 和反爬虫网站,改用 Firecrawl 或 Chrome DevTools。

为什么要用

核心特性

实时演示

实际使用效果

fetch.replay ▶ 就绪
0/0

安装

选择你的客户端

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "fetch": {
      "command": "uvx",
      "args": [
        "mcp-server-fetch"
      ]
    }
  }
}

打开 Claude Desktop → Settings → Developer → Edit Config。保存后重启应用。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "fetch": {
      "command": "uvx",
      "args": [
        "mcp-server-fetch"
      ]
    }
  }
}

Cursor 使用与 Claude Desktop 相同的 mcpServers 格式。项目级配置优先于全局。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "fetch": {
      "command": "uvx",
      "args": [
        "mcp-server-fetch"
      ]
    }
  }
}

点击 Cline 侧栏中的 MCP Servers 图标,然后选 "Edit Configuration"。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "fetch": {
      "command": "uvx",
      "args": [
        "mcp-server-fetch"
      ]
    }
  }
}

格式与 Claude Desktop 相同。重启 Windsurf 生效。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "fetch",
      "command": "uvx",
      "args": [
        "mcp-server-fetch"
      ]
    }
  ]
}

Continue 使用服务器对象数组,而非映射。

~/.config/zed/settings.json
{
  "context_servers": {
    "fetch": {
      "command": {
        "path": "uvx",
        "args": [
          "mcp-server-fetch"
        ]
      }
    }
  }
}

加入 context_servers。Zed 保存后热重载。

claude mcp add fetch -- uvx mcp-server-fetch

一行命令搞定。用 claude mcp list 验证,claude mcp remove 卸载。

使用场景

实战用法: Fetch

总结 URL 上的文章或博客文章

👤 任何在聊天中分享链接并询问'这说的是什么?'的人 ⏱ ~3 min beginner

何时使用: 你遇到无付费墙的文章、文档页面或博客文章,想要 TL;DR 和观点而不想自己阅读。

步骤
  1. 获取 Markdown 格式输出
    获取 https://example.com/blog/post 的前约 3000 个字符并转换为干净的 Markdown。✓ 已复制
    → 内容包含有效的标题且无导航元素
  2. 总结并提取主张
    用 5 条要点总结。列出作者提出的任何具体数字或主张及其所在的句子。✓ 已复制
    → 要点总结加引文,而非意译
  3. 批评
    对作者主要观点最有力的反驳是什么?要具体。✓ 已复制
    → 真实的批评,而非模棱两可的'另一方面……'

结果: 在 30 秒内快速了解文章内容,包含可验证的引文。

注意事项
  • 页面由 JS 渲染,获取返回几乎为空的壳 — 检查首次获取的输出——如果内容异常简短或显示'Loading...',改用 Firecrawl 或 Chrome DevTools MCP
  • 长页面被 max_length 截断 — 使用 start_index 分页:第二次调用时设置 start_index: 5000 从上次结束处继续
搭配使用: memory

检查供应商的更新日志了解本周的变化

👤 追踪依赖发布或竞争对手功能的开发者 ⏱ ~5 min beginner

何时使用: 你依赖的库在静态页面上发布了发布说明,而你已经一个月没查看了。

步骤
  1. 获取更新日志页面
    获取 https://vendor.com/changelog 并列出自 2026-03-01 以来的每个发布,包括日期和一行更改摘要。✓ 已复制
    → 带日期的时间顺序列表
  2. 按影响分类
    将每个分类为:破坏性变化、新功能、bug 修复、内部变化。标记任何标记为破坏性或已弃用的内容。✓ 已复制
    → 每个发布的标签,其中突出显示破坏性变化
  3. 指出对我们的影响
    我们主要使用这个库来实现 <feature X>。这些变化中哪些会影响我们的使用,我们应该采取什么行动(如果有的话)?✓ 已复制
    → 可操作的列表,而非泛泛的'查看说明'

结果: 在 2 分钟内了解是否需要升级版本并测试,或完全跳过该发布。

注意事项
  • 更新日志分页——首页仅显示最近 2 个月 — 使用 start_index 滚动或显式获取存档 URL
  • GitHub 发布页面现在通过 JS 渲染 — 改为使用原始 API:https://api.github.com/repos/owner/repo/releases 返回 JSON 无需 JS
搭配使用: github · memory

获取 RFC 或文档页面作为编程任务的上下文

👤 实现规范或 API 集成的工程师 ⏱ ~15 min intermediate

何时使用: 你根据公开规范(OAuth、RFC 9457 问题详情、REST API 参考文档)编码,希望 Claude 有标准来源。

步骤
  1. 获取规范页面
    获取 https://datatracker.ietf.org/doc/html/rfc9457 作为 Markdown。只返回第 1-4 部分。✓ 已复制
    → 规范部分的干净 Markdown
  2. 根据它实现
    以该 RFC 为真理来源,为我编写 problem details 对象的 TypeScript 类型和验证器。在注释中引用具体的部分号。✓ 已复制
    → 代码中包含 // per RFC 9457 §3.1 的内联引文
  3. 边界情况检查
    从同一 RFC 来看,我的实现未处理哪些边界情况或可选字段?决定是否处理它们或记录选择。✓ 已复制
    → 对照规范的诚实间隙分析

结果: 规范一致的实现,附带可追踪的引文可在代码审查中辩护。

注意事项
  • IETF 页面很大——整个 RFC 可能超过上下文预算 — 使用锚链接或 start_index 只获取需要的部分,而非全文档
搭配使用: filesystem · github

组合

与其他 MCP 搭配,撬动十倍杠杆

fetch + filesystem

在本地保存获取的页面用于离线 RAG 或存档

获取 https://docs.anthropic.com/en/docs/mcp 并保存为 /knowledge/anthropic/mcp.md。✓ 已复制
fetch + memory

记住页面中的关键事实,以免下次重新获取

获取 Stripe 定价页面并将每笔交易费用作为'stripe-pricing'实体的观察结果存储,附带今天的日期。✓ 已复制

获取多个来源,然后逐步推理

获取关于主题 X 的这 3 篇竞争文章。使用循序渐进的思维来识别它们真正分歧的地方与只是用不同措辞的地方。✓ 已复制

工具

此 MCP 暴露的能力

工具输入参数何时调用成本
fetch url: str, max_length?: int (default 5000), start_index?: int, raw?: bool 以 Markdown 格式检索单个 URL;设置 raw=true 跳过 Markdown 转换 free (bandwidth only)

成本与限制

运行它的成本

API 配额
无配额——仅受你的带宽和目标网站速率限制限制
每次调用 Token 数
默认 max_length 为 5000 个字符(约 1500 个 token);长页面需要多次调用
费用
免费
提示
如果你经常需要分页同一页面,在首次获取后通过 filesystem MCP 缓存它。

安全

权限、密钥、影响范围

凭据存储:
数据出站: 直接从你的机器到目标 URL——无代理、无第三方

故障排查

常见错误与修复

内容异常简短(<200 字符)

页面可能由 JS 渲染。通过在 curl 中查看 URL 确认;如果 curl 输出也很小,获取无法帮助——使用 Firecrawl 或 chrome-devtools MCP。

验证: curl -sL <url> | wc -c
403 禁止

网站阻止非浏览器用户代理。Fetch MCP 默认发送现代 UA;如果仍被阻止,则网站明确禁止爬取——请尊重这一点。

robots.txt 不允许

对于用户发起的一次性获取(非自动爬取),你可以根据服务器文档禁用 robots 检查。不要为代理循环禁用。

截断——响应在句子中间被切断

增加 max_length 或再次调用时设置 start_index 为上次调用结束的位置。

替代方案

Fetch 对比其他方案

替代方案何时用它替代权衡
Firecrawl目标是 JS 渲染的 SPA,或你需要通过 schema 进行结构化 JSON 提取免费积分后付费;增加第三方依赖
Chrome DevTools MCP你需要与页面交互(点击、登录、滚动)来展示内容更重——启动真实浏览器;每页更慢
Brightdata MCP目标主动阻止数据中心 IP 且你需要住宅代理企业定价;对大多数需求来说过度设计

更多

资源

📖 阅读 GitHub 上的官方 README

🐙 查看未解决的 issue

🔍 浏览全部 400+ MCP 服务器和 Skills