使用说明
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配置文件扩展
- 选择性扩展启用/禁用
安装
先决条件
- Node.js (v14或更高版本)
- 铬 浏览器已安装
- Visual Studio Code
- Roo代码扩展
安装Roo代码扩展
- 打开Visual Studio代码
- 转到扩展(Ctrl+Shift+X)
- 搜索“Roo Code”
- 单击安装
设置Chrome调试MCP服务器
-
克隆此存储库:
git clone https://github.com/yourusername/chrome-debug-mcp.git cd chrome-debug-mcp -
安装依赖项:
npm install -
构建项目:
npm run build -
在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的父级(通过上传添加文件)
依赖项
本项目使用以下开源软件包:
- 操纵者 -Chrome自动化库
- chrome远程接口 -Chrome DevTools协议客户端
- @模型上下文协议/sdk -用于服务器实现的MCP SDK
许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。
贡献
查看我们的 贡献指南 有关捐款的详细信息。
致谢
- Chrome DevTools协议
- Greasemonkey API <<<<<<<头 <<<<<<<头 <<<<<<<头 <<<<<<<头 <<<<<<<头 <<<<<<<头 <<<<<<<头
- 模型上下文协议
8a57443的父级(合并来自robetheadley/feature/puppeteer命令的pull请求#4) =======
64acbb3的父级(通过上传添加文件) =======
64acbb3的父级(通过上传添加文件) =======
64acbb3的父级(通过上传添加文件) =======
64acbb3的父级(通过上传添加文件) =======
64acbb3的父级(通过上传添加文件) =======
64acbb3的父级(通过上传添加文件) =======
64acbb3的父级(通过上传添加文件)