browser-mcp-cdp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| BROWSER_MCP_CHROME_PATH | No | Path to Chrome executable | Auto-detected per OS |
| BROWSER_MCP_BROKER_LOCK_PATH | No | Lock file path for broker | ~/.browser-mcp/broker.lock |
| BROWSER_MCP_BROKER_SOCKET_PATH | No | Unix socket path for broker communication | ~/.browser-mcp/broker.sock |
| BROWSER_MCP_CHROME_PROFILE_ROOT | No | Root directory for Chrome profiles | OS-standard Chrome profile dir |
| BROWSER_MCP_BROKER_IDLE_TIMEOUT_MS | No | Idle timeout in milliseconds before broker shuts down | 600000 |
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 |
|---|---|
| browser_navigateA | Navigate the browser to a URL. Returns the final URL and page title. |
| browser_evaluateA | Execute JavaScript in the current page context and return the result. Use await_promise=true (default) for async expressions. |
| browser_screenshotA | Capture a screenshot of the current page. Returns a PNG image. |
| browser_clickB | Click an element matched by a CSS selector. Returns true if found and clicked. |
| browser_fillB | Set the value of an input, textarea, or select element matched by a CSS selector. |
| browser_wait_forA | Wait until an element matching the CSS selector appears in the DOM. Returns true if found within the timeout, false otherwise. |
| browser_get_urlA | Get the current page URL. |
| browser_get_textA | Get the visible text content of the page or a specific element. |
| browser_get_htmlB | Get the outer HTML of the page or a specific element. |
| browser_scrollB | Scroll the page by a relative offset in pixels. |
| browser_click_atA | Click at an absolute (x, y) pixel coordinate on the page using real CDP mouse events. Pierces through iframes and ad overlays that block CSS-selector clicks. |
| browser_tabsA | List all open browser tabs with their id, url, and title. |
| browser_new_tabB | Open a new browser tab, optionally navigating to a URL. |
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 13 tools
Each tool targets a distinct action (navigate, click, fill, etc.) with clear boundaries. No two tools do the same thing; even click variants differ by selector vs coordinates.
All tools use the 'browser_' prefix with a consistent verb_noun pattern (e.g., get_url, click_at). The only outlier is 'browser_tabs' which uses a noun instead of a verb, but it's still clear.
13 tools is well-scoped for browser automation, covering navigation, interaction, content extraction, scrolling, and tab management without being overwhelming.
Covers most core browser operations (navigate, click, fill, read, screenshot, JS eval). Minor gaps like back/reload or cookie handling exist but are not critical for typical use cases.