TabRunner — Claude Code MCP server: browser tasks in your own Chrome
Hands browser work to TabRunner, an agent running in your own Chrome with your tabs and signed-in accounts.
claude mcp add --env TABRUNNER_BRIDGE_PORT=<TABRUNNER_BRIDGE_PORT> --transport stdio daemon -- npx -y tabrunner-mcpWhat TabRunner does
TabRunner lives in your Chrome. It sees the tabs you have open and the accounts you are already logged into, so a task does not stall at a login wall. The MCP server plugs that agent into Claude, Claude Desktop, Codex and other MCP clients: the client hands over a job and either waits for the answer or clicks through the page on its own.
Two things have to be in place before it runs: bun, and the TabRunner extension with its bridge switched on under Settings → MCP. Start by calling health. That call reports whether the extension is reachable and lists the steps to take when it is not. With the bridge off, nothing works.
You can add the server directly with claude mcp add --scope user tabrunner -- bunx tabrunner-mcp@latest. The plugin route installs the same server along with a skill that shows the model how to drive it. Tool and setting details sit in docs/mcp.md.
What it helps with
- walk through pages and pull an answer together
- reach a service under your own session without handing over a password
- drive a UI that ships no API
- confirm the extension and the MCP client can talk to each other
- run a browser job from Claude, Codex or Cursor
Example prompts for the agent
- Call
healthand tell me if the TabRunner extension is connected - Open my orders page in Chrome and list the order numbers from the last week
- Go through this site and find where the returns form lives
How to install TabRunner
Platform CLI
claude mcp add --env TABRUNNER_BRIDGE_PORT=<TABRUNNER_BRIDGE_PORT> --transport stdio daemon -- npx -y tabrunner-mcpReplace <…> with your own values
Platform CLI
codex mcp add daemon --env TABRUNNER_BRIDGE_PORT=<TABRUNNER_BRIDGE_PORT> -- npx -y tabrunner-mcpReplace <…> with your own values
Config file
{
"mcpServers": {
"daemon": {
"command": "npx",
"args": [
"-y",
"tabrunner-mcp"
],
"env": {
"TABRUNNER_BRIDGE_PORT": "<TABRUNNER_BRIDGE_PORT>"
}
}
}
}Replace <…> with your own values
Config file
{
"servers": {
"daemon": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"tabrunner-mcp"
],
"env": {
"TABRUNNER_BRIDGE_PORT": "<TABRUNNER_BRIDGE_PORT>"
}
}
}
}Replace <…> with your own values
Platform CLI
gemini mcp add -e TABRUNNER_BRIDGE_PORT=<TABRUNNER_BRIDGE_PORT> daemon npx -y tabrunner-mcpReplace <…> with your own values
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about TabRunner
How do I install TabRunner in Claude Code?
Run claude mcp add --scope user tabrunner -- bunx tabrunner-mcp@latest. Or install the plugin: claude plugin marketplace add tabrunner/tabrunner first, then claude plugin install tabrunner@tabrunner.
What does TabRunner do?
It is a browser agent that works inside your own Chrome, using your tabs and your active sessions. The MCP server lets a client assign it tasks and read back the result.
What do I need to run TabRunner?
bun installed, plus the TabRunner extension with the bridge enabled in Settings → MCP. Call health first to see whether the server can reach the extension.