skills/consiliency/chrome-devtools-debugging/SKILL.md
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.
npx skillsauth add aiskillstore/marketplace chrome-devtools-debuggingInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Debug web applications by connecting to Chrome's DevTools Protocol. This skill enables:
| 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 |
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
For Chrome 145+, enable remote debugging at chrome://inspect/#remote-debugging.
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.
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)
"
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)
"
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}')
"
# 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)
"
list_console_messages(types, page_size, page_idx) - Get console outputget_console_message(message_id) - Get specific message detailsget_errors() - Convenience: get error messages onlyget_warnings() - Convenience: get warnings onlylist_network_requests(resource_types, page_size, page_idx) - List requestsget_network_request(request_id) - Get full request/response detailsget_failed_requests() - Convenience: get 4xx/5xx requestsget_api_requests() - Convenience: get XHR/fetch requestsget_slow_requests(threshold_ms) - Convenience: get slow requestsstart_trace(reload, auto_stop) - Start recording tracestop_trace() - Stop and get trace dataget_insights() - Get available insight setsanalyze_insight(insight_set_id, insight_name) - AI-powered insight analysisevaluate_script(expression) - Execute JavaScriptnavigate_page(url, nav_type, ignore_cache, timeout) - Navigate pagelist_pages() - List all tabsselect_page(page_idx, bring_to_front) - Switch to tab by indexnew_page(url, timeout) - Open new tabclose_page(page_idx) - Close tab by indexwait_for(text, timeout) - Wait for text on page--remote-debugging-port=9222CHROME_DEVTOOLS_URL environment variable not setnpx chrome-devtools-mcp@latest)browser-discovery skill - For screenshots, basic automationdevelopment
Apple Human Interface Guidelines for content display components. Use this skill when the user asks about charts component, collection view, image view, web view, color well, image well, activity view, lockup, data visualization, content display, displaying images, rendering web content, color pickers, or presenting collections of items in Apple apps. Also use when the user says how should I display charts, what's the best way to show images, should I use a web view, how do I build a grid of items, what component shows media, or how do I present a share sheet. Cross-references: hig-foundations for color/typography/accessibility, hig-patterns for data visualization patterns, hig-components-layout for structural containers, hig-platforms for platform-specific component behavior.
tools
Automate HelpDesk tasks via Rube MCP (Composio): list tickets, manage views, use canned responses, and configure custom fields. Always search tools first for current schemas.
testing
Expert Haskell engineer specializing in advanced type systems, pure functional design, and high-reliability software. Use PROACTIVELY for type-level programming, concurrency, and architecture guidance.
tools
GraphQL gives clients exactly the data they need - no more, no less. One endpoint, typed schema, introspection. But the flexibility that makes it powerful also makes it dangerous. Without proper controls, clients can craft queries that bring down your server. This skill covers schema design, resolvers, DataLoader for N+1 prevention, federation for microservices, and client integration with Apollo/urql. Key insight: GraphQL is a contract. The schema is the API documentation. Design it carefully.