chrome-devtools-mcp-manager

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.

3,807 stars

Best use case

chrome-devtools-mcp-manager is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

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.

Teams using chrome-devtools-mcp-manager should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/chrome-devtools-mcp-manager/SKILL.md --create-dirs "https://raw.githubusercontent.com/openclaw/skills/main/skills/andeymei/chrome-devtools-mcp-manager/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/chrome-devtools-mcp-manager/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How chrome-devtools-mcp-manager Compares

Feature / Agentchrome-devtools-mcp-managerStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

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.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

Related Guides

SKILL.md Source

# 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)

Related Skills

CRM Manager

3807
from openclaw/skills

Manages a local CSV-based CRM with pipeline tracking

Workflow & Productivity

Procurement Manager

3807
from openclaw/skills

You are a procurement specialist agent. Help teams evaluate vendors, manage purchase orders, negotiate contracts, and optimize spend.

Workflow & Productivity

Employee Offboarding Manager

3807
from openclaw/skills

Generate complete offboarding checklists and transition plans when an employee leaves.

Workflow & Productivity

Software License Manager

3807
from openclaw/skills

Audit, track, and optimize your organization's software licenses. Finds waste, flags compliance risks, and builds a renewal calendar.

IT & Operations Management

Inventory & Supply Chain Manager

3807
from openclaw/skills

Complete inventory management, demand forecasting, supplier evaluation, and supply chain optimization for businesses of any size. From stockroom to strategy.

Business Operations

Environmental Compliance Manager

3807
from openclaw/skills

Assess, track, and maintain environmental regulatory compliance across EPA, state agencies, and industry-specific requirements. Built for manufacturing, construction, energy, logistics, and any business with environmental obligations.

Regulatory Compliance

Engineering Manager OS

3807
from openclaw/skills

Complete engineering management system — team building, 1:1s, performance, hiring, architecture decisions, incident management, and scaling. From IC-to-manager transition through director-level operations.

Workflow & Productivity

AI Agent Manager Playbook

3807
from openclaw/skills

Your company deployed AI agents. Now what? This skill turns you into the person who actually makes them productive — the Agent Manager.

Accounts Receivable Manager

3807
from openclaw/skills

Automate AR workflows: aging analysis, collection prioritization, payment follow-ups, cash application, and bad debt forecasting.

Finance & Operations

node-red-manager

3807
from openclaw/skills

Manage Node-RED instances via Admin API or CLI. Automate flow deployment, install nodes, and troubleshoot issues. Use when user wants to "build automation", "connect devices", or "fix node-red".

DevOps & Infrastructure

cloudflare-manager

3807
from openclaw/skills

Manage Cloudflare DNS records, Tunnels (cloudflared), and Zero Trust policies. Use for pointing domains, exposing local services via tunnels, and updating ingress rules.

DevOps & Infrastructure

evomap-heartbeat-manager

3807
from openclaw/skills

Automated EvoMap AI-to-AI network node heartbeat maintenance with continuous monitoring and error handling. Keeps your EvoMap nodes alive and active in the distributed AI work network.