Docs · Connect an agent

Cursor, Windsurf, Cline

All three take the same block of JSON, with your token in it.

The block

Create a token on the dashboard's Tokens page and put it where tt_live_… is:

mcp.json
{
  "mcpServers": {
    "browser": {
      "type": "http",
      "url": "https://tabtunnel.dev/v1/mcp",
      "headers": { "Authorization": "Bearer tt_live_…" }
    }
  }
}

browser is the name the editor will show; call it what you like. If the editor rejects the block, try "transport" in place of "type" — some versions use that name.

Where the file goes

Look for MCP in the editor's settings. There is usually a button that opens the right file for you. Most editors have one file for all your projects and one per project.

Prefer the file for all projects. The block contains your token, so a per-project file that gets committed puts your token in the repository — if you use one, add it to .gitignore first.

Check it worked

Reload the editor's MCP servers — most editors do not notice a changed file until you do. Then ask the assistant to list your browsers; yours should come back with the name you gave it during setup. If it has not been used for a while, the first command takes a few seconds.

If it does not work

401 Unauthorized The token no longer works. Create a new one on Tokens and put it in place of the old one.
No browsers listed The token is for a different organization from your browser. Check which organization is shown at the top of the dashboard, then create the token there.
Your browser is offline Open Chrome and check the TabTunnel extension is signed in. connected and reachable both mean it is ready.
Chrome asks about a site Answer it and the agent carries on. This happens the first time an agent visits a site, unless you chose Allow everything during setup.

Next: what it can do.

Is something here wrong, or missing? Tell us.