← Tap · Blog

Claude Code Browser Automation: How to Run Logged-In Websites from Claude Code

May 1, 2026 · Leon Ting · 7 min read

TL;DR. Claude Code on its own can't see your browser. If you want it to read your Reddit notifications, scrape a paid Cursor dashboard, click through Amazon Seller Central, or post on X — you need a browser MCP. Three real options exist: Tap (your own logged-in Chrome, local-only), Playwright MCP (headless, no login), Stagehand (cloud + Browserbase). Pick by whether the task needs your logged-in session and where you want credentials to live.

Why this comes up

Claude Code's built-in tools cover files, git, shell, and code edits. They don't cover the open web. The moment you ask it to "read my Reddit DMs," "find what I spent on Cursor last month," or "click through this dashboard and pull the table" — the agent has nothing. It can write a curl command, but most of those targets either reject anonymous traffic or require a login session.

This is the gap browser-automation MCPs fill. Three of them have meaningful indie traction in 2026; below is what each is actually for.

The three real options

TapPlaywright MCPStagehand MCP
Runs whereYour own Chrome, locallyHeadless Chromium, locallyBrowserbase cloud
Login sessionsYes — reuses your real cookiesNo — logs out every runYes via Browserbase Sessions
Credentials leave your machine?Never (architecturally)Never (no auth at all)Yes — cookies cross to Browserbase cloud
Token cost per runZero (compiled .tap.json plans)Per-step LLM callPer-step LLM call (cloud-side)
Drift detectionBuilt-in — tap verifyManualManual
PricingFree; $19/mo for AI compile, $49/mo for self-healFreeBrowserbase usage-based
Best forLogged-in tasks, repeat workflows, deterministic pipelinesPublic sites, one-shot scrapesCloud-first orchestration with budget

How to pick

The decision is almost always the credential-location axis.

  1. Does the task need your login session?
    • No — the page is public (HN, Wikipedia, public docs). Use Playwright MCP. It's the lightest path.
    • Yes — continue.
  2. Are you OK shipping cookies to a third-party cloud?
    • Yes, with budget — Stagehand on Browserbase. The session stays in their cloud; you pay per-minute.
    • No — Tap. The Chrome extension reads what your real browser already has. Cookies never cross a trust boundary, by architecture.
  3. Will you run this more than three times?
    • Yes — lean toward Tap. It compiles a .tap.json plan once and replays at zero LLM tokens forever after. Per-run token cost = $0.
    • No — either tool's per-run AI cost is rounding error.

Concrete examples

"Tell me what I spent on Cursor last month." Cursor's billing page is behind login. Stagehand needs your Cursor session in their cloud; Playwright MCP can't log in. Tap reads your already-open browser session locally. Tap.

"Pull the latest 50 stories from Hacker News." No login needed. Either MCP works. Playwright MCP is fine; Tap is overkill unless you're going to run this repeatedly (then the zero-token replay matters).

"Post this thread to X every Tuesday at 9am." X requires login. Cookies-in-cloud (Stagehand) means a Browserbase compromise = your X account. Tap keeps the cookies in your real Chrome on your laptop, runs scheduled via your local cron. Tap.

"Build a research agent that visits 20 random sites and summarizes." Public web, no login, one-shot. Playwright MCP. It's literally the design target.

"Track Helium 10 competitor prices for my Amazon listings." Needs your Amazon Seller Central session. Tap.

Why Tap exists

The cloud-first SDKs (Stagehand, Apify, Vercel-Agent-Browser) all share a structural property: they need to ship your credentials to their cloud to function. That's not a policy choice; it's an architectural choice. The session has to exist somewhere, and they're not in your browser.

Tap inverts the topology. The session stays in your real, logged-in Chrome, on your real machine. The Chrome extension reads what's already there. Nothing crosses a trust boundary because there's no trust boundary to cross. That's a real difference for anyone whose threat model includes "I don't want to give my Reddit / Cursor / Amazon login to a YC-stage startup's database."

The trade-off is honest: Tap can't run on a server you don't have. If you need cloud-scale orchestration where the agent spins up 50 parallel sessions, Stagehand is built for that and Tap isn't. For the indie / single-developer / "automate the things I already do" cohort, the trade-off lands the other direction.

Setup

If you've decided on Tap:

Install

brew install LeonTing1010/tap/taprun
tap mcp stdio      # point your Claude Code mcpServers config at this command

Once registered, Tap is an MCP server in your Claude Code session with 3 meta verbs (capture / verify / mark) plus auto-projected per-plan tools (<site>.<name>) for every saved tap. AI participates only at capture time.

From there: ask Claude Code to do something on a logged-in site. It'll use Tap as the runtime. The first run is interactive; the second run replays the compiled .tap.json plan at zero LLM tokens.

If you're not sure yet

Try Playwright MCP first. It's the smallest commitment — nothing to install beyond the npm package, no extension, no browser permissions. If you hit a wall on a login-required task, come back to this page.

The wall comes faster than people expect.


Related reading: Six Products. Same Form Factor. Tap Is the Substrate. · Authenticated browser MCP — what changes when the credential is yours · Playwright MCP vs Tap: token cost