Puppeteer-Extra MCP 服务器借助 Puppeteer-Extra 和 Stealth 插件,增强了浏览器自动化能力。它基于模型上下文协议(Model Context Protocol),能让大型语言模型以更接近人类的行为方式与网页交互,有效避免被识别为自动化操作。
# 克隆仓库
git clone
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://):捕获页面元素的 PNG 图像,可通过指定的截图名称访问。# 开发模式(非无头浏览器)
npm run dev
# 生产模式(无头浏览器)
npm run prod
npm run build
docker build -t mcp/puppeteer-extra .
docker run -i --rm --init -e DOCKER_CONTAINER=true mcp/puppeteer-extra
{
"mcpServers": {
"puppeteer": {
"command": "docker",
"args": ["run", "-i", "--rm", "--init", "-e", "DOCKER_CONTAINER=true", "mcp/puppeteer-extra"]
}
}
}
{
"mcpServers": {
"puppeteer": {
"command": "npx",
"args": ["-y", "MCPuppeteerExtra"]
}
}
}
[此处应添加具体的许可证信息]