A Zed extension that integrates the Chrome DevTools MCP server, giving your AI assistant access to Chrome's automation, debugging, and performance analysis capabilities.
- Zero configuration — Chrome launches automatically when needed
- Full DevTools access — Network inspection, console logs, screenshots, performance traces
- Browser automation — Navigate, click, fill forms, handle dialogs
- All upstream tools — Direct access to 26+ MCP tools from chrome-devtools-mcp
- Zed editor
- Node.js v20 or newer
- Google Chrome (stable channel)
- Open Zed → Extensions
- Search for "Chrome DevTools MCP"
- Click Install
- Clone this repository
- In Zed: Extensions → Install Dev Extension
- Select the
chrome-devtools-mcp-zeddirectory
No configuration required. The extension automatically:
- Installs/updates the
chrome-devtools-mcpnpm package - Launches Chrome when a tool requires it
- Manages a persistent browser profile at
~/.cache/chrome-devtools-mcp/chrome-profile
Take a screenshot of https://example.com
Check the performance of https://zed.dev
List all network requests on the current page
Add settings to your Zed configuration for advanced use cases:
{
"context_servers": {
"chrome-devtools-mcp-zed": {
"settings": {
// Your settings here
}
}
}
}| Setting | Type | Description |
|---|---|---|
browser_url |
string | Connect to running Chrome via HTTP (e.g., "http://127.0.0.1:9222") |
ws_endpoint |
string | Connect via WebSocket |
ws_headers |
object | Custom headers for WebSocket connection |
auto_connect |
boolean | Auto-connect to Chrome 145+ with remote debugging enabled |
| Setting | Type | Description |
|---|---|---|
channel |
string | Chrome channel: "stable", "beta", "dev", "canary" |
headless |
boolean | Run Chrome without UI |
isolated |
boolean | Use temporary profile (cleaned up on close) |
user_data_dir |
string | Custom profile directory path |
viewport |
string | Initial viewport size (e.g., "1920x1080") |
executable_path |
string | Path to custom Chrome executable |
chrome_arg |
string[] | Additional Chrome launch arguments |
| Setting | Type | Description |
|---|---|---|
proxy_server |
string | Proxy server configuration |
accept_insecure_certs |
boolean | Ignore certificate errors |
log_file |
string | Path for debug logs |
category_emulation |
boolean | Enable/disable emulation tools |
category_performance |
boolean | Enable/disable performance tools |
category_network |
boolean | Enable/disable network tools |
extra_args |
string[] | Additional CLI arguments for upstream |
Connect to existing Chrome instance:
{
"context_servers": {
"chrome-devtools-mcp-zed": {
"settings": {
"browser_url": "http://127.0.0.1:9222"
}
}
}
}Headless Chrome with custom viewport:
{
"context_servers": {
"chrome-devtools-mcp-zed": {
"settings": {
"headless": true,
"viewport": "1920x1080"
}
}
}
}Temporary isolated profile:
{
"context_servers": {
"chrome-devtools-mcp-zed": {
"settings": {
"isolated": true
}
}
}
}By default, Chrome uses a persistent profile at:
| Platform | Path |
|---|---|
| Linux/macOS | ~/.cache/chrome-devtools-mcp/chrome-profile |
| Windows | %USERPROFILE%\.cache\chrome-devtools-mcp\chrome-profile |
For non-stable channels, the directory includes the channel name (e.g., chrome-profile-canary).
Set isolated: true to use a temporary profile that's automatically cleaned up.
To connect to an existing Chrome instance instead of launching a new one:
1. Start Chrome with remote debugging:
# Linux
google-chrome --remote-debugging-port=9222 --user-data-dir=/tmp/chrome-debug
# macOS
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222 --user-data-dir=/tmp/chrome-debug
# Windows
chrome.exe --remote-debugging-port=9222 --user-data-dir=%TEMP%\chrome-debug2. Configure the extension:
{
"context_servers": {
"chrome-devtools-mcp-zed": {
"settings": {
"browser_url": "http://127.0.0.1:9222"
}
}
}
}- Ensure Google Chrome is installed
- Check that Node.js v20+ is available
- Try setting
executable_pathto your Chrome binary location
- Verify Chrome is running with
--remote-debugging-port=9222 - Ensure no firewall is blocking localhost connections
This occurs when using auto_connect due to a puppeteer bug with XDG_CONFIG_HOME. Solutions:
-
Set XDG_CONFIG_HOME (add to
~/.bashrc):export XDG_CONFIG_HOME="$HOME/.config"
-
Or use
browser_urlinstead ofauto_connect
Enable detailed logs:
{
"context_servers": {
"chrome-devtools-mcp-zed": {
"settings": {
"log_file": "/tmp/chrome-devtools-mcp.log"
}
}
}
}Apache-2.0 (same as upstream chrome-devtools-mcp)