【MCP】让Roo Code变身抓取神器

406 阅读3分钟

前言

我们都知道Roo Code或者Cline是不具备抓取网页能力的,当我们需要Roo Code为我们获取网页内容时,Roo Code会调用想办法调用其他工具来获取网页内容

图片

这个示例是Roo Code在终端调用了curl获取了HTML源码,Roo Code参考HTML提供的内容来做总结。

图片

这种方式一般来说没什么问题,但是内容包含了大量的HTML代码是非必要内容,同时会造成tokens的消耗和模型回复效率的降低,为了解决这一问题,就需要我们今天要使用的 Fetch 和 FireCrawl MCP服务了。

Fetch MCP

Github地址:github.com/modelcontex…

Fetch MCP简介

Fetch MCP是Anthropic官方提供的一款专注于网页内容抓取的轻量级的网页爬虫服务器,它能够智能地将HTML内容转换为Markdown格式,特别适合与LLM(大语言模型)配合使用。

参数配置

Fetch MCP提供了如下参数配置

  • url(字符串,必需):要抓取的URL
  • max_length(整数,可选):返回的最大字符数(默认:5000)
  • start_index(整数,可选):从该字符索引开始提取内容(默认:0)
  • raw(布尔值,可选):获取原始内容而不进行Markdown转换(默认:false)

安装MCP

Fetch MCP提供了多种安装方式

# 使用pip
$ pip install mcp-server-fetch

# 运行mcp
python -m mcp_server_fetch

# 使用uv
uvx mcp-server-fetch

客户端配置

在Roo Code MCP配置文件中添加如下配置

使用uvx

"mcpServers": {
  "fetch": {
    "command": "uvx",
    "args": ["mcp-server-fetch"],
    "env": {
        "PYTHONIOENCODING": "utf-8"
     }
  }
}

使用docker

"mcpServers": {
  "fetch": {
    "command": "docker",
    "args": ["run", "-i", "--rm", "mcp/fetch"]
  }
}

使用pip

"mcpServers": {
  "fetch": {
    "command": "python",
    "args": ["-m", "mcp_server_fetch"]
  }
}

在Roo Code中使用

配置完成后可以看到MCP服务的状态,Tools和Resources列表信息

图片

图片

如果设置了获取源码,建议将 max_length 设置大一点,否则Roo Code将会不断询问获取直至结束

图片

FireCrawl MCP

Github地址:github.com/mendableai/…

FireCrawl MCP简介

FireCrawl MCP是MCP社区提供的一款基于FireCrawl API封装的企业级网页数据采集工具,专门针对复杂网页场景设计,支持JavaScript动态渲染、批量数据处理、智能内容搜索和深度网页爬取等高级功能。

核心功能

  • JavaScript渲染:能够处理动态网页内容。
  • 批量抓取:支持并行处理和队列管理。
  • URL发现与爬取:支持深度爬取和内容过滤。
  • 搜索功能:提供基于关键词的网页搜索能力。

## 官网

官网地址:www.firecrawl.dev/

图片

注册登录

点击【Sign Up】选择自己的方式进行注册登录

图片

登录成功后即可看到FireCrawl控制台信息

图片

产品定价

图片

免费用户限制:

  • 提供500积分使用额度(一次性非每月)
  • 10次scrape/分钟
  • 1次crawl/分钟

申请FireCrawl API Key

FireCrawl是收费的,免费用户每月有500次免费调用额度

使用FireCrawl MCP需要到FireCrawl官网申请API Key,FireCrawl默认创建了一个API Key,如果我们想创建新的API Key,可以点击【API Keys】进入API Keys页面

图片

点击【Create API Key】输入API Key名称,点击【Create】

图片

安装MCP

FireCrawl MCP支持通过npm进行安装

$ npm install -g firecrawl-mcp

客户端配置

在Roo Code MCP配置文件中添加如下配置

使用npx

{
  "mcpServers": {
    "mcp-server-firecrawl": {
      "command": "npx",
      "args": ["-y", "firecrawl-mcp"],
      "env": {
        "FIRECRAWL_API_KEY": "YOUR_API_KEY_HERE"
      }
    }
  }
}

使用node

{
  "mcpServers": {
    "mcp-server-firecrawl": {
      "command": "node",
      "args": ["/user/path/firecrawl-mcp/dist/src/index.js"],
      "env": {
        "FIRECRAWL_API_KEY": "YOUR_API_KEY_HERE"
      }
    }
  }
}

高级功能

FireCrawl MCP提供了多种工具调用:

  • firecrawl_scrape(单页抓取):从指定URL抓取内容,并提供标签过滤、超时控制等选项
  • firecrawl_batch_scrape(批量抓取工具):支持同时处理多个URL,并返回操作ID供后续查询
  • firecrawl_check_batch_status(查看批量抓取进度):查看批量抓取任务的进度,包括已完成和未完成的任务数量
  • firecrawl_search(搜索工具):根据关键词执行网页搜索,并提取结果内容
  • firecrawl_crawl(爬取工具):支持深度爬取指定网站,提供外链控制和去重功能
  • firecrawl_extract(提取工具):从抓取的网页中提取特定数据,如标题、链接等,支持多种提取规则

在Roo Code中使用

配置完成后可以看到MCP服务的状态和Tools列表信息

图片

图片

常见问题

robots.txt反爬机制

如果网站设置了反爬机制我们将无法爬取内容

图片

Fetch官方提供了相应方法进行处理

图片

我们可以通过设置 --ignore-robots-txt 来忽略 robots.txt

{
  "mcpServers": {
    "fetch": {
      "command": "uvx",
      "args": ["mcp-server-fetch", "--ignore-robots-txt", "--user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"],
      "env": {
          "PYTHONIOENCODING": "utf-8"
      }
    }
  }
}

参考

友情提示

见原文:【MCP】让Roo Code变身抓取神器

本文同步自微信公众号 "程序员小溪" ,这里只是同步,想看及时消息请移步我的公众号,不定时更新我的学习经验。