Skip to main content
Glama
fast-browser-mcp

fast-browser-mcp

by donleqt

fast-browser-mcp

fast-browser-mcp is a lightweight MCP server that adds persistent QA state on top of agent-browser.

It does not rebuild browser automation. Instead, it shells out to agent-browser commands and stores compact session state on disk so AI agents can reason over changes across multiple steps.

Features

  • session-scoped storage (sessionId) instead of environment-scoped state

  • persistent snapshots, diffs, errors, timeline, and QA report

  • simple line-based diff optimized for AI readability

  • file-based architecture only (no database, no workers, no polling)

  • MCP-first tool interface for Cursor and other MCP clients

Related MCP server: MCP-RealBrowser

Why this project exists

AI-driven QA workflows lose context quickly between actions. This server keeps state per browser session so agents can:

  • compare state before/after each action

  • inspect recent console/network failures

  • generate concise QA reports from deterministic stored artifacts

Requirements

  • Node.js >=24 (required by agent-browser)

  • npm

agent-browser does not need to be installed globally. This package will use a local/global agent-browser if available, and falls back to npx agent-browser@latest when needed.

Installation

Option A: Run from npm (after publish)

npx fast-browser-mcp

Option B: Install globally from GitHub (no npm registry publish required)

Direct npm i -g github:... can leave a broken symlink in global node_modules on some npm setups. Use the pack-then-install flow instead:

bash <(curl -fsSL https://raw.githubusercontent.com/donleqt/fast-browser-mcp/main/scripts/install-global.sh)

Or manually:

tmpdir=$(mktemp -d) && \
tarball=$(npm pack github:donleqt/fast-browser-mcp --pack-destination "$tmpdir" --silent) && \
npm i -g "$tmpdir/$tarball" && \
rm -rf "$tmpdir"

Then run:

fast-browser-mcp

Option C: Build from source

git clone https://github.com/donleqt/fast-browser-mcp.git
cd fast-browser-mcp
npm install
npm run build
node dist/index.js

Cursor MCP configuration

Add a stdio MCP server entry:

{
  "mcpServers": {
    "fast-browser-mcp": {
      "command": "npx",
      "args": ["fast-browser-mcp"]
    }
  }
}

If installed globally:

{
  "mcpServers": {
    "fast-browser-mcp": {
      "command": "fast-browser-mcp",
      "args": []
    }
  }
}

Session model

  • every browser flow is keyed by sessionId

  • default sessionId is slug-safe and derived from URL

  • duplicate derived session IDs are reused by default

  • custom sessionId is supported

Examples:

  • http://localhost:3000 -> localhost-3000

  • https://app.example.com/dashboard -> app-example-com-dashboard

Storage layout

All artifacts are written under:

.fast-browser/
  sessions/
    {sessionId}/
      latest.md
      previous.md
      diff.md
      errors.md
      timeline.jsonl
      meta.json
      screenshot.png
      report.md

MCP tools

  • fast_browser_open({ url, sessionId? })

  • fast_browser_snapshot({ sessionId })

  • fast_browser_diff({ sessionId })

  • fast_browser_errors({ sessionId })

  • fast_browser_act({ sessionId, action, ref?, value? })

  • fast_browser_state({ sessionId })

  • fast_browser_report({ sessionId })

  • fast_browser_sessions({})

Quick example workflow

fast_browser_open({ url: "http://localhost:3000" })
fast_browser_state({ sessionId: "localhost-3000" })
fast_browser_act({ sessionId: "localhost-3000", action: "click", ref: "@e1" })
fast_browser_report({ sessionId: "localhost-3000" })

Architecture

  • src/agentBrowser.ts: centralized CLI mapping and execution wrapper

  • src/storage.ts: file-based session persistence

  • src/tools.ts: MCP tool handlers and orchestration

  • src/diff.ts: readable line-based diff

  • src/report.ts: report generation

Scope and non-goals (MVP)

This project intentionally does not include:

  • environment concepts (local/staging/prod)

  • database or cloud sync

  • authentication or multi-user orchestration

  • web UI, React/Redux hooks, polling loops, background workers

Troubleshooting

  • ENOTDIR or git dep preparation failed during global GitHub install

    • remove any broken global install: rm -f "$(npm root -g)/fast-browser-mcp"

    • reinstall using Option B above (pack-then-install), not npm i -g github:... directly

  • agent-browser CLI not found...

    • ensure npx can run in your environment

    • optionally install agent-browser globally for faster startup (npm i -g agent-browser)

    • verify Node.js version is >=24

  • session not found errors

    • run fast_browser_open first to create/reuse a session

Available Tools

8 tools
fast_browser_actB

Run one browser action and automatically refresh snapshot, diff, and errors.

Inputs: action (required), sessionId (required), ref, value.

fast_browser_diffC

Return the latest saved diff for a session.

Inputs: sessionId (required).

fast_browser_errorsC

Collect console and network failures and store error summary.

Inputs: sessionId (required).

fast_browser_openB

Open a URL, initialize/reuse a browser session, and store first snapshot.

Inputs: url (required), sessionId.

fast_browser_reportC

Generate and save a QA report markdown file for a session.

Inputs: sessionId (required).

fast_browser_sessionsA

List all stored browser sessions.

Inputs: no named parameters.

fast_browser_snapshotC

Capture a new snapshot and diff against previous snapshot.

Inputs: sessionId (required).

fast_browser_stateC

Return compact session QA state from files and recent timeline.

Inputs: sessionId (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.3/5.0

    Scored across 8 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose: act performs an action, diff returns diffs, errors collects logs, open starts a session, report generates a report, sessions lists sessions, snapshot captures snapshots, and state returns session state. No overlaps.

    Naming Consistency5/5

    All tools follow a consistent snake_case pattern with the 'fast_browser_' prefix and a verb_noun structure (e.g., fast_browser_act, fast_browser_diff). No deviations.

    Tool Count5/5

    8 tools is well-scoped for a browser automation server, covering core operations (open, act, snapshot, diff, errors, report, sessions, state) without being overly numerous or sparse.

    Completeness4/5

    The set covers key lifecycle operations (open, act, capture, diff, report), but missing an explicit 'close' or 'quit' tool for tearing down sessions, which may be a minor gap.

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables AI assistants to perform intelligent browser automation with session-based context analysis, including navigation, form filling, and content extraction through natural language.
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Provides a persistent browser profile for AI agents, enabling them to log in once and maintain sessions across restarts. Supports 20 tools for browsing, navigation, text extraction, and screenshot.
      1
      MIT
    • A
      license
      A
      quality
      B
      maintenance
      Enables coding agents to independently verify web changes by scanning pages, inspecting UI structure, generating Playwright reproductions, and executing tests with structured QA evidence.
      4
      85 npm
      4
      MIT