MCP-网页爬虫
| | | | | | | MCP 服务器用于通过 Playwright 无头浏览器抓取网页内容。> 🌟 推荐:- 强大的 Ollama AI 模型管理器。-
MCP 服务配置
复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用
{
"mcpServers": {
"fetcher": {
"args": [
"-y",
"fetcher-mcp"
],
"command": "npx"
}
}
}
可用工具 (2 个)
该服务在 MCP 协议中暴露的工具,AI 可按需调用
fetch_url 10 个参数 需填 1 项
Retrieve web page content from a specified URL
必填参数:url
fetch_urls 10 个参数 需填 1 项
Retrieve web page content from multiple specified URLs
必填参数:urls
服务介绍
中文 |
德语 |
西班牙语 |
法语 |
日语 |
韩语 |
葡萄牙语 |
俄语
Fetcher MCP
使用无头浏览器 Playwright 获取网页内容的 MCP 服务器。
🌟 推荐: OllaMan - 强大的 Ollama AI 模型管理器。
优势
- JavaScript 支持:与传统的网页抓取工具不同,Fetcher MCP 使用 Playwright 执行 JavaScript,能够处理动态网页内容和现代 Web 应用程序。
- 智能内容提取:内置的 Readability 算法自动从网页中提取主要内容,去除广告、导航和其他非必要元素。
- 灵活的输出格式:支持 HTML 和 Markdown 输出格式,易于与各种下游应用集成。
- 并行处理:
fetch_urls工具支持并发获取多个 URL,显著提高批量操作的效率。 - 资源优化:自动阻止不必要的资源(如图片、样式表、字体、媒体)以减少带宽使用并提高性能。
- 强大的错误处理:全面的错误处理和日志记录确保在处理问题网页时也能可靠运行。
- 可配置参数:对超时、内容提取和输出格式进行细粒度控制,以适应不同的使用场景。
快速开始
直接使用 npx 运行:
npx -y fetcher-mcp
首次设置 - 通过在终端中运行以下命令安装所需的浏览器:
npx playwright install chromium
HTTP 和 SSE 传输
使用 --transport=http 参数同时启动 Streamable HTTP 端点和 SSE 端点服务:
npx -y fetcher-mcp --log --transport=http --host=0.0.0.0 --port=3000
启动后,服务器提供以下端点:
/mcp- Streamable HTTP 端点(现代 MCP 协议)/sse- SSE 端点(旧版 MCP 协议)
客户端可以根据需要选择连接方式。
调试模式
使用 --debug 选项运行以显示浏览器窗口进行调试:
npx -y fetcher-mcp --debug
配置 MCP
在 Claude Desktop 中配置此 MCP 服务器:
在 MacOS 上:~/Library/Application Support/Claude/claude_desktop_config.json
在 Windows 上:%APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"fetcher": {
"command": "npx",
"args": ["-y", "fetcher-mcp"]
}
}
}
Docker 部署
使用 Docker 运行
docker run -p 3000:3000 ghcr.io/jae-jae/fetcher-mcp:latest
使用 Docker Compose 部署
创建一个 docker-compose.yml 文件:
version: "3.8"
services:
fetcher-mcp:
image: ghcr.io/jae-jae/fetcher-mcp:latest
container_name: fetcher-mcp
restart: unless-stopped
ports:
- "3000:3000"
environment:
- NODE_ENV=production
# Using host network mode on Linux hosts can improve browser access efficiency
# network_mode: "host"
volumes:
# For Playwright, may need to share certain system paths
- /tmp:/tmp
# Health check
healthcheck:
test: ["CMD", "wget", "--spider", "-q", "http://localhost:3000"]
interval: 30s
timeout: 10s
retries: 3
然后运行:
docker-compose up -d
功能
-
fetch_url- 从指定的 URL 获取网页内容- 使用 Playwright 无头浏览器解析 JavaScript
- 支持智能提取主要内容并转换为 Markdown
- 支持以下参数:
url:要获取的网页的 URL(必填参数)timeout:页面加载超时时间(毫秒),默认为 30000(30 秒)waitUntil:指定导航何时完成,选项:'load', 'domcontentloaded', 'networkidle', 'commit',默认为 'load'extractContent:是否智能提取主要内容,默认为 truemaxLength:返回内容的最大长度(字符数),默认无限制returnHtml:是否返回 HTML 内容而不是 Markdown,默认为 falsewaitForNavigation:是否在初始页面加载后等待额外的导航(对于具有反机器人验证的站点有用),默认为 falsenavigationTimeout:等待额外导航的最大时间(毫秒),默认为 10000(10 秒)-disableMedia: 是否禁用媒体资源(图片、样式表、字体、媒体),默认为 true
-
debug: 是否启用调试模式(显示浏览器窗口),如果指定了该参数,则会覆盖命令行中的 --debug 标志 -
fetch_urls- 并行批量从多个 URL 检索网页内容- 使用多标签页并行检索以提高性能
- 返回合并的结果,并在不同网页之间有清晰的分隔
- 支持以下参数:
urls: 要检索的 URL 数组(必需参数)- 其他参数与
fetch_url相同
提示
处理特殊网站场景
应对反爬虫机制
-
等待完全加载: 对于使用验证码、重定向或其他验证机制的网站,在提示中包含:
Please wait for the page to fully load这将使用
waitForNavigation: true参数。 -
增加超时时间: 对于加载缓慢的网站:
Please set the page loading timeout to 60 seconds这会相应地调整
timeout和navigationTimeout参数。
内容检索调整
-
保留原始 HTML 结构: 当内容提取可能失败时:
Please preserve the original HTML content设置
extractContent: false和returnHtml: true。 -
获取完整页面内容: 当提取的内容过于有限时:
Please fetch the complete webpage content instead of just the main content设置
extractContent: false。 -
以 HTML 格式返回内容: 当需要 HTML 格式而不是默认的 Markdown 格式时:
Please return the content in HTML format设置
returnHtml: true。
调试和身份验证
启用调试模式
- 动态启用调试: 在特定的检索操作期间显示浏览器窗口:
即使服务器启动时没有使用Please enable debug mode for this fetch operation--debug标志,这也会设置debug: true。
使用自定义 Cookie 进行身份验证
-
手动登录: 使用自己的凭据登录:
Please run in debug mode so I can manually log in to the website设置
debug: true或使用--debug标志,保持浏览器窗口打开以便手动登录。 -
与调试浏览器交互: 当启用调试模式时:
- 浏览器窗口保持打开状态
- 可以使用您的凭据手动登录网站
- 登录完成后,将以经过身份验证的会话获取内容
-
为特定请求启用调试: 即使服务器已经在运行,也可以为特定请求启用调试模式:
Please enable debug mode for this authentication step仅为该特定请求设置
debug: true,打开浏览器窗口进行手动登录。
开发
安装依赖项
npm install
安装 Playwright 浏览器
安装 Playwright 所需的浏览器:
npm run install-browser
构建服务器
npm run build
调试
使用 MCP Inspector 进行调试:
npm run inspector
您还可以启用可见浏览器模式进行调试:
node build/index.js --debug
相关项目
- g-search-mcp: 一个强大的 MCP 服务器,用于 Google 搜索,支持同时使用多个关键词进行并行搜索。非常适合批量搜索操作和数据收集。
许可证
根据 MIT 许可证 发布
