zen-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ZEN_DEBUG_PORT | No | Zen's remote debugging port | 9222 |
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 | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| zen_list_pagesA | List all open pages/tabs in Zen browser with URLs and titles |
| zen_select_pageA | Select a page/tab by index (from zen_list_pages) as the active target |
| zen_new_tabB | Open a new tab, optionally navigating to a URL |
| zen_navigateB | Navigate the active page to a URL |
| zen_snapshotA | Get a structured snapshot of visible page elements with CSS selectors. Filter: "all", "interactive", or "form". |
| zen_screenshotB | Take a screenshot of the current page |
| zen_clickB | Click an element by CSS selector |
| zen_fillA | Fill a text input or textarea with a value. Clears existing content first. Dispatches input/change events for framework compatibility. |
| zen_select_optionA | Select an option in a dropdown by value or text |
| zen_checkB | Check/uncheck a checkbox or select a radio button |
| zen_evaluateB | Execute JavaScript in the page and return the result |
| zen_get_form_fieldsA | List all form fields on the page with names, types, labels, current values, and CSS selectors |
| zen_fill_formA | Fill multiple form fields at once. Each field specifies selector, value, and action (fill/select/check/uncheck/click). |
| zen_scrollB | Scroll the page or scroll an element into view |
| zen_waitB | Wait for a specified number of milliseconds |
| zen_get_page_textA | Get the page title, URL, and visible text content. Useful for quickly understanding what is on the page. |
| zen_close_tabA | Close a tab by index. Cannot close the last remaining tab. |
| zen_press_keyA | Send keyboard input to the active page using BiDi input.performActions. Supports special keys like Enter, Tab, Escape, Backspace, and key combinations with modifiers. |
| zen_reconnectA | Force disconnect and reconnect to Zen Browser. Use when the connection is in a bad state or after restarting Zen. |
| zen_wait_forA | Wait for text to appear on the page, or for a CSS selector to match an element. Returns when found or after timeout. |
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 20 tools
Each tool serves a distinct browser automation purpose: clicking, filling forms, navigating, taking screenshots, etc. Even similar actions like zen_check and zen_click are clearly differentiated by element type, and zen_fill vs zen_fill_form by scope.
All tools follow the 'zen_verb_noun' pattern with snake_case, e.g., zen_close_tab, zen_get_form_fields, zen_select_option. No mixed conventions or irregular names.
20 tools cover the essential operations for browser automation (navigation, interaction, forms, tabs, debugging) without being overwhelming. Each tool seems necessary and well-scoped.
The tool set covers common browser automation workflows: navigation, click, fill, select, wait, screenshots, and tab management. Minor gaps exist (e.g., file upload, alert handling, iframe support), but core functionality is largely complete.