← 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

| Tap | Playwright MCP | Stagehand MCP
--- | --- | --- | ---
Runs where | Your own Chrome, locally | Headless Chromium, locally | Browserbase cloud
Login sessions | Yes — reuses your real cookies | No — logs out every run | Yes via Browserbase Sessions
Credentials leave your machine? | Never (architecturally) | Never (no auth at all) | Yes — cookies cross to Browserbase cloud
Token cost per run | Zero (compiled `.tap.json` plans) | Per-step LLM call | Per-step LLM call (cloud-side)
Drift detection | Built-in — `tap verify` | Manual | Manual
Pricing | Free; $19/mo for AI compile, $49/mo for self-heal | Free | Browserbase usage-based
Best for | Logged-in tasks, repeat workflows, deterministic pipelines | Public sites, one-shot scrapes | Cloud-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