Firefox DevTools MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DEBUG | No | Set to '*' to include verbose debug logs. | |
| START_URL | No | Open this URL on start. | |
| TOOL_PRESET | No | Select which tool modules to enable: slim, basic (default), developer, mozilla, or all. | basic |
| ENABLE_SCRIPT | No | Deprecated, use --tool-preset developer or --tools ... script debugging. Selects the developer tool preset. Set to 'true' to enable. | |
| ANDROID_PACKAGE | No | Android app package name. Default org.mozilla.firefox. Other packages: org.mozilla.firefox_beta for Firefox Beta, org.mozilla.fenix for Firefox Nightly, org.mozilla.fenix.debug for Firefox Nightly Debug, org.mozilla.geckoview_example for geckoview. | org.mozilla.firefox |
| MARIONETTE_PORT | No | Marionette port for connect-existing mode, default 2828. | 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 (headless mode). Set to 'true' to enable. | |
| ACCEPT_INSECURE_CERTS | No | Ignore TLS errors. Set to 'true' to enable. | |
| ENABLE_PRIVILEGED_CONTEXT | No | Deprecated, use --tool-preset mozilla or --tools ... privileged prefs. Selects the mozilla tool preset. Requires MOZ_REMOTE_ALLOW_SYSTEM_ACCESS=1. Set to 'true' to enable. | |
| MOZ_REMOTE_ALLOW_SYSTEM_ACCESS | No | Required for privileged context and prefs modules. Set to '1' to enable. |
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_pageA | Open new tab at URL. Returns tab index. |
| navigate_pageA | Navigate selected tab to URL. |
| select_pageA | Select active tab by index, URL, or title. Index takes precedence. |
| close_pageA | Close tab by index. |
| take_snapshotA | Capture DOM snapshot with stable UIDs. Retake after navigation. |
| resolve_uid_to_selectorA | Resolve UID to CSS selector. Fails if stale. |
| clear_snapshotA | Clear snapshot cache. Usually not needed. |
| click_by_uidA | Click element by UID. Set dblClick for double-click. |
| hover_by_uidB | Hover over element by UID. |
| fill_by_uidB | Fill text input/textarea by UID. |
| drag_by_uid_to_uidB | Drag element to another (HTML5 drag events). |
| fill_form_by_uidA | Fill multiple form fields at once. |
| upload_file_by_uidB | Upload file to file input by UID. |
| screenshot_pageA | Capture page screenshot as base64 PNG. |
| screenshot_by_uidA | Capture element screenshot by UID as base64 PNG. |
| list_downloadsA | List downloads tracked since startup, including status and saved file path. |
| clear_downloadsA | Clear the tracked downloads buffer. |
| set_download_behaviorA | Control how downloads are handled: allow (save silently to the default download directory), deny (cancel), or reset to default. Avoids the native save-file dialog. Requires a recent Firefox. |
| 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_sizeA | Set viewport dimensions in pixels. |
| get_firefox_outputA | 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_extensionA | 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. |
| screencast_startA | Start recording a screencast (video) of the current page viewport, saving the output to a file in the downloads directory. Returns a screencast id to pass to screencast_stop. Multiple recordings can run at once. |
| screencast_stopA | Stop an in-progress screencast recording started with screencast_start and finalize the video file. Returns the path to the saved file. |
| evaluate_scriptA | Execute JS function in page. Prefer UID tools for interactions. |
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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/BAM-DevCrew/maxerviker-firefox-devtools-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server