cdp-bridge
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CDP_BRIDGE_TOKENS | No | Token白名单,多个token用英文逗号分隔。也可以通过--tokens参数指定。 |
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": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| browser_get_tabsA | Get all open browser tabs with their IDs, URLs, and titles. |
| browser_scanA | Get simplified HTML content of the active tab plus tab list. The HTML is optimized for LLM consumption (stripped of scripts, styles, invisible elements). Args: tabs_only: Only return tab list without page content (saves tokens). switch_tab_id: Switch to this tab before scanning. text_only: Return plain text instead of simplified HTML. |
| browser_execute_jsA | Execute JavaScript in the browser and capture results plus DOM changes. Args: script: JavaScript code to execute (or JSON command for CDP operations). switch_tab_id: Switch to this tab before executing. no_monitor: Skip DOM change monitoring (faster, less info). |
| browser_switch_tabA | Switch the active MCP browser tab without changing the visible Chrome tab. Args: tab_id: The tab ID to switch to (from browser_get_tabs). |
| browser_focus_tabA | Bring a Chrome tab to the foreground: activate the tab AND focus its window. Unlike browser_switch_tab (which only changes the MCP-side active session without touching the visible Chrome UI), this actually makes the tab visible to the user. Use this when the user can't find the tab the agent is working on (e.g. across many windows / Spaces / minimized windows). Goes through chrome.tabs.update + chrome.windows.update (extension-native APIs), avoiding the chrome.debugger CDP "Not allowed" restriction on Target.activateTarget. Args: tab_id: The tab ID to focus (from browser_get_tabs). |
| browser_batchA | Run multiple extension/CDP commands in one request. Args: commands: Command objects supported by the extension, such as {"cmd":"cdp","method":"DOM.getDocument","params":{"depth":1}}. tab_id: Optional tab ID inherited by commands that omit tabId. timeout: Seconds to wait for the batch result. |
| browser_waitA | Wait until JavaScript condition returns a truthy value. Args: condition_js: JavaScript expression or script. The return value is tested for truthiness. timeout: Maximum seconds to wait. interval: Seconds between checks. switch_tab_id: Optional tab ID to make active before waiting. |
| browser_navigateB | Navigate the active tab to a URL. Args: url: The URL to navigate to. |
| browser_screenshotA | Take a screenshot of the active tab (returns base64 PNG). Args: tab_id: Optional tab ID to screenshot. Uses active tab if empty. |
| browser_save_imageA | Save base64 screenshot data to PNG file. Args: screenshot_json_str_or_file: JSON output from browser_screenshot tool, or path to a JSON file containing the screenshot data. output_path: Output PNG file path or directory. Behavior: - Existing directory: save as {directory}/screenshot_{timestamp}.png - File path with existing parent dir: save directly to that file - File path with non-existing parent dir: return error - Empty/not provided: auto-generate based on input path or timestamp Returns: JSON with status, saved_path, and size_bytes. |
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 10 tools
Tools have largely distinct purposes, but some overlap exists between browser_switch_tab and browser_focus_tab, and between browser_execute_js and browser_batch. The descriptions help disambiguate, so no major confusion.
All tools share the 'browser_' prefix, which is good. The verb part mostly follows verb_noun pattern (e.g., focus_tab, get_tabs), but browser_screenshot and browser_batch break that pattern slightly. Overall consistent.
With 10 tools, the server is well-scoped for browser automation. Each tool serves a clear purpose, and the count is neither too few (which would feel incomplete) nor too many (which would be overwhelming).
The tools cover core browser operations: navigation, tab management, screenshots, JS execution, and DOM scanning. Missing explicit form filling or network interception, but the batch tool allows arbitrary CDP commands, so agents can fill gaps. Minor but not significant.