Tap logo

Tap

by LeonTing1010

Compiles browser tasks into deterministic plans, replays them in Chrome, and reports site changes before retries.

Install Tap

Pick your client, then add it in one click or paste the config.

STDIONode.js
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "leonting1010-tap": {
      "command": "npx",
      "args": [
        "-y",
        "@taprun/cli"
      ]
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

Automated check passed— started and listed 4 tools correctly (1mo ago).

Overview

LeonTing1010/tap MCP server compiles browser tasks into saved deterministic plans and replays them through the user's Chrome session or a Playwright runtime. Its capture flow turns a URL and natural-language intent into a plan, while run executes saved plans without runtime LLM calls. verify checks the observe phase for drift or reachability, and mark resolves uncertain side-effect outcomes after human confirmation. Reach for it when a task requires logged-in browser access, repeated execution, stable output, or recovery from a changed site.

Use cases

  • Capture a repeatable task from a URL and natural-language intent
  • Replay saved browser workflows without runtime LLM calls
  • Verify a write flow before retrying it after failure
  • Inspect raw observed fields beyond a flow's returned view

Key features

  • Deterministic flow compilation and replay
  • Logged-in Chrome session support
  • Semantic drift and reachability verdicts
  • Typed recovery states for uncertain outcomes
  • MCP resource discovery with argument schemas

Tools4

What Tap lets your agent do. Expand a tool for its parameters.

Verified live~3.7k tokens of context

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked 1d ago

Recent health check succeeded.

5/5 checks healthy over the last 79d

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 9d ago via OSV.dev · @taprun/cli (npm)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars18Stargazers on the source repository.
npm downloads582Package downloads in the last 30 days.
Last commit2mo agoMost recent push to the default branch.
Availability100%Our rolling endpoint + install checks that succeeded.
Install checkPassedOur sandbox started it and listed its tools.
Tools exposed4Callable tools this server registers over MCP.
Directory activity3 viewsConfig copies, upvotes, and views on AllMCPs.

How Tap works

What LeonTing1010/tap MCP server does

LeonTing1010/tap MCP server turns an instructed browser task into a saved flow plan that can be replayed deterministically. The plan uses a closed operation vocabulary and can define selectors, fetched fields, expectations, and a return transformation. Capture accepts a URL, an intent written in natural language, and optionally a site/name pair. With the pair, the flow is stored under ~/.tap/flows/<site>/<name>.flow.json; without it, capture returns a preview.

Saved flows are exposed as MCP resources using tap://{site}/{name} URIs. An agent can inspect available resources, read the argument schema and provenance, and then call run with matching arguments. A successful run includes both the raw observe data and the transformed return value. The raw observation is useful when auditing vehicle health or checking fields that the flow's return expression omits.

How it works

Capture performs the one-time AI-assisted inspection and produces the flow. Later calls dispatch the recorded operations rather than asking an LLM to reconsider the page. Runs use the user's authenticated Chrome session when the browser extension is configured, so cookies and credentials remain on that machine. Public pages and open APIs can instead use the Playwright runtime with an isolated profile.

The verify tool runs only the observe phase and reports live, drifted, or unreachable from operation outcomes, status codes, expectation predicates, and parsing results. It does not execute the act phase, although fetch operations still contact the live site. Per-operation CEL op.expect predicates can assert expected shapes or values. If an act operation may have committed but the process stopped before the result was known, mark records the confirmed outcome as committed or aborted.

Setup and configuration

The documented MCP stdio configuration runs the CLI with npx -y @taprun/cli mcp stdio. The CLI can also write host configuration with npx -y @taprun/cli embed <target>, including targets for Cursor and Claude Desktop. Claude Desktop additionally supports downloading and opening the tap.mcpb package.

For logged-in sites, the Chrome extension and native-messaging bridge are needed to reuse the live browser session. The setup flow registers the bridge and opens the extension page; installing the extension from Chrome is the remaining manual trust step. Public pages do not require the extension. The repository also documents Homebrew, a shell installer, platform binaries, and a --no-extension Playwright mode.

Tools and capabilities

  • capture: Create a preview or persist a flow from a URL and intent.
  • run: Replay a saved flow with zero runtime LLM tokens.
  • verify: Check observe-phase health without performing the act phase.
  • mark: Resolve an intent_uncertain record after checking the real outcome.
  • MCP resources: Discover saved taps and read their argument schemas and provenance.

Limitations and notes

LeonTing1010/tap MCP server depends on the target site's current behavior and can return tap_drifted when selectors, responses, or expectations no longer match. Re-capturing with the same site and name overwrites the saved flow and is the documented repair path. A verification call is not entirely offline or strictly read-only because it probes live fetch targets.

Run failures use typed outcomes such as tap_not_found, tap_invalid, tap_aborted, credential_missing, arg_invalid, intent_uncertain, and runtime_unavailable. When a failure supplies a recovery call, the caller should issue that call; otherwise, the issue must be escalated to the user. The Chrome extension is specifically required for reuse of logged-in browser state, while isolated Playwright execution does not provide that live session.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Tap

Configure the MCP stdio server with `npx -y @taprun/cli mcp stdio`. The repository also documents host-specific embedding commands and packaged installation options.

Yes. The repository documents Claude Desktop support through the embed command or by downloading and opening the `tap.mcpb` package.

Only when the flow must reuse a live logged-in Chrome session. Public pages and open APIs can use the Playwright runtime without the extension.

Call `verify` to run the observe phase and receive a `live`, `drifted`, or `unreachable` verdict. It does not execute the act phase.

Call `capture` again with the same site and name to overwrite the saved flow, then verify it after the site has been reviewed.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewTap AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/leonting1010-tap?style=directory)](https://allmcps.com/mcp/leonting1010-tap)
HTML Embed
<a href="https://allmcps.com/mcp/leonting1010-tap"><img src="https://allmcps.com/api/badge/leonting1010-tap?style=directory" alt="Tap on AllMCPs" /></a>