Chrome Debug MCP Server
通过模型上下文协议控制具有调试功能的 Chrome 浏览器,从而实现页面自动化、扩展程序管理和用户脚本注入。
Tools
hover
Hover over an element
click
Click an element on the page
type
Type text into an input field
select
Select an option in a dropdown
launch_chrome
Launch Chrome in debug mode
get_console_logs
Get console logs from Chrome
evaluate
Evaluate JavaScript in Chrome
wait_for_selector
Wait for an element to appear on the page
screenshot
Take a screenshot of the page or element
navigate
Navigate to a URL
get_text
Get text content of an element
get_attribute
Get attribute value of an element
set_viewport
Set the viewport size and properties
README
Chrome Debug MCP Playwright
一个使用 Playwright 实现的浏览器自动化模型上下文协议 (MCP),具有完整的 Greasemonkey API 支持。 <a href="https://glama.ai/mcp/servers/nguhnsghor">
<img width="380" height="200" src="https://glama.ai/mcp/servers/nguhnsghor/badge" alt="Chrome Debug Server MCP server" />
</a>
功能
核心浏览器功能
- 浏览器启动和管理
- 多标签页支持,具有创建/切换/关闭功能
- 页面导航和交互
- 屏幕截图捕获
Greasemonkey API 支持
- GM_addStyle 用于 CSS 注入
- GM_getValue/GM_setValue 用于数据存储
- GM_deleteValue 用于存储清理
- GM_notification 用于桌面通知
- GM_setClipboard 用于剪贴板操作
- GM_xmlhttpRequest 用于跨域请求
资源管理
- 网络请求拦截
- 请求阻止、修改和日志记录
- 资源类型过滤
调试功能
- 详细的日志记录系统
- 日志文件组织
- 简洁的界面输出
安装
npm install chrome-debug-mcp-playwright
快速开始
// 启动浏览器
tool browser launch_browser --url "https://example.com" --browserType "chromium"
// 使用 GM 函数
tool browser gm_setValue --key "setting" --value "test"
tool browser gm_getValue --key "setting"
// 拦截请求
tool browser intercept_requests --patterns ["*.jpg", "*.css"] --action "block"
文档
- 命令 - 包含示例的详细命令文档
- 完整的命令列表和使用示例可在 COMMANDS.md 中找到
核心功能
浏览器管理
// 启动浏览器
tool browser launch_browser --url "https://example.com"
// 创建新标签页
tool browser create_tab --url "https://example.com"
// 切换标签页
tool browser switch_tab --index 1
Greasemonkey API
// 添加自定义样式
tool browser gm_addStyle --css "body { background: #f0f0f0; }"
// 存储数据
tool browser gm_setValue --key "setting" --value "test"
// 发起跨域请求
tool browser gm_xmlhttpRequest --url "https://api.example.com/data" --method "GET"
资源拦截
// 阻止图片加载
tool browser intercept_requests --patterns ["*.jpg", "*.png"] --action "block"
// 记录所有 CSS 请求
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 Server
一个用于控制 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) <a href="https://glama.ai/mcp/servers/nguhnsghor"> <img width="380" height="200" src="https://glama.ai/mcp/servers/nguhnsghor/badge" alt="Chrome Debug Server MCP server" /> </a>
<<<<<<< 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 的“自动化控制”横幅
<<<<<<< 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 协议 (CDP) 进行远程调试
- 控制台日志捕获和监控
- 在页面上下文中评估 JavaScript
- 实时控制台输出流
用户脚本支持
- 将用户脚本注入到网页中
- Greasemonkey 风格的 API 支持:
GM_setValue
/GM_getValue
用于持久存储GM_addStyle
用于 CSS 注入GM_xmlhttpRequest
用于跨域请求GM_openInTab
用于创建新标签页GM_registerMenuCommand
用于菜单命令
扩展集成
- 加载未打包的扩展
- 维护扩展状态和配置
- 支持默认 Chrome 配置文件扩展
- 选择性扩展启用/禁用
安装
前提条件
- Node.js (v14 或更高版本)
- 已安装 Chrome 浏览器
- Visual Studio Code
- Roo Code Extension
安装 Roo Code Extension
- 打开 Visual Studio Code
- 转到扩展 (Ctrl+Shift+X)
- 搜索 "Roo Code"
- 单击安装
设置 Chrome Debug MCP Server
-
克隆此存储库:
git clone https://github.com/yourusername/chrome-debug-mcp.git cd chrome-debug-mcp
-
安装依赖项:
npm install
-
构建项目:
npm run build
-
在 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)
依赖项
此项目使用以下开源软件包:
- Puppeteer - Chrome 自动化库
- chrome-remote-interface - Chrome DevTools 协议客户端
- @modelcontextprotocol/sdk - 用于服务器实现的 MCP SDK
许可证
此项目已获得 MIT 许可证的许可 - 有关详细信息,请参见 LICENSE 文件。
贡献
有关做出贡献的详细信息,请参见我们的贡献指南。
致谢
- Chrome DevTools 协议
- Greasemonkey API <<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD <<<<<<< HEAD
- Model Context Protocol
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)
推荐服务器
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
Excel MCP Server
一个模型上下文协议服务器,使 AI 助手能够读取和写入 Microsoft Excel 文件,支持诸如 xlsx、xlsm、xltx 和 xltm 等格式。
Playwright MCP Server
提供一个利用模型上下文协议的服务器,以实现类人浏览器的自动化,该服务器使用 Playwright,允许控制浏览器行为,例如导航、元素交互和滚动。
MCP Package Docs Server
促进大型语言模型高效访问和获取 Go、Python 和 NPM 包的结构化文档,通过多语言支持和性能优化来增强软件开发。
@kazuph/mcp-fetch
用于获取网页内容和处理图像的模型上下文协议服务器。这使得 Claude Desktop(或任何 MCP 客户端)能够适当地获取网页内容和处理图像。
Claude Code MCP
一个实现了 Claude Code 作为模型上下文协议(Model Context Protocol, MCP)服务器的方案,它可以通过标准化的 MCP 接口来使用 Claude 的软件工程能力(代码生成、编辑、审查和文件操作)。
@kazuph/mcp-taskmanager
用于任务管理的模型上下文协议服务器。它允许 Claude Desktop(或任何 MCP 客户端)在基于队列的系统中管理和执行任务。
Apple MCP Server
通过 MCP 协议与 Apple 应用(如“信息”、“备忘录”和“通讯录”)进行交互,从而使用自然语言发送消息、搜索和打开应用内容。