浏览器自动化工具

一个基于Playwright的浏览器自动化工具,支持完整的Greasemonkey API,适用于网页测试、数据抓取和自动化任务。

  • by robertheadley
  • JavaScript
  • 本地部署
  • 45 星标
  • 更新于
在 GitHub 查看 robertheadley/chrome-debug-mcp

使用说明

Chrome调试MCP剧作家

模型上下文协议(MCP)实现,用于使用Playwright实现浏览器自动化,并完全支持Greasemonkey API。

特性

核心浏览器功能

  • 浏览器启动和管理
  • 具有创建/切换/关闭功能的多标签支持
  • 页面导航和交互
  • 屏幕截图

Greasemonkey API支持

  • GM_addStyle用于CSS注入
  • 数据存储的GM_getValue/GM_setValue
  • 用于存储清理的GM_deleteValue
  • 桌面通知的GM_通知
  • GM_setClipboard用于剪贴板操作
  • GM_xmlhttp跨源请求请求

资源管理

  • 网络请求拦截
  • 请求阻止、修改和日志记录
  • 资源类型筛选

调试功能

  • 详细的测井系统
  • 日志文件组织
  • 干净的接口输出

安装

npm install chrome-debug-mcp-playwright

快速开始

// Launch browser
tool browser launch_browser --url "https://example.com" --browserType "chromium"

// Use GM functions
tool browser gm_setValue --key "setting" --value "test"
tool browser gm_getValue --key "setting"

// Intercept requests
tool browser intercept_requests --patterns ["*.jpg", "*.css"] --action "block"

文档

  • 命令 -带示例的详细命令文档
  • COMMANDS.md中提供了完整的命令列表和使用示例

核心功能

浏览器管理

// Launch browser
tool browser launch_browser --url "https://example.com"

// Create new tab
tool browser create_tab --url "https://example.com"

// Switch between tabs
tool browser switch_tab --index 1

Greasemonkey API

// Add custom styles
tool browser gm_addStyle --css "body { background: #f0f0f0; }"

// Store data
tool browser gm_setValue --key "setting" --value "test"

// Make cross-origin requests
tool browser gm_xmlhttpRequest --url "https://api.example.com/data" --method "GET"

资源拦截

// Block image loading
tool browser intercept_requests --patterns ["*.jpg", "*.png"] --action "block"

// Log all CSS requests
tool browser intercept_requests --patterns ["*.css"] --action "log"

实现细节

记录系统

  • 所有调试输出都重定向到日志文件
  • 带时间戳的条目
  • 在日志目录中组织
  • 干净的接口输出

错误处理

  • 详细的错误记录
  • 正确清理错误
  • 资源管理

依赖项

  • 剧作家:浏览器自动化
  • @modelcontextprotocol/sdk:MCP实现

发展

先决条件

  • Node.js 16或更高版本
  • npm 7或更高版本

设置

git clone https://github.com/yourusername/chrome-debug-mcp-playwright.git
cd chrome-debug-mcp-playwright
npm install

许可证

MIT许可证-有关详细信息,请参阅许可证文件。

贡献

我们欢迎捐款!请查看我们的 贡献指南 了解详情。

致谢

基于原始 chrome调试mcp 罗伯特·海德利。

=======

64acbb3的父级(通过上传添加文件) ======= 64acbb3的父级(通过上传添加文件) ======= 64acbb3的父级(通过上传添加文件) ======= 64acbb3的父级(通过上传添加文件) ======= 64acbb3的父级(通过上传添加文件) ======= 64acbb3的父级(通过上传添加文件) ======= 64acbb3的父级(通过上传添加文件)

Chrome调试MCP服务器

用于控制Chrome的模型上下文协议(MCP)服务器,具有调试功能、用户脚本注入和扩展支持。

<<<<<<<头 <<<<<<<头 <<<<<<<头 <<<<<<<头 <<<<<<<头 <<<<<<<头 <<<<<<<头

=======

64acbb3的父级(通过上传添加文件) ======= 64acbb3的父级(通过上传添加文件) ======= 64acbb3的父级(通过上传添加文件) ======= 64acbb3的父级(通过上传添加文件) ======= 64acbb3的父级(通过上传添加文件) ======= 64acbb3的父级(通过上传添加文件)

<<<<<<<头 <<<<<<<头 <<<<<<<头 <<<<<<<头 <<<<<<<头 <<<<<<<头

64acbb3的父级(通过上传添加文件) ======= 64acbb3的父级(通过上传添加文件) ======= 64acbb3的父级(通过上传添加文件) ======= 64acbb3的父级(通过上传添加文件) ======= 64acbb3的父级(通过上传添加文件) ======= 64acbb3的父级(通过上传添加文件) ======= 64acbb3的父级(通过上传添加文件)

特性

Chrome控件

  • 使用自定义配置启动Chrome
  • 支持自定义Chrome可执行路径
  • 用户配置文件管理(默认或自定义用户数据目录)
  • 扩展支持和管理
  • 禁用Chrome的“自动控制”横幅

<<<<<<<头 <<<<<<<头 <<<<<<<头 <<<<<<<头 <<<<<<<头 <<<<<<<头 <<<<<<<头

=======

64acbb3的父级(通过上传添加文件) ======= 64acbb3的父级(通过上传添加文件) ======= 64acbb3的父级(通过上传添加文件) ======= 64acbb3的父级(通过上传添加文件) ======= 64acbb3的父级(通过上传添加文件) ======= 64acbb3的父级(通过上传添加文件)

页面自动化

  • 单击、键入并与页面元素交互
  • 处理下拉菜单和表单输入
  • 悬停并等待元素
  • 对整个页面或元素进行截图
  • 在页面之间导航
  • 设置视口大小和设备模拟
  • 从元素中提取文本和属性

选项卡管理

  • 列出所有打开的标签及其ID和URL
  • 使用指定的URL打开新选项卡
  • 按ID关闭选项卡
  • 在选项卡之间切换
  • 跟踪和管理多个选项卡状态

<<<<<<<头 <<<<<<<头 <<<<<<<头 <<<<<<<头 <<<<<<<头 <<<<<<<头

64acbb3的父级(通过上传添加文件) ======= 64acbb3的父级(通过上传添加文件) ======= 64acbb3的父级(通过上传添加文件) ======= 64acbb3的父级(通过上传添加文件) ======= 64acbb3的父级(通过上传添加文件) ======= 64acbb3的父级(通过上传添加文件) ======= 64acbb3的父级(通过上传添加文件)

调试功能

  • 通过Chrome DevTools协议(CDP)进行远程调试
  • 控制台日志捕获和监控
  • 页面上下文中的JavaScript评估
  • 实时控制台输出流

用户脚本支持

  • 将用户脚本注入网页
  • Greasemonkey-style API支持:
    • GM_setValue/GM_getValue 用于持久存储
    • GM_addStyle 用于CSS注入
    • GM_xmlhttpRequest 用于跨来源请求
    • GM_openInTab 用于创建新选项卡
    • GM_registerMenuCommand 用于菜单命令

扩展集成

  • 加载未打包的扩展
  • 维护扩展状态和配置
  • 支持默认Chrome配置文件扩展
  • 选择性扩展启用/禁用

安装

先决条件

安装Roo代码扩展

  1. 打开Visual Studio代码
  2. 转到扩展(Ctrl+Shift+X)
  3. 搜索“Roo Code”
  4. 单击安装

设置Chrome调试MCP服务器

  1. 克隆此存储库:

    git clone https://github.com/yourusername/chrome-debug-mcp.git
    cd chrome-debug-mcp
    
  2. 安装依赖项:

    npm install
    
  3. 构建项目:

    npm run build
    
  4. 在Roo代码中配置: 增添 cline_mcp_settings.json:

    {
      "mcpServers": {
        "chrome-debug": {
          "command": "node",
          "args": ["path/to/chrome-debug-mcp/build/index.js"],
          "disabled": false,
          "alwaysAllow": []
        }
      }
    }
    

用法

<<<<<<<头 <<<<<<<头 <<<<<<<头 <<<<<<<头 <<<<<<<头 <<<<<<<头 <<<<<<<头

有关所有可用命令、工具和函数的完整参考,请参阅 COMMANDS.md.

64acbb3的父级(通过上传添加文件) ======= 有关所有可用命令、工具和函数的完整参考,请参阅 COMMANDS.md.

64acbb3的父级(通过上传添加文件) ======= 有关所有可用命令、工具和函数的完整参考,请参阅 COMMANDS.md.

64acbb3的父级(通过上传添加文件) ======= 有关所有可用命令、工具和函数的完整参考,请参阅 COMMANDS.md.

64acbb3的父级(通过上传添加文件) ======= 有关所有可用命令、工具和函数的完整参考,请参阅 COMMANDS.md.

64acbb3的父级(通过上传添加文件) ======= 有关所有可用命令、工具和函数的完整参考,请参阅 COMMANDS.md.

64acbb3的父级(通过上传添加文件) ======= 有关所有可用命令、工具和函数的完整参考,请参阅 COMMANDS.md.

64acbb3的父级(通过上传添加文件)

Chrome基本启动

use_mcp_tool({
  server_name: "chrome-debug",
  tool_name: "launch_chrome",
  arguments: {
    executablePath: "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe",
    url: "https://example.com"
  }
})

使用自定义配置文件启动

use_mcp_tool({
  server_name: "chrome-debug",
  tool_name: "launch_chrome",
  arguments: {
    executablePath: "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe",
    userDataDir: "path/to/chrome/profile",
    disableAutomationControlled: true
  }
})

注入用户脚本

use_mcp_tool({
  server_name: "chrome-debug",
  tool_name: "launch_chrome",
  arguments: {
    url: "https://example.com",
    userscriptPath: "path/to/userscript.js"
  }
})

评估JavaScript

use_mcp_tool({
  server_name: "chrome-debug",
  tool_name: "evaluate",
  arguments: {
    expression: "document.title"
  }
})

获取控制台日志

use_mcp_tool({
  server_name: "chrome-debug",
  tool_name: "get_console_logs",
  arguments: {
    clear: true
  }
})

<<<<<<<头 <<<<<<<头 <<<<<<<头 <<<<<<<头 <<<<<<<头 <<<<<<<头 <<<<<<<头

=======

64acbb3的父级(通过上传添加文件) ======= 64acbb3的父级(通过上传添加文件) ======= 64acbb3的父级(通过上传添加文件) ======= 64acbb3的父级(通过上传添加文件) ======= 64acbb3的父级(通过上传添加文件) ======= 64acbb3的父级(通过上传添加文件)

页面交互示例

单击元素

use_mcp_tool({
  server_name: "chrome-debug",
  tool_name: "click",
  arguments: {
    selector: "#submit-button",
    delay: 500
  }
})

输入

use_mcp_tool({
  server_name: "chrome-debug",
  tool_name: "type",
  arguments: {
    selector: "#search-input",
    text: "search query",
    delay: 100
  }
})

从下拉菜单中选择

use_mcp_tool({
  server_name: "chrome-debug",
  tool_name: "select",
  arguments: {
    selector: "#country-select",
    value: "US"
  }
})

等待元素

use_mcp_tool({
  server_name: "chrome-debug",
  tool_name: "wait_for_selector",
  arguments: {
    selector: ".loading-complete",
    visible: true,
    timeout: 5000
  }
})

屏幕截图

use_mcp_tool({
  server_name: "chrome-debug",
  tool_name: "screenshot",
  arguments: {
    path: "screenshot.png",
    fullPage: true
  }
})

设置视口大小

use_mcp_tool({
  server_name: "chrome-debug",
  tool_name: "set_viewport",
  arguments: {
    width: 1920,
    height: 1080,
    deviceScaleFactor: 1
  }
})

选项卡管理示例

列出所有选项卡

use_mcp_tool({
  server_name: "chrome-debug",
  tool_name: "list_tabs",
  arguments: {}
})

打开新选项卡

use_mcp_tool({
  server_name: "chrome-debug",
  tool_name: "new_tab",
  arguments: {
    url: "https://example.com"
  }
})

切换到选项卡

use_mcp_tool({
  server_name: "chrome-debug",
  tool_name: "switch_tab",
  arguments: {
    tabId: "tab-id-from-list-tabs"
  }
})

关闭标签

use_mcp_tool({
  server_name: "chrome-debug",
  tool_name: "close_tab",
  arguments: {
    tabId: "tab-id-from-list-tabs"
  }
})

<<<<<<<头 <<<<<<<头 <<<<<<<头 <<<<<<<头 <<<<<<<头 <<<<<<<头

64acbb3的父级(通过上传添加文件) ======= 64acbb3的父级(通过上传添加文件) ======= 64acbb3的父级(通过上传添加文件) ======= 64acbb3的父级(通过上传添加文件) ======= 64acbb3的父级(通过上传添加文件) ======= 64acbb3的父级(通过上传添加文件) ======= 64acbb3的父级(通过上传添加文件)

依赖项

本项目使用以下开源软件包:

许可证

此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。

贡献

查看我们的 贡献指南 有关捐款的详细信息。

致谢

8a57443的父级(合并来自robetheadley/feature/puppeteer命令的pull请求#4) =======

64acbb3的父级(通过上传添加文件) =======

64acbb3的父级(通过上传添加文件) =======

64acbb3的父级(通过上传添加文件) =======

64acbb3的父级(通过上传添加文件) =======

64acbb3的父级(通过上传添加文件) =======

64acbb3的父级(通过上传添加文件) =======

64acbb3的父级(通过上传添加文件)