README
🚀 Puppeteer-Extra MCP 服务器
Puppeteer-Extra MCP 服务器是一个运用 Puppeteer-Extra 与 Stealth 插件来增强浏览器自动化能力的模型上下文协议(Model Context Protocol)服务器。它能让大语言模型(LLM)以更接近人类的行为方式与网页交互,有效避免被识别为自动化程序。
✨ 主要特性
- 借助 Puppeteer-Extra 实现增强型浏览器自动化。
- 通过 Stealth 模式规避机器人检测。
- 提供页面和元素的截图功能。
- 支持浏览器控制台日志记录与 JavaScript 代码执行。
- 具备全方位的交互方法,如点击、填充、选择、悬停等。
📦 安装指南
克隆仓库并安装依赖
# 克隆仓库
git clone <仓库地址>
cd puppeteer_extra
# 安装依赖项
npm install
# 复制环境文件
cp .env.example .env.development
本地运行
# 开发模式(非无头浏览器)
npm run dev
# 生产模式(无头浏览器)
npm run prod
构建项目
npm run build
构建 Docker 镜像
docker build -t mcp/puppeteer-extra .
使用 Docker 运行
docker run -i --rm --init -e DOCKER_CONTAINER=true mcp/puppeteer-extra
📚 详细文档
工具
| 工具名称 | 功能 | 输入参数 |
| ---- | ---- | ---- |
| puppeteer_navigate | 浏览器中导航至任意 URL | url (字符串) |
| puppeteer_screenshot | 捕获页面或特定元素的截图 | name (字符串,必填):截图名称selector (字符串,可选):CSS 选择器(用于元素截图)width (数字,可选,默认值:800):截图宽度height (数字,可选,默认值:600):截图高度 |
| puppeteer_click | 点击页面上的元素 | selector (字符串):待点击的元素选择器 |
| puppeteer_hover | 悬停在页面上的元素上 | selector (字符串):待悬停的元素选择器 |
| puppeteer_fill | 填充输入字段内容 | selector (字符串):输入框选择器value (字符串):填充的内容 |
| puppeteer_select | 选择带有 SELECT 标签的元素 | selector (字符串):待选择的元素选择器value (字符串):选择的值 |
| puppeteer_evaluate | 在浏览器控制台中执行 JavaScript 代码 | script (字符串):待执行的 JavaScript 脚本 |
资源
服务器提供两种类型的资源访问:
- 控制台日志 (
console://logs):包含浏览器控制台输出的所有文本信息。 - 截图 (
screenshot://<名称>):页面或元素的 PNG 格式截图图像,可通过截图时指定的名称访问。
配置(适用于 Claude Desktop)
Docker 配置
{
"mcpServers": {
"puppeteer": {
"command": "docker",
"args": ["run", "-i", "--rm", "--init", "-e", "DOCKER_CONTAINER=true", "mcp/puppeteer-extra"]
}
}
}
NPX 配置
{
"mcpServers": {
"puppeteer": {
"command": "npx",
"args": ["-y", "MCP_puppeteer_extra"]
}
}
}
📄 许可证
此 MCP 服务器采用 MIT License 开源协议进行许可。
微信扫一扫