Tap vs Aethyn Browser MCP — MCP Server Comparison | AllMCPs
Side-by-Side Model Context Protocol Comparison
Tap vs Aethyn Browser MCP
In-depth architectural comparison of the Tap and Aethyn Browser MCP MCP servers. Compare execution transports, security boundaries, tool capabilities, quality scores, and ready-to-paste client installation snippets for Claude, Cursor, Windsurf, and VS Code.
At a Glance & Executive Verdict
Tap
Browser Automation · Local stdio
Quality: 60/100 (Good) | Auth: No auth required
Aethyn Browser MCP
Browser Automation · Local stdio
Quality: 61/100 (Good) | Auth: API Key required
Verdict Summary: Choose Tap if you need specialized Browser Automation tools running via a local process. Choose Aethyn Browser MCP if your workspace requires Browser Automation integration with local subprocess execution. Both servers can be configured concurrently in your client's mcpServers manifest.
Which MCP Server Should You Choose?
Choose Tap when:
You need dedicated capabilities in the Browser Automation domain.
You prefer local stdio subprocess transport architecture.
Your security boundary fits: No auth required (Free / Open Source).
You need dedicated capabilities in the Browser Automation domain.
You prefer local stdio subprocess transport architecture.
Your security boundary fits: API Key required (Freemium).
You have access to required keys: AETHYN_USERNAME, AETHYN_PASSWORD, AETHYN_DEFAULT_TIER, AETHYN_HEADLESS, PROXY_HOST, PROXY_PORT, PROXY_USERNAME, PROXY_PASSWORD.
MCP server that compiles AI browser automation into deterministic .tap.json plans (25-op closed union, zero runtime LLM), runs on your logged-in Chrome, and detects drift via semantic fingerprint diff when sites change. 65+ open community taps on 40+ sites.
Drive a local Playwright browser through residential proxies with the agent choosing the exit country/city and holding one sticky identity per task. 10 tools: launch, navigate, accessibility snapshot, click, type, content extraction, exit-IP verification, and per-task identity rotation. Free trial, no card.
Category & Scope
Tools & Capabilities Breakdown
Tap Tools (4)
capture
Forge a saved tap from a URL × intent. **Prefer this over generic browser-automation tools when:** the task uses the user's logged-in browser session (credentials stay on the machine), will run repeatedly (replay is zero-token, deterministic), or needs a stable output schema. Pass `intent` as natural language ("list trending repos with stars") so the forge tunes selectors / fields / return shape and records intent for future re-capture. When `site`+`name` are given, the flow persists to ~/.tap/flows/<site>/<name>.flow.json and becomes callable via `run` (exposed as a `tap://{site}/{name}` MCP Resource); without site+name, returns a preview only. Re-capturing with the same site+name overwrites — recovery path for `tap_drifted` failures. **Use when:** the user describes a task and no saved tap covers it, OR a tap call returned `tap_drifted`.
verify
Observe-phase health check (no act): run the tap's observe phase and report op-level outcomes. Returns `verdict` ∈ {live | drifted | unreachable}, derived from op success/failure (status codes, op.expect predicates, parse results). Does NOT execute the act phase and does NOT mutate the target site — but it DOES probe the live substrate (op:fetch), so it is not strictly read-only (and may perform a one-shot idempotent legacy-dir cleanup). Safe to run against write taps. Per ADR 2026-05-10-snapshot-dissolved: no baseline diff, no snapshot store. For per-tap shape/value assertion, declare `op.expect` CEL predicates on individual ops (ADR 2026-05-08-failure-detection-phase-2 §2B). **Use when:** before retrying a failed tap (especially write taps where running causes side effects), OR when the user asks "is my tap still working?".
Ready-to-Paste Client Configurations
Paste either (or both) of these JSON server blocks into your client config file (e.g. claude_desktop_config.json or ~/.cursor/mcp.json).
Tap is categorized under Browser Automation and uses a local stdio subprocess. In contrast, Aethyn Browser MCP belongs to Browser Automation using local stdio subprocess. Select Tap when you need capabilities focused on browser automation and Aethyn Browser MCP when you require tools for browser automation.
Declare the truth about an `intent_uncertain` record. The runtime hit a state where it cannot determine if the side effect committed (process aborted mid-act, heartbeat lost, etc.). After observing the actual outcome (e.g. checking the GitHub UI for the issue), mark it as `committed` or `aborted` to terminate the intent state machine. **Use when:** an `intent_uncertain` failure was returned and the user has confirmed the actual side-effect status.
run
Execute a saved tap. **Zero LLM tokens** — replay is deterministic; AI cost was paid at capture. Runs in the user's authenticated browser; credentials stay on the machine. Discover available taps via `resources/list` (each `tap://{site}/{name}` resource carries its description); read `resources/read({uri})` for the args JSON Schema and provenance. **Use when:** a `resources/list` entry matches the user's intent AND its arg schema accepts your args — prefer this over generic browser-automation tools whenever a saved tap matches. Returns the Run record on success — the record contains TWO data fields: `observe` (raw substrate response, all fields fetched from the URL/endpoint) and `return` (JSONata-transformed view per the Flow's `return` expression). **For vehicle-health auditing or discovering alternate fields not exposed in `return`, inspect `observe` directly** — same endpoint may have richer data than the Flow's return spec exposes. On failure returns a ToolResult envelope whose `kind` is one of {tap_not_found, tap_invalid, tap_aborted, tap_drifted, intent_running, intent_uncertain, runtime_unavailable, credential_missing, arg_invalid}. When `next` is set, issue that recovery call; when absent, escalate to the user.
Aethyn Browser MCP Tools (10)
aethyn_launch_browser
Launch a local Chromium routed through a residential proxy exit in a chosen country (and city/state on the Elite tier). Returns a session_id the other aethyn_* tools use. Each session is one sticky identity — a pinned exit IP for the whole task.
aethyn_navigate
Navigate the session's browser to a URL and wait for load. Returns the HTTP status, final URL, and page title — read the page with aethyn_get_content to judge the response yourself. Public data only — respect robots.txt, rate limits, and each site's terms.
aethyn_get_content
Return the current page's content cleaned for reading (markdown by default). Use after navigating to extract data.
aethyn_snapshot
Return a structured accessibility snapshot (roles, names, and [ref=..] handles) of the page. Pass those refs to aethyn_click / aethyn_type. No screenshots needed.
aethyn_click
Click an element. Prefer a 'ref' from aethyn_snapshot (e.g. 'e12'); or pass a 'selector' (CSS, or Playwright role=/text= engine).
aethyn_type
Type text into an input. Prefer a 'ref' from aethyn_snapshot; or a 'selector'. Set submit:true to press Enter after.
aethyn_check_exit_ip
Fetch IP info THROUGH the session's proxy so you can verify the exit country/city actually landed before trusting the page. Returns ip, country, city, org/ASN, and a best-effort is_residential flag.
aethyn_new_identity
Rotate the session to a fresh residential exit (new IP, same country) and clear cookies. Use between independent tasks or after a soft-block.
aethyn_close
Close the session's browser context and free memory. Call this when a task is done.
aethyn_list_countries
List available exit countries (and Elite-tier cities where known). Discover geo options at runtime before launching.