MCP Browser
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CDP_URL | No | Chrome DevTools Protocol endpoint | http://localhost:9222 |
| CACHE_TTL | No | Cache time-to-live in seconds | 300 |
| LOG_LEVEL | No | debug, info, warn, error | info |
| CHROME_PATH | No | Custom path to Chrome/Chromium executable | |
| CACHE_ENABLED | No | Enable in-memory page cache | true |
| SEARCH_ENGINE | No | google or duckduckgo | |
| CHROME_HEADLESS | No | Auto-launch Chrome in headless mode (recommended) | false |
| CHROME_PROFILES | No | JSON map of profile name → CDP URL | {} |
| DEFAULT_TIMEOUT | No | Page load timeout in ms | 30000 |
| MAX_CONTENT_LENGTH | No | Max returned content in characters | 50000 |
| MAX_CONCURRENT_TABS | No | Max simultaneous browser tabs | 5 |
| SESSION_TIMEOUT_MINUTES | No | Auto-close inactive tabs after this duration | 30 |
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_statusA | Check if the browser connection is active and return status info |
| fetch_pageB | Load a URL in the browser and return the full page content as Markdown. Supports persistent sessions via tab_id. |
| web_searchA | Search the web using Google or DuckDuckGo through the user's real browser. Returns structured results with title, URL, and snippet. |
| list_tabsA | List all open browser tabs with their URLs and titles |
| fetch_readableA | Load a URL and extract the main article content (removes navigation, ads, sidebars). Falls back to full page content if extraction yields too little text. Supports persistent sessions via tab_id. |
| screenshotA | Take a screenshot of a web page or a specific element. Returns a PNG image. Supports persistent sessions via tab_id — when using tab_id, url is optional (screenshots the current page). |
| execute_javascriptA | Execute arbitrary JavaScript in the context of a loaded web page. The script runs in the browser and must return a JSON-serializable value. Supports persistent sessions via tab_id — when using a tab_id, the url parameter is optional (executes on the current page). |
| multi_fetchA | Fetch multiple URLs in parallel and return their content as Markdown. Useful for comparing sources or gathering information from several pages at once. Max 5 URLs. |
| fetch_structured_dataB | Extract structured data from a web page: JSON-LD, OpenGraph tags, meta tags, tables, headings, and links. Supports persistent sessions via tab_id. |
| open_tabA | Open a new persistent browser tab. Returns a tab_id that can be used with other tools for multi-step workflows (login, navigation, form filling). The tab stays open until explicitly closed or the session expires. |
| close_tabA | Close a persistent browser tab by its tab_id. Use this to clean up tabs opened with open_tab. |
| click_and_navigateA | Interact with a persistent browser tab: click elements, type text, select options, submit forms, or scroll. Requires a tab_id from open_tab. Returns the page state after the action. |
| extract_linksB | Extract all links from a web page. Can filter by regex pattern. Supports persistent sessions via tab_id. |
| crawlA | Crawl a website starting from a URL, following links up to a specified depth. Returns a list of discovered pages with titles and optional content summaries. Respects same-domain and link filter constraints. |
| monitor_pageA | Monitor a web page for content changes. Use 'start' to begin monitoring, 'check' to retrieve changes, 'stop' to end monitoring, or 'list' to see all active monitors. |
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 15 tools
fetch_page, fetch_readable, multi_fetch, fetch_structured_data, extract_links, and crawl all retrieve page content or extracted data, creating a cluster of tools with overlapping outputs. Descriptions clarify some intent, but fetch_readable's fallback to full page content makes it ambiguous with fetch_page, and fetch_structured_data overlaps with extract_links.
Most tools follow a clear verb_noun pattern like open_tab, close_tab, list_tabs, and extract_links. Minor inconsistencies such as browser_status, web_search, screenshot, multi_fetch, and fetch_readable break the pattern but remain readable and predictable.
15 tools is at the upper edge of the well-scoped range and covers browser sessions, search, fetching, extraction, interaction, and monitoring. It feels slightly heavy because several fetch/extract tools could be consolidated, but the count is not unreasonable for the domain.
The set covers the browser lifecycle well: search, navigation, persistent tabs, interaction, screenshots, structured extraction, crawling, and change monitoring. There are no major dead ends for common browser-automation workflows.