Local setup

Build the server, load the extension, connect the first tab.

BrowseFleetMCP only works when both sides are present: the local server and the Chrome extension. Client config is just the launcher. The browser side still needs a live tab connection, and the extension currently ships from this repo checkout.

Step 1

Build and load the Chrome extension from this checkout.

Every install path still depends on the unpacked extension in extension-v2/, even if the server itself is launched later from npx -y browsefleetmcp. After the build, open chrome://extensions, enable Developer mode, click Load unpacked, and select extension-v2/.

git clone https://github.com/JakubJDolezal/browsefleetmcp.git
cd browsefleetmcp/extension-v2
npm install
npm run build

Step 2

Pick the published package or the current checkout for the server.

Use the published package when you want the npm release. Use the local checkout when you are developing this repo or want clients to run your current source tree directly.

npx -y browsefleetmcp --help
cd /absolute/path/to/browsefleetmcp
npm install
npm run build
node /absolute/path/to/browsefleetmcp/dist/index.js --help

Default ports

9150, 9152, 9154

The browser side prefers port 9150 with two backup ports.

Broker override

Separate internal path

Browser and broker ports can be set independently from the CLI.

Auth token

Optional local lock

Use a shared token if you want the extension and broker to authenticate.

Critical state

Connected current tab

No browser action succeeds until the popup has attached the tab.

browsefleetmcp --port 9200 --fallback-ports 9202,9204
browsefleetmcp --broker-port 9300 --broker-fallback-ports 9302,9304
browsefleetmcp --auth-token your-shared-token

BROWSEFLEETMCP_AUTH_TOKEN=your-shared-token browsefleetmcp

Step 3

Point your actual client at the server.

Once the extension is loaded and the local server command is clear, the next step is just the launcher shape for your MCP host. The one-page setup guide has copy-ready commands by target, and the client page keeps the reference config snippets.

After setup

The popup state matters more than the client you launched from.

Focus-sensitive actions

browser_click, browser_drag, browser_hover, browser_press_key, and browser_type require focus. BrowseFleetMCP serializes them behind a global focus lock.

Session inspection

If you connect multiple tabs, use browser_list_sessions and browser_switch_session to control which one the current MCP client owns.

Snapshot vs screenshot

browser_snapshot gives the simplified accessibility view. browser_screenshot captures the rendered page itself.

Most likely failure

If the extension is loaded but the tab is not connected, browser calls fail with No connected tab.