LABSCO SUMMARY
It deliberately cannot modify pages, interact with them or run scripts — that is the design.
Compared with web-automation servers, this trades capability for something you can point at your personal browser: no page modification, no arbitrary scripting, consent per domain before content is read, and screenshot permission that Firefox itself enforces and expires. The connection is local-only with a shared secret, and there are no runtime third-party dependencies in the extension. The project still calls itself experimental.
What it is
An MCP server paired with a Firefox extension, giving read access to tabs, history and page text, plus tab management.
What you get
- Open and close tabs, and get the list of what is open
- Tab groups created with a name and colour, and tabs reordered
- Browser history read and searched
- A webpage's text content and links, with user consent
- Find and highlight text in a tab, with user consent
- A screenshot of a tab's visible area, authorised per tab
- An audit log in the extension for tool calls, and per-tool enable and disable
Requirements
Firefox with the add-on from addons.mozilla.org, and either the Claude Desktop extension file or a local MCP server run with node. Set EXTENSION_SECRET to the value on the extension's preferences page; EXTENSION_PORT defaults to 8089. A Docker configuration is also provided. Reading page content requires your consent per domain, enforced at the extension manifest level; screenshots require clicking the toolbar button for that tab, and the authorisation expires when the tab navigates or closes.
Setup effort
Build from source — git clone https://github.com/eyalzh/browser-control-mcp.git
USE CASES
01
Cleaning up thirty open tabs
Close the ones unrelated to work, or the ones untouched for a day.
02
Organising what is left
Group development tabs under a named, coloured group and reorder the rest sensibly.
03
Finding an article you read last week
Search browsing history by what it was about rather than scrolling the history page.
04
Reading a page and its comments
Open a story, read the text and links with consent, and get the two compared.
BEFORE YOU INSTALL
What to know first
Requires
EXTENSION_SECRET in your environment
INSTALLATION
Connect your client
You clone this one yourself.
Server setup
TERMINAL
git clone https://github.com/eyalzh/browser-control-mcp.git
cd browser-control-mcpInstall the Firefox add-on from addons.mozilla.org (https://addons.mozilla.org/en-US/firefox/addon/browser-control-mcp/), or load it as a Temporary Add-on: type about:debugging in the Firefox URL bar, click "This Firefox", click "Load Temporary Add-on..." and select the manifest.json file under the firefox-extension folder in this project.
The extension's preferences page will open. Copy the secret key — it is the EXTENSION_SECRET value in the configuration.
MCP Clients
Claude Desktop
CLAUDE DESKTOP · TERMINAL
npm install
npm run buildCLAUDE DESKTOP · JSON
{
"mcpServers": {
"browser-control": {
"command": "node",
"args": [
"<YOUR_PATH_TO_REPO>/mcp-server/dist/server.js"
],
"env": {
"EXTENSION_SECRET": "<YOUR_EXTENSION_SECRET>",
"EXTENSION_PORT": "8089"
}
}
}
}<YOUR_PATH_TO_REPO> is the path of your browser-control-mcp clone.
Claude Desktop — Docker
CLAUDE DESKTOP — DOCKER · TERMINAL
docker build -t browser-control-mcp .CLAUDE DESKTOP — DOCKER · JSON
{
"mcpServers": {
"browser-control": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-p",
"127.0.0.1:8089:8089",
"-e",
"EXTENSION_SECRET=<YOUR_EXTENSION_SECRET>",
"-e",
"CONTAINERIZED=true",
"browser-control-mcp"
]
}
}
}Run the build in your browser-control-mcp clone — the Dockerfile is at its root. EXTENSION_SECRET is the secret from the extension's preferences page.