前言
我们都知道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"
}
}
}
}
参考
友情提示
本文同步自微信公众号 "程序员小溪" ,这里只是同步,想看及时消息请移步我的公众号,不定时更新我的学习经验。