使用Claude Code时经常遇到"fetch not allowed"错误?本文提供完整解决方案,让你的AI助手自由访问任何网站!

问题分析

Claude Code内置的WebFetch工具存在严格的安全限制:

常见错误场景

  • ❌ 访问GitHub仓库时被拒绝
  • ❌ 查看技术博客内容失败
  • ❌ 获取开源项目文档受限
  • ❌ 爬取API文档被阻止

根本原因

Claude Code的WebFetch工具采用白名单机制,只允许访问预设的安全网站,大部分个人网站、GitHub等都被屏蔽。

完美解决方案:配置Fetch MCP

方案优势

  • 🌐 无URL限制 - 可访问任何公开网站
  • 🚫 绕过robots.txt - 忽略网站爬虫限制
  • 🎭 UA伪装 - 模拟真实浏览器访问
  • 📄 分块读取 - 支持长页面内容获取

详细配置步骤

第一步:安装Fetch MCP

# 使用uvx直接运行(推荐)
uvx mcp-server-fetch

# 或使用pip安装
pip install mcp-server-fetch

第二步:修改Claude配置文件

打开 ~/.claude.json 文件,找到 mcpServers 部分,添加以下配置:

{
  "mcpServers": {
    "fetch": {
      "command": "uvx",
      "args": [
        "mcp-server-fetch",
        "--ignore-robots-txt",
        "--user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36"
      ]
    }
  }
}

第三步:配置自动使用规则

~/.claude/CLAUDE.md 中添加使用规则:

## Fetch MCP 使用规则

### 何时使用 Fetch MCP

当内置WebFetch工具被限制时,使用Fetch MCP工具:

1. **WebFetch报错** - 当内置WebFetch返回"not allowed"时
2. **访问被限制网站** - GitHub、个人博客、社交媒体等
3. **获取完整内容** - 需要完整网页内容而不是摘要
4. **分块读取** - 长页面需要分段获取

### 典型应用
- 🔗 访问GitHub仓库README或文档
- 📝 获取技术博客文章内容
- 🌐 抓取不在WebFetch白名单的官方文档
- 📄 获取完整的网页markdown内容

第四步:重启Claude Code

# 退出当前Claude Code会话
# 重新启动Claude Code让配置生效
claude

效果验证

配置完成后,测试访问之前被限制的网站:

# 测试访问GitHub(之前会报错)
# 现在可以成功获取内容

高级技巧

1. 分块读取长页面

当页面内容过长时,可以分段获取:

# 获取页面前5000字符
fetch_url="https://example.com" max_length=5000

# 继续读取后续内容
fetch_url="https://example.com" start_index=5000

2. 获取原始HTML

有时需要原始HTML而非转换后的markdown:

# 获取原始HTML
fetch_url="https://example.com" raw=true

3. 自定义User-Agent

根据需要修改User-Agent,模拟不同浏览器:

  • Chrome: Chrome/120.0.0.0
  • Firefox: Firefox/121.0
  • Safari: Safari/537.36

注意事项

安全提醒

  • 仅用于合法的技术学习和研究
  • 尊重网站的服务条款
  • 避免对网站造成过大负载

最佳实践

  • 优先使用内置WebFetch,失败时再用Fetch MCP
  • 合理设置User-Agent,避免被反爬虫检测
  • 对于敏感操作,手动复制粘贴更安全

实用场景

开发者场景

  • ✅ 获取GitHub项目文档
  • ✅ 查看开源项目README
  • ✅ 访问API文档网站
  • ✅ 获取技术博客教程

学习研究场景

  • ✅ 访问学术论文网站
  • ✅ 获取技术规范文档
  • ✅ 查看开源协议内容
  • ✅ 下载配置文件示例

功能对比

功能 内置WebFetch Fetch MCP
GitHub访问 ❌ 被限制 ✅ 正常访问
个人博客 ❌ 被限制 ✅ 正常访问
技术文档 ⚠️ 部分可用 ✅ 完全可用
分块读取 ❌ 不支持 ✅ 支持
自定义UA ❌ 不支持 ✅ 支持

总结

通过配置Fetch MCP,我们成功解决了Claude Code的网页访问限制问题:

  • 彻底解决 “fetch not allowed” 错误
  • 大幅提升 AI助手的信息获取能力
  • 显著改善 开发和学习体验
  • 完全兼容 现有Claude Code工作流

现在你的Claude Code可以自由访问互联网,真正成为无所不能的AI编程助手!

相关资源