These take one block of JSON. Same endpoint, same token, same shape in all three.
Mint a token on the dashboard's Tokens page and
put it where tt_live_… is:
{
"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.
Some builds spell the transport key "transport" rather than
"type", and some accept both — if the editor rejects the block,
that is the field to try.
Each editor keeps its own, and most offer both a global one and a per-project one. Look for MCP in the editor's settings — there is usually a button that opens the file for you, which is more reliable than a path, because the paths move between versions and platforms.
Choose the per-project file only if you mean it. The block above contains a
working credential, so a per-project mcp.json that gets committed
puts your token in the repository. Add it to
.gitignore first, or use the global file.
Reload the editor's MCP servers — most need it, and a stale config is the most common reason a correct block appears not to work. Then ask the assistant to list your browsers; your machine should come back by the name you gave it during setup. The first command against an idle browser waits a few seconds while it is pulled up.
A 401 means the token is wrong, revoked or expired — those are one
answer on purpose. An empty list means no browser is enrolled in that token's
organization.
Next: what it can do.
Is something here wrong, or missing? Tell us.