Back to MCP directory
publicPublicdnsLocal runtime

MCP_puppeteer_extra

一个基于Puppeteer-Extra的MCP服务,提供增强的浏览器自动化能力,支持隐身模式避免检测,包含页面交互、截图和脚本执行等功能。

article

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 脚本 |

资源

服务器提供两种类型的资源访问:

  1. 控制台日志 (console://logs):浏览器控制台输出的文本格式信息,包含所有浏览器控制台消息。
  2. 截图 (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"]
    }
  }
}

📄 许可证

[此处应添加具体的许可证信息]

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client