Firefox Tab Management Agent MCP
Provides tools for managing tabs and native tab groups in a live Firefox session, including listing tabs and groups, opening background URLs, creating and moving tabs into exact groups, ungrouping, and verifying state after writes.
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., "@Firefox Tab Management Agent MCPOpen these URLs in Firefox in the background and group them as 'Reading Queue'."
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.
Agent Bridge for Tab Management in Firefox
A local-first toolkit that gives trusted AI agents precise access to tabs and native tab groups in the user's live Firefox session.
This repository distributes three cooperating components:
Component | Directory | Required | Purpose |
Tab Management Agent Bridge for Firefox |
| Yes | Calls Firefox's native |
Firefox Tab Management Agent MCP |
| Yes | Exposes a small, authenticated MCP tool surface over stdio |
Firefox Tab Manager Skill |
| Optional | Teaches compatible agents the exact-match and verification workflow |
The MCP server provides the capability. The Agent Skill provides behavior guidance. The browser extension is the only component that talks to Firefox. They are complementary, not alternatives.
What it can do
List live tabs and native tab groups with stable IDs.
Open explicit
http://andhttps://URLs without stealing focus by default.Create an exactly named group from ungrouped tabs in one window.
Move a precisely selected tab into an existing group.
Ungroup a precisely selected tab.
Reject ambiguous matches, duplicate group names, cross-window grouping, and implicit unpinning.
Read Firefox state again after every write and report success only after verification.
It does not read page bodies, inject content scripts, execute arbitrary page JavaScript, inspect cookies, or send browser data to a project-operated remote service.
Related MCP server: mcp-browser
A practical workflow: collect now, read later
Suppose you come across useful articles, documentation, or research links while browsing a feed, chatting, or working on another device. You want to read them carefully later in desktop Firefox, but opening and organizing every page yourself would interrupt the current task and leave the browser full of loose tabs.
Send the URLs to a connected agent such as Hermes instead:
Open these URLs in Firefox in the background. Put every new tab in the exact
group "Reading Queue", creating that group only if it does not exist, and
verify the final tab and group IDs.The agent opens the pages without taking focus and keeps them together in one dedicated group. You can continue what you are doing, then later sit down at the computer and work through the group as a focused reading queue. This turns Firefox tab groups into an inbox for the web: less clutter, less context switching, and less time spent manually organizing tabs.
Five-minute setup
Version 0.3.1 includes a Mozilla-reviewed and production-signed XPI in the GitHub Release. It upgrades v0.3.0 in place under the same signed Gecko ID, preserving the extension's local settings while adopting the current Tab Management Agent Bridge for Firefox name.
1. Install the signed extension
Download
tab_management_agent_bridge_for_firefox-0.3.1-mozilla-signed.xpifrom the v0.3.1 Release.Open the XPI with Firefox and approve the installation prompt.
The Mozilla-signed extension remains installed after Firefox restarts.
2. Clone and prepare the MCP server and Skill
git clone https://github.com/Johnnyzlee/agent-bridge-for-tab-management-in-firefox.git
cd agent-bridge-for-tab-management-in-firefox
npm run quickstartquickstart installs the locked dependencies, builds the MCP server and a development copy of the extension, preserves an existing local token when rerun, and generates:
.local/bridge-token.txt.local/mcp-config.jsondist/server/index.jsdist/firefox-extension/manifest.json
The .local/ directory is ignored by Git. Treat its token as a local secret.
3. Configure the extension
Open Tab Management Agent Bridge for Firefox preferences, keep port 8765, paste the token from .local/bridge-token.txt, and select Save and reconnect.
For source development only, you may instead open about:debugging#/runtime/this-firefox, select Load Temporary Add-on, and choose dist/firefox-extension/manifest.json. Firefox removes that temporary build after each restart; do not load it alongside the signed extension on the same port.
4. Connect an MCP client
For clients using the common mcpServers JSON format, merge the generated .local/mcp-config.json into the client's configuration and restart the client.
For Codex, run the generated helper and then restart Codex:
.local/add-to-codex.shPowerShell users can run .local/add-to-codex.ps1. These ignored local files contain the token, so do not share them. If an MCP entry named firefox-tabs already exists, remove or update that old entry before running the helper.
The equivalent generic configuration is:
{
"mcpServers": {
"firefox-tabs": {
"command": "node",
"args": ["/absolute/path/to/agent-bridge-for-tab-management-in-firefox/dist/server/index.js"],
"env": {
"FIREFOX_TABS_BRIDGE_PORT": "8765",
"FIREFOX_TABS_BRIDGE_TOKEN": "<same-token-as-the-extension>"
}
}
}
}Version 0.3.1 uses one bridge port, so only one stdio MCP client can own the connection at a time. Stop Codex before handing the same port to another client such as Hermes.
5. Optionally install the Agent Skill
MCP is sufficient for calling the tools. Install the Skill when the agent host supports SKILL.md packages and you want consistent exact matching, guarded failures, and post-operation verification.
For Codex:
mkdir -p "${CODEX_HOME:-$HOME/.codex}/skills"
cp -R skills/firefox-tab-manager "${CODEX_HOME:-$HOME/.codex}/skills/"Restart the agent after installation. For another agent host, copy skills/firefox-tab-manager/ into that product's documented skills directory. Skill formats are not standardized across all agents; hosts without SKILL.md support should use the MCP server alone.
6. Verify the connection
Ask the agent:
Check whether the Firefox bridge is connected, list the current tab groups,
open https://example.com, place the new tab into an exact group named Research,
creating it only if it does not exist, and verify the final group ID.Architecture
flowchart LR
A["AI agent + optional Skill"] -->|"stdio / MCP"| B["Firefox Tab Management Agent MCP"]
B <-->|"127.0.0.1 WebSocket + shared token"| C["Tab Management Agent Bridge for Firefox"]
C <-->|"tabs + tabGroups APIs"| D["Live Firefox session"]The WebSocket listener binds only to loopback and accepts authenticated connections from a moz-extension:// origin. See architecture, security policy, and privacy policy.
MCP tools
Tool | Purpose | Writes browser state |
| Report bridge connectivity | No |
| List tab IDs, URLs, titles, windows, and group IDs | No |
| List current tab groups | No |
| Open an explicit HTTP(S) URL and return its tab ID | Yes |
| Create and verify a new group | Yes |
| Move one exact tab to one exact existing group | Yes |
| Remove one exact tab from its group | Yes |
Development
Requirements: Firefox 142 or newer, Node.js 20 or newer, and npm.
npm ci
npm run checkThe tests cover URL restrictions, exact matching, ambiguous-tab rejection, duplicate groups, cross-window grouping, pinned-tab protection, no-op success, ungrouping, WebSocket origin checks, token authentication, and request timeouts.
Maintainers should follow the release checklist and AMO reviewer guide. Build archives are release artifacts and are intentionally excluded from Git.
Contributing and license
Read CONTRIBUTING.md before opening a pull request. Security reports should follow SECURITY.md, not public issues.
Licensed under the Mozilla Public License 2.0. “Firefox” is used to identify compatibility with Mozilla Firefox; this project is independent and is not endorsed by Mozilla.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Flicense-qualityDmaintenanceReal browser tabs for AI agents through a safe localhost MCP bridge, enabling control of Chrome tabs via MCP-compatible AI CLIs.2
- Flicense-qualityCmaintenanceExposes Playwright browser automation as MCP tools, enabling AI assistants to control a real browser tab-by-tab for form filling, navigation, and more, while preserving the user's active session.
- Alicense-qualityBmaintenanceEnables MCP-compatible AI agents to securely control Chrome tabs via a local bridge, with explicit per-tab sharing and human approval for consequential actions.MIT
- Alicense-qualityBmaintenanceGives MCP-compatible AI agents direct control of your real browser with existing sessions, logins, and cookies. Supports multiple agents concurrently with tab targeting.2MIT
Related MCP Connectors
Live browser debugging for AI assistants — DOM, console, network via MCP.
A paid remote MCP for AI agent browser DevTools MCP, built to return verdicts, receipts, usage logs,
Browser MCP for logged-in tasks. Uses your Chrome — credentials stay local. Zero-token replay.
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/Johnnyzlee/agent-bridge-for-tab-management-in-firefox'
If you have feedback or need assistance with the MCP directory API, please join our Discord server