In-depth architectural comparison of the Camoufox MCP and Firefox Devtools MCP MCP servers. Compare execution transports, security boundaries, tool capabilities, quality scores, and ready-to-paste client installation snippets for Claude, Cursor, Windsurf, and VS Code.
At a Glance & Executive Verdict
Camoufox MCP
Browser Automation · Local stdio
Quality: 52/100 (Good) | Auth: No auth required
Firefox Devtools MCP
Browser Automation · Local stdio
Quality: 65/100 (Great) | Auth: No auth required
Verdict Summary: Choose Camoufox MCP if you need specialized Browser Automation tools running via a local process. Choose Firefox Devtools MCP if your workspace requires Browser Automation integration with local subprocess execution. Both servers can be configured concurrently in your client's mcpServers manifest.
Which MCP Server Should You Choose?
Choose Camoufox MCP when:
You need dedicated capabilities in the Browser Automation domain.
You prefer local stdio subprocess transport architecture.
Your security boundary fits: No auth required (Free / Open Source).
You need dedicated capabilities in the Browser Automation domain.
You prefer local stdio subprocess transport architecture.
Your security boundary fits: No auth required (Free / Open Source).
You have access to required keys: START_URL, FIREFOX_HEADLESS, ACCEPT_INSECURE_CERTS, CONNECT_EXISTING, MARIONETTE_PORT, TOOL_PRESET, ENABLE_SCRIPT, ENABLE_PRIVILEGED_CONTEXT.
Camoufox MCP is categorized under Browser Automation and uses a local stdio subprocess. In contrast, Firefox Devtools MCP belongs to Browser Automation using local stdio subprocess. Select Camoufox MCP when you need capabilities focused on browser automation and Firefox Devtools MCP when you require tools for browser automation.
List open tabs (index, title, URL). Selected tab is marked.
new_page
Open new tab at URL. Returns tab index.
navigate_page
Navigate selected tab to URL.
select_page
Select active tab by index, URL, or title. Index takes precedence.
close_page
Close tab by index.
get_page_text
Get the visible text of the page (document.body.innerText). Caps at maxLength (default 20000 chars); saveTo saves the full text to a file.
take_snapshot
Capture DOM snapshot with stable UIDs. A UID stays valid across snapshots until its element is removed or the page navigates. Output caps at maxLines (default 100); scope with selector or dump the full tree with saveTo.
resolve_uid_to_selector
Resolve UID to CSS selector. Fails if the element is gone.
clear_snapshot
Clear snapshot UIDs. Usually not needed.
click_by_uid
Click element by UID. Set dblClick for double-click.