Firefox DevTools MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| START_URL | No | Open this URL on start. | |
| ENABLE_SCRIPT | No | Enable the evaluate_script tool. Set to 'true' to enable. | |
| ANDROID_PACKAGE | No | Android app package name. Default is 'org.mozilla.firefox'. | |
| MARIONETTE_PORT | No | Marionette port for connect-existing mode. Default is 2828. | |
| CONNECT_EXISTING | No | Attach to an already-running Firefox instead of launching a new one. Set to 'true' to enable. | |
| FIREFOX_HEADLESS | No | Run without UI. Set to 'true' to enable headless mode. | |
| ACCEPT_INSECURE_CERTS | No | Ignore TLS errors. Set to 'true' to accept insecure certificates. | |
| ENABLE_PRIVILEGED_CONTEXT | No | Enable privileged context tools. Set to 'true' to enable. Requires MOZ_REMOTE_ALLOW_SYSTEM_ACCESS=1. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {} |
| resources | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_pagesA | List open tabs (index, title, URL). Selected tab is marked. |
| new_pageB | Open new tab at URL. Returns tab index. |
| navigate_pageB | Navigate selected tab to URL. |
| select_pageA | Select active tab by index, URL, or title. Index takes precedence. |
| close_pageC | Close tab by index. |
| list_console_messagesB | List console messages. Supports filtering by level, time, text, source. |
| clear_console_messagesA | Clear collected console messages. |
| list_network_requestsC | List network requests. Returns IDs for get_network_request. |
| get_network_requestA | Get request details by ID. URL lookup as fallback. |
| take_snapshotA | Capture DOM snapshot with stable UIDs. Retake after navigation. |
| resolve_uid_to_selectorB | Resolve UID to CSS selector. Fails if stale. |
| clear_snapshotB | Clear snapshot cache. Usually not needed. |
| click_by_uidB | Click element by UID. Set dblClick for double-click. |
| hover_by_uidC | Hover over element by UID. |
| fill_by_uidC | Fill text input/textarea by UID. |
| drag_by_uid_to_uidC | Drag element to another (HTML5 drag events). |
| fill_form_by_uidC | Fill multiple form fields at once. |
| upload_file_by_uidB | Upload file to file input by UID. |
| screenshot_pageB | Capture page screenshot as base64 PNG. |
| screenshot_by_uidB | Capture element screenshot by UID as base64 PNG. |
| accept_dialogA | Accept browser dialog. Provide promptText for prompts. |
| dismiss_dialogA | Dismiss browser dialog. |
| navigate_historyA | Navigate history back/forward. UIDs become stale. |
| set_viewport_sizeB | Set viewport dimensions in pixels. |
| get_firefox_outputC | Retrieve Firefox output (stdout/stderr including MOZ_LOG, warnings, crashes, stack traces). Returns recent output from the capture file. Use filters to focus on specific content. |
| get_firefox_infoA | Get information about the current Firefox instance configuration, including binary path, environment variables, and output file location. |
| restart_firefoxA | Restart Firefox with different configuration. Allows changing binary path, environment variables, and other options. All current tabs will be closed. |
| install_extensionB | Install a Firefox extension using WebDriver BiDi webExtension.install command. Supports installing from archive (.xpi/.zip), base64-encoded data, or unpacked directory. |
| uninstall_extensionA | Uninstall a Firefox extension using WebDriver BiDi webExtension.uninstall command. Requires the extension ID returned by install_extension or obtained from list_extensions. |
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/freema/firefox-devtools-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server