mcpField
C
Chrome Debug MCP Playwright

Chrome Debug MCP Playwright

本地服务
github.com/robertheadley浏览器自动化4584 周前更新

关于 Chrome Debug MCP Playwright

Chrome Debug MCP Playwright 是基于 Playwright 的浏览器自动化 MCP 服务,并支持 Greasemonkey API。它面向使用 LLM 调试网页的开发者,可管理多标签页、截图并拦截网络请求。

主要功能

  1. 01多标签页创建、切换与关闭
  2. 02Greasemonkey API 支持(GM_addStyle、GM_setValue 等)
  3. 03网络请求拦截、阻止与日志记录
  4. 04按资源类型过滤请求
  5. 05截图捕获
  6. 06分文件的详细日志系统

适用场景

  1. 01使用 LLM 调试网页的界面与脚本行为
  2. 02在页面中注入样式或存储脚本数据
  3. 03拦截图片或 CSS 请求以分析页面加载

MCP 相关

该项目是 MCP 服务,通过 MCP 工具(如 launch_browser、intercept_requests)向 MCP 客户端暴露浏览器控制能力。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Chrome Debug MCP Playwright

一个使用 Playwright 进行浏览器自动化的模型上下文协议(MCP)实现,全面支持 Greasemonkey API。

Chrome Debug Server MCP 服务

功能

核心浏览器功能
  • 启动和管理浏览器
  • 支持多标签页,可创建、切换和关闭
  • 页面导航和交互
  • 截取屏幕截图
Greasemonkey API 支持
  • 使用 GM_addStyle 注入 CSS
  • 使用 GM_getValue/GM_setValue 存储数据
  • 使用 GM_deleteValue 清理存储
  • 使用 GM_notification 发送桌面通知
  • 使用 GM_setClipboard 操作剪贴板
  • 使用 GM_xmlhttpRequest 发送跨源请求
资源管理
  • 拦截网络请求
  • 阻止、修改和记录请求
  • 按资源类型筛选
调试功能
  • 详细的日志系统
  • 日志文件整理
  • 简洁的界面输出

安装

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"

实现细节

日志系统
  • 将所有调试输出重定向到日志文件
  • 为日志条目添加时间戳
  • 将日志整理在 logs 目录中
  • 简洁的界面输出
错误处理
  • 详细的错误日志记录
  • 出错时进行适当的清理
  • 资源管理

依赖项

  • Playwright:浏览器自动化
  • @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 许可证 - 详情请参阅 LICENSE 文件。

贡献

欢迎贡献!详情请参阅我们的贡献指南。

致谢

基于 Robert Headley 最初开发的 chrome-debug-mcp。

=======

parent of 64acbb3 (Add files via upload) ======= parent of 64acbb3 (Add files via upload) ======= parent of 64acbb3 (Add files via upload) ======= parent of 64acbb3 (Add files via upload) ======= parent of 64acbb3 (Add files via upload) ======= parent of 64acbb3 (Add files via upload) ======= parent of 64acbb3 (Add files via upload)

Chrome Debug MCP 服务

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

<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD

=======

parent of 64acbb3 (Add files via upload) ======= parent of 64acbb3 (Add files via upload) ======= parent of 64acbb3 (Add files via upload) ======= parent of 64acbb3 (Add files via upload) ======= parent of 64acbb3 (Add files via upload) ======= parent of 64acbb3 (Add files via upload)

Chrome Debug Server MCP 服务

<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD

parent of 64acbb3 (Add files via upload) ======= parent of 64acbb3 (Add files via upload) ======= parent of 64acbb3 (Add files via upload) ======= parent of 64acbb3 (Add files via upload) ======= parent of 64acbb3 (Add files via upload) ======= parent of 64acbb3 (Add files via upload) ======= parent of 64acbb3 (Add files via upload)

功能

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

<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD

=======

parent of 64acbb3 (Add files via upload) ======= parent of 64acbb3 (Add files via upload) ======= parent of 64acbb3 (Add files via upload) ======= parent of 64acbb3 (Add files via upload) ======= parent of 64acbb3 (Add files via upload) ======= parent of 64acbb3 (Add files via upload)

页面自动化
  • 点击、输入并与页面元素交互
  • 处理下拉菜单和表单输入
  • 悬停并等待元素
  • 截取整个页面或元素的屏幕截图
  • 在页面之间导航
  • 设置视口大小和设备模拟
  • 提取元素的文本和属性
标签页管理
  • 列出所有打开的标签页及其 ID 和 URL
  • 使用指定的 URL 打开新标签页
  • 按 ID 关闭标签页
  • 在标签页之间切换
  • 跟踪并管理多个标签页状态

<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD

parent of 64acbb3 (Add files via upload) ======= parent of 64acbb3 (Add files via upload) ======= parent of 64acbb3 (Add files via upload) ======= parent of 64acbb3 (Add files via upload) ======= parent of 64acbb3 (Add files via upload) ======= parent of 64acbb3 (Add files via upload) ======= parent of 64acbb3 (Add files via upload)

调试功能
  • 通过 Chrome DevTools Protocol (CDP) 进行远程调试
  • 捕获并监控控制台日志
  • 在页面上下文中执行 JavaScript
  • 实时流式输出控制台内容
用户脚本支持
  • 将用户脚本注入网页
  • 支持 Greasemonkey 风格的 API:
    • GM_setValue/GM_getValue 用于持久化存储
    • GM_addStyle 用于注入 CSS
    • GM_xmlhttpRequest 用于跨源请求
    • GM_openInTab 用于创建新标签页
    • GM_registerMenuCommand 用于菜单命令
扩展集成
  • 加载未打包的扩展
  • 保留扩展状态和配置
  • 支持默认 Chrome 配置文件中的扩展
  • 选择性启用或禁用扩展

安装

前提条件
安装 Roo Code Extension
  1. 打开 Visual Studio Code
  2. 转到扩展(Ctrl+Shift+X)
  3. 搜索“Roo Code”
  4. 点击安装
设置 Chrome Debug MCP Server
  1. 克隆此仓库:

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

    npm install
    
  3. 构建项目:

    npm run build
    
  4. 在 Roo Code 中配置: 添加到 cline_mcp_settings.json:

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

用法

<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD

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

parent of 64acbb3 (Add files via upload) ======= 有关所有可用命令、工具和函数的完整参考,请参阅 COMMANDS.md。

parent of 64acbb3 (Add files via upload) ======= 有关所有可用命令、工具和函数的完整参考,请参阅 COMMANDS.md。

parent of 64acbb3 (Add files via upload) ======= 有关所有可用命令、工具和函数的完整参考,请参阅 COMMANDS.md。

parent of 64acbb3 (Add files via upload) ======= 有关所有可用命令、工具和函数的完整参考,请参阅 COMMANDS.md。

parent of 64acbb3 (Add files via upload) ======= 有关所有可用命令、工具和函数的完整参考,请参阅 COMMANDS.md。

parent of 64acbb3 (Add files via upload) ======= 有关所有可用命令、工具和函数的完整参考,请参阅 COMMANDS.md。

parent of 64acbb3 (Add files via upload)

基本 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
  }
})

<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD

=======

parent of 64acbb3 (Add files via upload) ======= parent of 64acbb3 (Add files via upload) ======= parent of 64acbb3 (Add files via upload) ======= parent of 64acbb3 (Add files via upload) ======= parent of 64acbb3 (Add files via upload) ======= parent of 64acbb3 (Add files via upload)

页面交互示例
点击元素
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"
  }
})

<<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD

parent of 64acbb3 (Add files via upload) ======= parent of 64acbb3 (Add files via upload) ======= parent of 64acbb3 (Add files via upload) ======= parent of 64acbb3 (Add files via upload) ======= parent of 64acbb3 (Add files via upload) ======= parent of 64acbb3 (Add files via upload) ======= parent of 64acbb3 (Add files via upload)

依赖项

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

许可证

本项目采用 MIT 许可证,详情请参阅 LICENSE 文件。

贡献

有关如何参与贡献的详情,请参阅我们的贡献指南。

致谢

parent of 8a57443 (Merge pull request #4 from robertheadley/feature/puppeteer-commands) =======

parent of 64acbb3 (Add files via upload) =======

parent of 64acbb3 (Add files via upload) =======

parent of 64acbb3 (Add files via upload) =======

parent of 64acbb3 (Add files via upload) =======

parent of 64acbb3 (Add files via upload) =======

parent of 64acbb3 (Add files via upload) =======

parent of 64acbb3 (Add files via upload)

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。