README
🚀 Playwright Fetch MCP Server
Playwright Fetch MCP Server 是一个基于 Model Context Protocol 的服务器,借助 Playwright 实现浏览器自动化,为大语言模型(LLMs)提供网页内容抓取能力。它能够帮助 LLMs 从网页中获取并处理 JavaScript 渲染后的内容,还能将 HTML 转换为便于使用的 Markdown 格式。
🚀 快速开始
本项目借助 Playwright 实现浏览器自动化,可抓取网页中的 JavaScript 渲染内容,并将其转换为 Markdown 格式。以下是使用前的准备步骤:
- 确保安装 Python 3.13.2 或更新版本。
- 安装 uv 包管理器。
- 安装 Playwright 浏览器。
✨ 主要特性
- 浏览器自动化:利用 Playwright 渲染支持完整 JavaScript 的网页。
- 内容提取:自动识别并提取网页的主要内容区域。
- Markdown 转换:将 HTML 转换为简洁易读的 Markdown 格式。
- 分页支持:通过分页处理大量内容。
- 遵守 robots.txt:在自动抓取时遵循 robots.txt 指令。
- 代理支持:允许通过代理服务器路由请求。
- 支持 Docker:可通过 Docker Hub 和 GitHub Container Registry 获取预构建的 Docker 镜像。
📦 安装指南
1. 使用 uv 安装(推荐)
uv pip install git+https://github.com/ThreatFlux/playwright-fetch.git
# 安装 Playwright 浏览器
uv pip exec playwright install
或者,克隆仓库并安装:
git clone https://github.com/ThreatFlux/playwright-fetch.git
cd playwright-fetch
uv pip install -e .
# 安装 Playwright 浏览器
uv pip exec playwright install
2. 使用 Docker
可以从 Docker Hub 或 GitHub Container Registry 获取预构建的 Docker 镜像:
# 从 Docker Hub 获取
docker pull threatflux/playwright-fetch:latest
# 从 GitHub Container Registry 获取
docker pull ghcr.io/threatflux/playwright-fetch:latest
也可以自行构建:
docker build -t threatflux/playwright-fetch .
📚 详细文档
可用工具
playwright-fetch- 使用 Playwright 浏览器自动化抓取 URL 并将内容提取为 Markdown 格式。url(字符串,必需):要抓取的 URL。max_length(整数,可选):返回的最大字符数(默认:5000)。start_index(整数,可选):从该字符索引开始提取内容(默认:0)。raw(布尔值,可选):获取未经 Markdown 转换的原始内容(默认:false)。wait_for_js(布尔值,可选):等待 JavaScript 执行(默认:true)。
提示信息
- playwright-fetch
- 使用 Playwright 抓取 URL 并将内容提取为 Markdown 格式。
- 参数:
url(字符串,必需):要抓取的 URL。
配置说明
为 Claude.app 配置
在 Claude 设置中添加以下内容:
使用 uvx
"mcpServers": {
"playwright-fetch": {
"command": "uvx",
"args": ["mcp-server-playwright-fetch"]
}
}
使用 Docker
"mcpServers": {
"playwright-fetch": {
"command": "docker",
"args": ["run", "-i", "--rm", "threatflux/playwright-fetch"]
}
}
为 VS Code 配置
手动安装时,在 VS Code 的用户设置(JSON)文件中添加以下 JSON 块:
使用 uvx
{
"mcp": {
"servers": {
"playwright-fetch": {
"command": "uvx",
"args": ["mcp-server-playwright-fetch"]
}
}
}
}
使用 Docker
{
"mcp": {
"servers": {
"playwright-fetch": {
"command": "docker",
"args": ["run", "-i", "--rm", "threatflux/playwright-fetch"]
}
}
}
}
命令行选项
服务器支持以下命令行选项:
--user-agent:自定义 User-Agent 字符串。--ignore-robots-txt:忽略 robots.txt 限制。--proxy-url:请求使用的代理 URL。--headless:以无头模式运行浏览器(默认:True)。--wait-until:指定何时认为导航成功(可选值:"load", "domcontentloaded", "networkidle", "commit",默认:"networkidle")。
💻 使用示例
基础用法
# 使用默认设置运行
uv run mcp-server-playwright-fetch
高级用法
# 使用自定义用户代理和代理运行
uv run mcp-server-playwright-fetch --user-agent="MyCustomAgent/1.0" --proxy-url="http://myproxy:8080"
# 以可见浏览器模式运行以进行调试
uv run mcp-server-playwright-fetch --headless=false
🔧 技术细节
调试方法
可以使用 MCP 检查器调试服务器:
npx @modelcontextprotocol/inspector uvx mcp-server-playwright-fetch
与标准抓取服务器的差异
本实现与标准的抓取 MCP 服务器有以下不同:
- 浏览器自动化:使用 Playwright 渲染 JavaScript 密集型页面。
- 内容提取:尝试从常见页面结构中提取主要内容。
- 等待选项:可配置页面加载策略(等待加载、DOM 内容、网络空闲)。
- 可见浏览器选项:可使用可见浏览器进行调试。
📄 许可证
本项目采用 MIT 许可证。详情请参阅 LICENSE 文件。
👨💻 作者
本项目由 Wyatt Roersma 创建,并得到了 Claude Code 的协助。
Scan to join WeChat group