@mozilla/firefox-devtools-mcp-moz
Model Context Protocol (MCP) server that lets AI agents browse the web and debug web pages with Firefox (moz build with privileged context support)
npm · fingerprint 3932f40af27a3281d92bc00d · repository · RSS
What changed
Changed 2026-10-16 11:11 UTC
1 tool added.
+ tool added: print_page
Changed 2026-10-05 14:15 UTC
2 descriptions rewritten, 2 schema or annotation changes with the description left byte-identical, 3 tools added, 1 tool removed.
+ tool added: close_firefox_session
--- pinned/navigate_page +++ observed/navigate_page { "annotations": { "readOnlyHint": false + }, + "wait": { + "description": "When to return: 'none' (navigation started), 'interactive' (DOMContentLoaded), 'complete' (load event fired, including subresources). Omit for the default: 'interactive' for http/https/data/blob/file, 'none' for other schemes. Use 'complete' when the page must be fully loaded, e.g. before stopping a performance recording.", + "enum": [ + "none", + "interactive", + "complete" + ], + "type": "string" } }, "required": [
--- pinned/new_page +++ observed/new_page { "annotations": { "readOnlyHint": false + }, + "wait": { + "description": "When to return: 'none' (navigation started), 'interactive' (DOMContentLoaded), 'complete' (load event fired, including subresources). Omit for the default: 'interactive' for http/https/data/blob/file, 'none' for other schemes. Use 'complete' when the page must be fully loaded, e.g. before stopping a performance recording.", + "enum": [ + "none", + "interactive", + "complete" + ], + "type": "string" } }, "required": [
+ tool added: press_key
--- pinned/screenshot_page +++ observed/screenshot_page { "annotations": { "readOnlyHint": true - "description": "Capture page screenshot as base64 PNG.", + "description": "Capture viewport screenshot as base64 PNG. Set fullPage for the whole scrollable document.", "inputSchema": { "properties": { + "fullPage": { + "description": "Capture the whole scrollable document (default: false)", + "type": "boolean" + }, "saveTo": { "description": "Save the screenshot to a file instead of returning it as image data in the response. Pass a file path, an existing directory (generated file inside), or true (generated file under ~/.firefox-devtools-mcp/output/). Relative paths resolve against the current working directory.", "type": [
--- pinned/set_download_behavior +++ observed/set_download_behavior { - "description": "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.", + "description": "Control how downloads are handled: allow (save to a destination folder), deny (cancel), or reset to default. Avoids the native save-file dialog. Requires a recent Firefox.", "inputSchema": { "properties": { "behavior": { - "description": "'allowed' saves downloads automatically, 'denied' cancels them, 'default' resets to the browser default", + "description": "'allowed' saves downloads to `downloadFolder`, 'denied' cancels them, 'default' resets to the browser default", "enum": [ "allowed", "denied", + }, + "downloadFolder": { + "description": "Path to the folder where downloads should be stored, created if missing. Only used for behavior='allowed', where it defaults to ~/.firefox-devtools-mcp/output/downloads. Relative paths resolve against the current working directory.", + "type": "string" } }, "required": [
+ tool added: type_text
tool removed: restart_firefox
Current tools
Show all 35 tool fingerprints
Watch this server yourself
If you run this server, put the proxy in front of it. It pins these exact fingerprints on first connect and stops the session if they move.
npx -y mcp-pin@0.2.3 -- <your @mozilla/firefox-devtools-mcp-moz command>
Or subscribe to this page's RSS feed to be told when it changes.
Badge
The badge states one fact about time and nothing else. It never claims a server is safe.
[](https://mcp-pin.gautamkhosla.com/servers/1352cbe30246f38d.html)