mcp-server-webdriver
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FIREFOX_BINARY | No | Path to a custom Firefox executable | |
| GECKODRIVER_PATH | No | Absolute path to geckodriver binary (highest priority) | |
| GECKODRIVER_AUTO_INSTALL | No | Set to false to disable webdriver-manager fallback | true |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| browser_openA | Open URL in Firefox. Starts a new browser session if none is running. With enable_bidi=True (default) the session automatically captures: • All JavaScript exceptions (file, line, column, stack trace) • All console.* output (log / warn / error / info / debug) • All network requests with status codes and durations geckodriver sources (priority order):
|
| browser_closeA | Close the browser session. All buffered DevTools data is discarded. |
| browser_statusA | Session state, geckodriver info, BiDi status and buffer sizes. |
| devtools_reportA | MAIN DIAGNOSTIC TOOL — returns a complete DevTools report in one call: • js_errors — all JavaScript exceptions with file, line, column, stack • console_errors — console.error() and console.warn() output • failed_resources — CSS / JS / images / fonts that returned 4xx/5xx or failed to load • slow_resources — requests that took longer than 2 s Use this after navigating to a page or after triggering a UI action. Equivalent to opening DevTools and checking the Console + Network tabs. |
| devtools_js_errorsA | Return all JavaScript exceptions captured since browser_open. Each entry contains: ts — ISO 8601 timestamp type — error type (e.g. 'TypeError', 'ReferenceError') text — error message url — source file URL line — line number in source file column — column number stack — full stack trace This is the primary tool for finding which JS file and line causes a bug. |
| devtools_consoleA | Return buffered browser console messages. Each entry: ts, level, text, url (source file), line. Covers console.log / warn / error / info / debug. |
| devtools_network_failedA | Return network requests that FAILED — 4xx / 5xx status or DNS / connection errors. This is how the agent detects broken CSS files, missing JS bundles, unavailable fonts, or failed API calls that cause layout or functionality issues. Each entry: ts, method, url, type, status (0 = connection failed), duration_ms, failed (bool), error (error description). |
| devtools_network_allA | Return all captured network requests with filtering options. Useful for auditing which CSS/JS files are loaded, checking API response times, or finding resources that are unexpectedly missing from the page. |
| devtools_clearA | Clear all buffered console, JS error, and network entries. Call this before navigating to a new page to get a clean baseline, so subsequent devtools_* calls only reflect the new page's activity. |
| devtools_enable_bidiA | Attach (or re-attach) WebDriver BiDi listeners to the running session. Use if the session was opened with enable_bidi=False, or if listeners were lost after a page crash. |
| browser_screenshotA | Take a PNG screenshot for visual / layout / CSS diagnosis. Capture the full page to spot broken layout, or pass a CSS selector to isolate a specific component (header, nav, modal…). The agent can use this to identify misaligned elements, invisible text, broken flex/grid layouts, or unstyled components. |
| devtools_computed_cssA | Return computed (final applied) CSS properties of an element. Use this to understand why an element looks wrong: • Is it display:none or visibility:hidden? • What color / font is actually applied? • Is a CSS variable resolving correctly? • Are grid/flex dimensions what you expect? Returns a dict of {property: computed_value}. |
| devtools_element_infoA | Return detailed info about a DOM element for debugging: • outerHTML — the element's markup (first 4000 chars) • bounding_box — position and size on screen (x, y, width, height) • visible — whether the element is actually visible • in_viewport — whether it's within the visible scroll area • attributes — all HTML attributes • aria — ARIA role, name, label, disabled, hidden • child_count — number of child elements • text_content — visible text (first 500 chars) Use this to diagnose elements that should be visible but aren't, or to understand the structure around a broken component. |
| devtools_css_variablesA | Return CSS custom properties (variables) defined on :root. Helps diagnose theming issues: missing tokens, wrong colour values, variables that weren't loaded because a CSS file failed to fetch. |
| browser_get_titleA | Return the of the current page. |
| browser_get_urlA | Return the current URL. |
| browser_get_sourceA | Return the full HTML source of the current page. |
| browser_get_textA | Get visible text content of the page or a specific element. |
| browser_get_attributeA | Return the value of an HTML attribute on an element. |
| browser_clickC | Click an element. |
| browser_fillC | Type text into an input field. |
| browser_selectA | Select an in a dropdown. |
| browser_execute_jsB | Execute JavaScript and return the result as a string. |
| browser_waitA | Wait until an element is visible on the page. |
| browser_navigateA | Navigate to a URL in the existing session (keeps BiDi listeners active). |
| browser_backA | Navigate back. |
| browser_forwardB | Navigate forward. |
| browser_refreshA | Reload the current page. |
| browser_switch_frameB | Switch into an or back to the main document. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Vitexus/mcp-server-webdriver'
If you have feedback or need assistance with the MCP directory API, please join our Discord server