前言
我们都知道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(字符串,必需):要抓取的URLmax_length(整数,可选):返回的最大字符数(默认:5000)start_index(整数,可选):从该字符索引开始提取内容(默认:0)raw(布尔值,可选):获取原始内容而不进行Markdown转换(默认:false)
安装MCP
Fetch MCP提供了多种安装方式
# 使用pip$ pip install mcp-server-fetch# 运行mcppython -m mcp_server_fetch# 使用uvuvx 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" } } }}
参考
友情提示
本文同步自微信公众号 "程序员小溪" ,这里只是同步,想看及时消息请移步我的公众号,不定时更新我的学习经验。