# TabRunner

Hands browser work to TabRunner, an agent running in your own Chrome with your tabs and signed-in accounts.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 2
- Author: tabrunner
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/tabrunner/tabrunner/tree/HEAD/daemon
- Updated: 2026-10-23
- HTML: https://affpapa.org/en/nevibecode/mcp/tabrunner

## What it 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`.

## Requirements
- Needs: Node.js (commands run via npx)
- Environment variables: `TABRUNNER_BRIDGE_PORT` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add --env TABRUNNER_BRIDGE_PORT=<TABRUNNER_BRIDGE_PORT> --transport stdio daemon -- npx -y tabrunner-mcp
```
Replace <…> with your own values

### Codex

**Platform CLI**
```bash
codex mcp add daemon --env TABRUNNER_BRIDGE_PORT=<TABRUNNER_BRIDGE_PORT> -- npx -y tabrunner-mcp
```
Replace <…> with your own values

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "daemon": {
            "command": "npx",
            "args": [
                "-y",
                "tabrunner-mcp"
            ],
            "env": {
                "TABRUNNER_BRIDGE_PORT": "<TABRUNNER_BRIDGE_PORT>"
            }
        }
    }
}
```
Replace <…> with your own values

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "daemon": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "tabrunner-mcp"
            ],
            "env": {
                "TABRUNNER_BRIDGE_PORT": "<TABRUNNER_BRIDGE_PORT>"
            }
        }
    }
}
```
Replace <…> with your own values

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e TABRUNNER_BRIDGE_PORT=<TABRUNNER_BRIDGE_PORT> daemon npx -y tabrunner-mcp
```
Replace <…> with your own values

## When to use it
- 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
- Call `health` and 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

## Similar
- [browser-screenshot](https://affpapa.org/en/nevibecode/skills/browser-screenshot.md) — skill · 4100 installs
- [agent-browser](https://affpapa.org/en/nevibecode/skills/brianlovin-agent-browser.md) — skill · 2800 installs
- [dev-browser](https://affpapa.org/en/nevibecode/skills/dev-browser.md) — skill · 2500 installs
- [webmcp-gen](https://affpapa.org/en/nevibecode/skills/webmcp-gen.md) — skill · 562 installs
- [Oya Browser](https://affpapa.org/en/nevibecode/mcp/oya-browser.md) — MCP server · ★ 352
- [browser](https://affpapa.org/en/nevibecode/skills/browser.md) — skill · 5900 installs

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
