fire-fodex
A local Firefox bridge for MCP agents that enables tab control, DOM interaction, mouse/keyboard actions, and screenshots.
README
fire-fodex
fire-fodex is a local Firefox bridge for MCP agents.
It lets an agent see open Firefox tabs, claim one, read a compact page snapshot, click, type, scroll, take screenshots, and run a small set of page-side actions.
This is not a Chrome plugin clone. It is a separate Firefox setup built with a WebExtension, Firefox native messaging, and a local MCP server.
v1 is still shaped like a local dev tool. You load the extension manually, run the MCP server yourself, and should read the code before pointing it at anything important.
What works
- Lists open Firefox tabs.
- Opens or claims a tab for an agent session.
- Navigates, reloads, goes back, and goes forward.
- Reads a compact DOM snapshot from the visible page.
- Finds visible text.
- Clicks, types, pastes, focuses, selects text, and sends keypresses.
- Moves the mouse, scrolls, and drags.
- Waits for text or selectors.
- Captures screenshots, including full-page screenshots.
- Exposes the actions as MCP tools.
What it does not do
- It does not read Firefox cookies, saved passwords, profile databases, or localStorage directly.
- It does not send browser data to a remote service by itself.
- It does not include cloud sync, account auth, recording, or a permission UI.
- It is not packaged for AMO yet.
firefox_eval exists for local page automation. It blocks obvious cookie, storage, and password extraction patterns, but do not treat that as a real sandbox. If you run random agent code against your main browser profile, that is on you.
Requirements
- Windows
- Firefox Stable
- Node.js 24+
- npm 11+
Setup
cd path\to\fire-fodex
npm install
npm run build
npm run install:host
Load the extension:
- Open Firefox.
- Go to
about:debugging#/runtime/this-firefox. - Click
Load Temporary Add-on.... - Select
extension\manifest.jsonfrom this repository.
Start the MCP server:
npm run mcp
MCP client config:
{
"mcpServers": {
"fire-fodex": {
"command": "node",
"args": [
"path\\to\\fire-fodex\\dist\\mcp-server\\index.js"
]
}
}
}
Tools
firefox_list_tabsfirefox_claim_tabfirefox_open_tabfirefox_navigatefirefox_snapshotfirefox_screenshotfirefox_findfirefox_wait_forfirefox_mouse_clickfirefox_mouse_movefirefox_scrollfirefox_dragfirefox_focusfirefox_select_textfirefox_pastefirefox_evalfirefox_clickfirefox_typefirefox_keypressfirefox_backfirefox_forwardfirefox_reloadfirefox_close_tabfirefox_release
The free-operation tools are meant to let an agent work closer to how a person uses a browser:
- Use
firefox_snapshotorfirefox_findto discover visible controls. - Use
firefox_focus,firefox_paste,firefox_type,firefox_select_text, andfirefox_keypressfor form work. - Use
firefox_mouse_move,firefox_mouse_click,firefox_scroll, andfirefox_dragfor pointer-style interaction. - Use
firefox_wait_forafter actions that change the page. - Use
firefox_screenshotwithfullPageor crop coordinates when visual state matters. - Use
firefox_evalfor local page automation scripts. It blocks obvious cookie, storage, and password extraction patterns.
Verification
npm run typecheck
npm test
npm run lint:extension
npm run check
powershell -ExecutionPolicy Bypass -File scripts\smoke.ps1
smoke.ps1 requires the native host to be installed and the Firefox extension to be loaded.
Permission Model
The extension asks for <all_urls> because the goal is to operate normal tabs across normal sites.
That is a big permission. This project is meant to be run from source by people who understand that tradeoff.
Architecture
AI agent / MCP client
|
| stdio MCP
v
fire-fodex MCP server
|
| localhost JSON request
v
native messaging host
|
| Firefox native messaging stdio
v
Firefox WebExtension
|
| tabs + content scripts
v
Firefox tabs
The native host listens on 127.0.0.1:17365 while the extension is connected.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
Neon Database
MCP server for interacting with Neon Management API and databases
E2B
Using MCP to run code via e2b.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.