cdp-extended-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| connect_cdpA | Connect to a Chrome instance via WebSocket URL. Get the URL from http://localhost:PORT/json/version or from an existing cdp-tools connection. |
| discover_targetsA | List available Chrome debugging targets. Use this to find the WebSocket URL to connect to. |
| disconnect_cdpB | Disconnect from Chrome |
| fetch_enableB | Enable request interception. Optionally specify URL patterns to intercept. |
| fetch_disableA | Disable request interception |
| fetch_continueA | Continue a paused request, optionally modifying URL, method, headers, or body |
| fetch_fulfillA | Respond to a paused request with a custom/mock response |
| fetch_failA | Fail a paused request with an error |
| fetch_get_bodyA | Get the response body of a paused request (at Response stage) |
| fetch_list_pausedA | List all currently paused/intercepted requests |
| emulate_deviceA | Emulate a specific device (iPhone, Pixel, iPad, etc.) with correct viewport, DPR, user agent, and touch |
| emulate_custom_deviceA | Set custom device metrics (viewport size, scale, mobile mode) |
| emulate_geolocationB | Fake the browser's geolocation to any coordinates |
| emulate_timezoneC | Override the browser's timezone |
| emulate_localeA | Override the browser's locale for i18n testing |
| emulate_user_agentB | Override the browser's user agent string |
| emulate_dark_modeA | Toggle dark mode (prefers-color-scheme) |
| emulate_reduced_motionB | Toggle reduced motion preference |
| emulate_vision_deficiencyA | Simulate vision deficiencies (color blindness, blurred vision) |
| emulate_cpu_throttleB | Throttle CPU to simulate slower devices |
| emulate_touchB | Toggle touch emulation |
| emulate_clear_allA | Clear all emulation overrides and reset to defaults |
| emulate_list_devicesA | List all available device presets for emulation |
| a11y_auditA | Run an accessibility audit on the current page. Checks for missing alt text, unlabeled buttons/links, form inputs without labels, empty headings, and clickable elements without roles. |
| a11y_treeA | Get the accessibility tree for the current page (what screen readers see) |
| a11y_queryA | Search the accessibility tree by role and/or accessible name |
| perf_metricsA | Get current runtime performance metrics (DOM nodes, event listeners, layout counts, JS heap, etc.) |
| perf_web_vitalsA | Get Core Web Vitals (LCP, CLS, FCP, TTFB) with GOOD/NEEDS IMPROVEMENT/POOR ratings |
| perf_cpu_profile_startA | Start CPU profiling. Perform the actions you want to profile, then call perf_cpu_profile_stop. |
| perf_cpu_profile_stopA | Stop CPU profiling and get the results with top functions by CPU time |
| perf_heap_snapshotA | Take a heap memory snapshot to find memory leaks |
| css_computed_styleA | Get computed CSS styles for an element. Optionally filter to specific properties. |
| css_matched_rulesA | Get all CSS rules matching an element (inline, matched, inherited, pseudo-elements) |
| css_background_colorsA | Get background colors and font info for an element (useful for contrast checking) |
| css_force_pseudoA | Force pseudo-states on an element (e.g. :hover, :focus, :active) for testing |
| css_fontsA | Get the actual fonts used to render an element (not just font-family, the actual loaded fonts) |
| css_media_queriesA | List all media queries used across all stylesheets |
| css_coverage_startA | Start tracking CSS rule usage. Browse around, then call css_coverage_stop to see which rules are unused. |
| css_coverage_stopA | Stop CSS coverage tracking and get the report showing used vs unused rules |
| css_set_propertyA | Set a CSS property value on an element (live modification) |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 40 tools
Every tool targets a distinct feature or action within its category. The fetch_* set covers interception stages clearly, and emulation tools each address a separate emulation dimension. Even overlapping-looking tools like css_background_colors and css_computed_style are clearly differentiated by their specific purpose.
All tool names use lowercase snake_case and follow a predictable pattern: either verb_noun (e.g., connect_cdp, discover_targets) or a category prefix followed by a descriptive noun or verb (e.g., emulate_device, css_coverage_stop). The naming is highly consistent across the entire set of 40 tools.
40 tools is well above the typical well-scoped range of 3-15. While the broad CDP domain might justify a larger surface, this many tools can overwhelm agents and increase selection difficulty. The count feels excessive even for an 'extended' server.
The tool surface covers several important domains (interception, emulation, CSS, accessibility, performance) but lacks core page control operations like navigation, JavaScript evaluation, or element interaction. This leaves noticeable gaps for common testing workflows, though it can still handle scenarios where a page is already loaded.