fire-fodex
Allows an AI agent to control Firefox, including listing open tabs, navigating, clicking, typing, scrolling, taking screenshots, and executing page-side actions via a WebExtension and native messaging.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@fire-fodexlist my open Firefox tabs"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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.
Related MCP server: ruyipage-mcp
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:hostLoad 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 mcpMCP 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.ps1smoke.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 tabsThe native host listens on 127.0.0.1:17365 while the extension is connected.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/skjshr/fire-fodex'
If you have feedback or need assistance with the MCP directory API, please join our Discord server