技能详情(站内镜像,无评论)
许可证:MIT-0
MIT-0 ·免费使用、修改和重新分发。无需归因。
版本:v1.0.0
统计:⭐ 0 · 28 · 0 current installs · 0 all-time installs
⭐ 0
安装量(当前) 0
🛡 VirusTotal :良性 · OpenClaw :可疑
Package:andeymei/chrome-devtools-mcp-manager
安全扫描(ClawHub)
- VirusTotal :良性
- OpenClaw :可疑
OpenClaw 评估
The skill's instructions generally match a Chrome/MCP management purpose, but there are some inconsistencies and minor risks (notably reliance on runtime npx installs and missing declared binaries) that you should understand before installing.
目的
The SKILL.md describes managing OpenClaw's built-in Chrome and a chrome-devtools-mcp MCP server — that matches the name/description. However the instructions assume the presence of tools (npx, mcporter) without listing them in the declared requirements; that mismatch is sloppy and worth flagging because the skill implicitly depends on those tools being available.
说明范围
Instructions stay within browser/MCP management (status/open/stop, check local CDP endpoint, configure mcporter). They also recommend using evaluate_script (execute JavaScript) which is normal for automation but can access page local data — this is expected for a browser automation tool but is a sensitive capability. The SKILL.md does not instruct reading unrelated system files or secrets.
安装机制
No formal install spec is provided, but the docs instruct using `npx chrome-devtools-mcp@latest` in mcporter/clients. That means runtime code is fetched from the npm registry (latest tag) when mcporter runs. Fetching unpinned packages at runtime can introduce supply-chain risk; the skill does not declare or pin a specific package/version and does not declare npx as a required binary.
证书
The skill does not request credentials or config paths. It suggests setting non-sensitive environment flags (CHROME_DEVTOOLS_MCP_NO_USAGE_STATISTICS, DEBUG) which are proportional to the task. No secret-env variables are requested.
持久
always is false and the skill is instruction-only; it does not request persistent or elevated platform privileges and does not modify other skills' configs. Autonomous invocation is allowed by default but not combined with other high-risk factors.
安装(复制给龙虾 AI)
将下方整段复制到龙虾中文库对话中,由龙虾按 SKILL.md 完成安装。
请把本段交给龙虾中文库(龙虾 AI)执行:为本机安装 OpenClaw 技能「Chrome DevTools MCP Manager」。简介:Manage chrome-devtools-mcp service and OpenClaw's built-in Chrome browser for M…。
请 fetch 以下地址读取 SKILL.md 并按文档完成安装:https://raw.githubusercontent.com/openclaw/skills/refs/heads/main/skills/andeymei/chrome-devtools-mcp-manager/SKILL.md
(来源:yingzhi8.cn 技能库)
SKILL.md
---
name: chrome-devtools-mcp-manager
description: Manage chrome-devtools-mcp service and OpenClaw's built-in Chrome browser for MCP-based browser automation. Use when user needs to use chrome-devtools-mcp functionality, ensure the browser is ready for MCP operations, or manage the browser/MCP lifecycle.
---
# Chrome DevTools MCP Manager
Manage OpenClaw's built-in Chrome browser and chrome-devtools-mcp integration for browser automation via MCP protocol.
## Overview
This skill manages two components:
1. **OpenClaw's Built-in Chrome** (`openclaw` profile) - The browser instance
2. **chrome-devtools-mcp** - The MCP server that exposes browser control tools
## Architecture
```
┌─────────────────┐ ┌─────────────────────┐ ┌─────────────────┐
│ OpenClaw │────▶│ Built-in Chrome │◀────│ chrome-devtools│
│ (browser tool)│ │ (CDP Port 18800) │ │ -mcp (MCP srv) │
└─────────────────┘ └─────────────────────┘ └─────────────────┘
│
▼
┌─────────────────┐
│ MCP Client │
│ (mcporter etc) │
└─────────────────┘
```
### Built-in Chrome (openclaw profile)
- **CDP Port**: 18800
- **Managed by**: OpenClaw's `browser` tool
- **Auto-start**: Yes, via `browser(action: "open")`
- **Profile isolation**: Separate user data directory
### chrome-devtools-mcp
- **Type**: MCP (Model Context Protocol) server
- **Transport**: stdio (not HTTP)
- **Lifecycle**: Runs per MCP client session
- **Connection**: Connects to Chrome via CDP on port 18800
## Component Status Check
### 1. Check Built-in Chrome Status
```javascript
browser({
action: "status",
profile: "openclaw"
})
```
**Expected running state:**
```json
{
"enabled": true,
"profile": "openclaw",
"running": true,
"cdpReady": true,
"cdpPort": 18800,
"cdpUrl": "http://127.0.0.1:18800"
}
```
### 2. Verify CDP Endpoint
```powershell
Invoke-WebRequest -Uri "http://localhost:18800/json/version" -Method GET
```
**Expected response:**
```json
{
"Browser": "Chrome/134.0.0.0",
"Protocol-Version": "1.3",
"User-Agent": "Mozilla/5.0...",
"V8-Version": "...",
"WebKit-Version": "...",
"webSocketDebuggerUrl": "ws://localhost:18800/devtools/browser/..."
}
```
### 3. Check MCP Server Status
Since chrome-devtools-mcp runs as a stdio service per MCP client session, there's no persistent process to check. Instead, verify the MCP configuration is correct.
## Managing Built-in Chrome
### Start Built-in Chrome
```javascript
// Open a blank page to start Chrome
browser({
action: "open",
profile: "openclaw",
url: "about:blank"
})
// Or navigate to a specific URL
browser({
action: "open",
profile: "openclaw",
url: "https://chat.deepseek.com/"
})
```
### Stop Built-in Chrome
```javascript
browser({
action: "stop",
profile: "openclaw"
})
```
### Restart Built-in Chrome
```javascript
// Stop first
browser({ action: "stop", profile: "openclaw" })
// Then start
browser({ action: "open", profile: "openclaw", url: "about:blank" })
```
## MCP Server Configuration
### For mcporter CLI
Configure mcporter to use chrome-devtools-mcp:
```bash
# Add MCP server to mcporter
mcporter server add chrome-devtools
--command "npx"
--args "chrome-devtools-mcp@latest,--browserUrl,http://127.0.0.1:18800,--no-usage-statistics"
# Or with auto-connect (Chrome will be started if not running)
mcporter server add chrome-devtools
--command "npx"
--args "chrome-devtools-mcp@latest,--autoConnect,--no-usage-statistics"
```
### For Claude Desktop / Other MCP Clients
Add to `claude_desktop_config.json`:
```json
{
"mcpServers": {
"chrome-devtools": {
"command": "npx",
"args": [
"chrome-devtools-mcp@latest",
"--browserUrl", "http://127.0.0.1:18800",
"--no-usage-statistics"
]
}
}
}
```
### Environment Variables
```powershell
# Disable usage statistics
$env:CHROME_DEVTOOLS_MCP_NO_USAGE_STATISTICS = "1"
# Enable debug logging
$env:DEBUG = "*"
```
## Complete Setup Workflow
### First-Time Setup
1. **Verify built-in Chrome is ready:**
```javascript
const status = await browser({ action: "status", profile: "openclaw" })
if (!status.cdpReady) {
await browser({ action: "open", profile: "openclaw", url: "about:blank" })
}
```
2. **Test CDP connection:**
```powershell
Invoke-WebRequest -Uri "http://localhost:18800/json/version"
```
3. **Configure MCP client** (mcporter, Claude Desktop, etc.)
4. **Test MCP connection:**
```bash
mcporter call chrome-devtools.list_pages
```
### Daily Usage Pattern
1. **Ensure Chrome is running** (before MCP operations):
```javascript
const status = await browser({ action: "status", profile: "openclaw" })
if (!status.cdpReady) {
await browser({ action: "open", profile: "openclaw", url: "about:blank" })
await new Promise(r => setTimeout(r, 2000)) // Wait for startup
}
```
2. **Use MCP tools** via mcporter or other MCP client
3. **Keep Chrome running** for subsequent operations
## Available MCP Tools
Once connected via chrome-devtools-mcp, these tools are available:
### Page Management
- `list_pages` - List all open tabs/pages
- `new_page` - Create new tab
- `select_page` - Switch to specific tab
- `close_page` - Close a tab
- `navigate_page` - Navigate to URL / back / forward / refresh
### Interaction
- `click` - Click element by uid
- `fill` - Fill input field
- `type_text` - Type text
- `press_key` - Press keyboard key
- `select_option` - Select dropdown option
### Inspection
- `take_snapshot` - Get accessibility tree snapshot
- `take_screenshot` - Capture screenshot
- `evaluate_script` - Execute JavaScript
- `wait_for` - Wait for text/element
### Browser State
- `get_browser_state` - Get cookies, localStorage, etc.
- `set_browser_state` - Set cookies, localStorage, etc.
## Integration with Other Skills
### Example: deepseek-web-query
This skill uses chrome-devtools-mcp via mcporter:
```bash
# 1. Ensure Chrome is running (via browser tool)
# 2. Use mcporter to call MCP tools
mcporter call chrome-devtools.navigate_page type: "url" url: "https://chat.deepseek.com/"
mcporter call chrome-devtools.take_snapshot
mcporter call chrome-devtools.type_text text: "查询内容"
mcporter call chrome-devtools.press_key key: "Enter"
mcporter call chrome-devtools.evaluate_script function: '() => document.body.innerText'
```
## Troubleshooting
### "CDP not ready"
**Symptoms:** `browser({ action: "status" })` shows `cdpReady: false`
**Solutions:**
1. Restart Chrome:
```javascript
browser({ action: "stop", profile: "openclaw" })
browser({ action: "open", profile: "openclaw", url: "about:blank" })
```
2. Check for port conflicts:
```powershell
Get-NetTCPConnection -LocalPort 18800
```
### "Cannot connect to Chrome" from MCP
**Symptoms:** MCP server fails to connect
**Solutions:**
1. Verify CDP endpoint is accessible:
```powershell
curl http://localhost:18800/json/version
```
2. Check Windows Firewall isn't blocking localhost
3. Ensure Chrome was started with remote debugging enabled (built-in profile does this automatically)
### MCP server exits immediately
**This is normal behavior!** The MCP server:
- Waits for JSON-RPC messages on stdin
- Exits when stdin closes (client disconnects)
- Is designed to be launched per-session by MCP clients
### Port 18800 conflicts
**Check what's using the port:**
```powershell
Get-NetTCPConnection -LocalPort 18800 |
Select-Object LocalPort, State, OwningProcess, @{Name="ProcessName";Expression={(Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue).Name}}
```
**Kill conflicting process:**
```powershell
Get-Process -Id (Get-NetTCPConnection -LocalPort 18800).OwningProcess | Stop-Process -Force
```
## Best Practices
1. **Always check Chrome status first** before MCP operations
2. **Reuse browser sessions** - Don't close Chrome between operations
3. **Use `about:blank` for quick startup** when you don't need a specific page
4. **Configure MCP client once** - The config persists across sessions
5. **Handle login states** in your automation logic (e.g., deepseek-web-query handles DeepSeek login)
## Quick Reference
| Task | Command |
|------|---------|
| Check Chrome status | `browser({ action: "status", profile: "openclaw" })` |
| Start Chrome | `browser({ action: "open", profile: "openclaw", url: "about:blank" })` |
| Stop Chrome | `browser({ action: "stop", profile: "openclaw" })` |
| Test CDP | `Invoke-WebRequest http://localhost:18800/json/version` |
| Add MCP to mcporter | `mcporter server add chrome-devtools --command "npx" --args "..."` |
| List MCP pages | `mcporter call chrome-devtools.list_pages` |
## References
- [chrome-devtools-mcp GitHub](https://github.com/ChromeDevTools/chrome-devtools-mcp)
- [MCP Protocol](https://modelcontextprotocol.io/)
- [Chrome DevTools Protocol](https://chromedevtools.github.io/devtools-protocol/)
- [OpenClaw Browser Tool](https://docs.openclaw.ai/tools/browser)