Marketplace chrome-devtools-debugging
Debug and analyze web applications using Chrome DevTools MCP. Use for console log inspection, network request monitoring, performance analysis, and debugging authenticated sessions. For basic browser automation (screenshots, form filling), use browser-discovery skill instead.
install
source · Clone the upstream repo
git clone https://github.com/aiskillstore/marketplace
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/aiskillstore/marketplace "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/consiliency/chrome-devtools-debugging" ~/.claude/skills/aiskillstore-marketplace-chrome-devtools-debugging && rm -rf "$T"
manifest:
skills/consiliency/chrome-devtools-debugging/SKILL.mdsource content
Chrome DevTools Debugging
Debug web applications by connecting to Chrome's DevTools Protocol. This skill enables:
- Console inspection: View errors, warnings, and log messages
- Network analysis: Monitor XHR/fetch requests with full headers/body
- Performance tracing: Record and analyze performance traces
- JavaScript evaluation: Execute code in browser context
- Authenticated session debugging: Connect to existing logged-in browsers
When to Use This Skill
| Use Case | This Skill | browser-discovery |
|---|---|---|
| Console error inspection | Yes | No |
| Network request analysis | Yes | Limited |
| Performance tracing | Yes | No |
| Authenticated sessions | Yes | No |
| Screenshots | No | Yes |
| Form filling | No | Yes |
| Basic navigation | Limited | Yes |
Setup Requirements
Option 1: Connect to Existing Chrome (Recommended)
Start Chrome with remote debugging enabled:
# Linux google-chrome --remote-debugging-port=9222 # macOS /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222 # Windows "C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222
Set the environment variable:
export CHROME_DEVTOOLS_URL=http://127.0.0.1:9222
Option 2: Chrome Auto-Connect (145+)
For Chrome 145+, enable remote debugging at
chrome://inspect/#remote-debugging.
Progressive Disclosure Pattern
This skill uses progressive MCP disclosure for token efficiency:
Chrome DevTools MCP Server | v Python Wrappers (.claude/ai-dev-kit/dev-tools/mcp_servers/chrome_devtools/) | v Claude executes Python via Bash (on-demand) | v Results returned (tools NOT in system prompt)
Benefits: 98%+ token reduction vs loading all MCP tools in system prompt.
Quick Examples
Get Console Errors
uv run python -c " import sys; sys.path.insert(0, 'dev-tools') from mcp_servers.chrome_devtools import console errors = console.list_console_messages(types=['error']) print(errors) "
List Network Requests
uv run python -c " import sys; sys.path.insert(0, 'dev-tools') from mcp_servers.chrome_devtools import network requests = network.list_network_requests(resource_types=['xhr', 'fetch']) print(requests) "
Execute JavaScript
uv run python -c " import sys; sys.path.insert(0, 'dev-tools') from mcp_servers.chrome_devtools import debug title = debug.evaluate_script('document.title') print(f'Page title: {title}') "
Debug Authenticated Session
# 1. Log into the site manually in Chrome (started with --remote-debugging-port=9222) # 2. Then analyze the authenticated state: uv run python -c " import sys; sys.path.insert(0, 'dev-tools') from mcp_servers.chrome_devtools import navigation, network, debug # List open tabs pages = navigation.list_pages() print(pages) # Get auth tokens from localStorage tokens = debug.evaluate_script('JSON.stringify(localStorage)') print(f'localStorage: {tokens}') # See recent API calls api_calls = network.get_api_requests() print(api_calls) "
Available Tool Modules
console
- Get console outputlist_console_messages(types, page_size, page_idx)
- Get specific message detailsget_console_message(message_id)
- Convenience: get error messages onlyget_errors()
- Convenience: get warnings onlyget_warnings()
network
- List requestslist_network_requests(resource_types, page_size, page_idx)
- Get full request/response detailsget_network_request(request_id)
- Convenience: get 4xx/5xx requestsget_failed_requests()
- Convenience: get XHR/fetch requestsget_api_requests()
- Convenience: get slow requestsget_slow_requests(threshold_ms)
performance
- Start recording tracestart_trace(reload, auto_stop)
- Stop and get trace datastop_trace()
- Get available insight setsget_insights()
- AI-powered insight analysisanalyze_insight(insight_set_id, insight_name)
debug
- Execute JavaScriptevaluate_script(expression)
navigation
- Navigate pagenavigate_page(url, nav_type, ignore_cache, timeout)
- List all tabslist_pages()
- Switch to tab by indexselect_page(page_idx, bring_to_front)
- Open new tabnew_page(url, timeout)
- Close tab by indexclose_page(page_idx)
- Wait for text on pagewait_for(text, timeout)
Red Flags
- Chrome not started with
--remote-debugging-port=9222
environment variable not setCHROME_DEVTOOLS_URL- Port 9222 blocked by firewall
- Trying to use for screenshots (use browser-discovery instead)
- MCP server not installed (
)npx chrome-devtools-mcp@latest
See Also
- reference.md - Full API documentation
- cookbook/console-debugging.md - Console debugging patterns
- cookbook/network-debugging.md - Network analysis patterns
skill - For screenshots, basic automationbrowser-discovery- Chrome DevTools Protocol