README
🚀 Puppeteer-Extra MCP 服务器
Puppeteer-Extra MCP 服务器借助 Puppeteer-Extra 和 Stealth 插件,增强了浏览器自动化能力。它基于模型上下文协议(Model Context Protocol),能让大型语言模型以更接近人类的行为方式与网页交互,有效避免被识别为自动化操作。
✨ 主要特性
- 增强型浏览器自动化功能:具备强大的自动化能力,满足多样化的网页操作需求。
- Stealth 模式反检测:通过 Stealth 模式,有效避免被反 - bot 检测机制识别。
- 截图功能:支持对页面或元素进行截图。
- 日志记录与代码执行:可记录浏览器控制台日志,并能在控制台执行 JavaScript 代码。
- 全套互动方法:提供点击、填写、选择、悬停等完整的互动操作。
📦 安装指南
# 克隆仓库
git clone <repository-url>
cd puppeteer_extra
# 安装依赖项
npm install
# 复制环境文件
cp .env.example .env.development
💻 使用示例
基础用法
以下是一些常见工具的使用示例:
// 使用 puppeteer_navigate 导航到指定 URL
// 假设我们要导航到百度
puppeteer_navigate({ url: 'https://www.baidu.com' });
// 使用 puppeteer_click 点击页面上的元素
// 假设页面上有一个 id 为 'submit-button' 的按钮
puppeteer_click({ selector: '#submit-button' });
// 使用 puppeteer_fill 填写输入字段
// 假设页面上有一个 id 为 'username' 的输入框,我们要填写 'testuser'
puppeteer_fill({ selector: '#username', value: 'testuser' });
高级用法
// 在浏览器控制台执行复杂的 JavaScript 代码
// 例如,获取页面上所有链接的 href 属性
const script = `
const links = document.querySelectorAll('a');
const hrefs = [];
links.forEach(link => {
hrefs.push(link.href);
});
return hrefs;
`;
puppeteer_evaluate({ script });
📚 详细文档
组件
工具
| 工具名称 | 功能 | 输入参数 |
| ---- | ---- | ---- |
| 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://<name>):捕获页面元素的 PNG 图像,可通过指定的截图名称访问。
开发
本地运行
# 开发模式(非无头浏览器)
npm run dev
# 生产模式(无头浏览器)
npm run prod
构建
npm run build
Docker
构建 Docker 镜像
docker build -t mcp/puppeteer-extra .
使用 Docker 运行
docker run -i --rm --init -e DOCKER_CONTAINER=true mcp/puppeteer-extra
配置(适用于 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", "MCPuppeteerExtra"]
}
}
}
📄 许可证
[此处应添加具体的许可证信息]
微信扫一扫