fast-browser-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@fast-browser-mcp Open http://localhost:3000 and generate a QA report"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 statepersistent 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 byagent-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-mcpOption 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-mcpOption 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.jsCursor 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
sessionIddefault
sessionIdis slug-safe and derived from URLduplicate derived session IDs are reused by default
custom
sessionIdis supported
Examples:
http://localhost:3000->localhost-3000https://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.mdMCP 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 wrappersrc/storage.ts: file-based session persistencesrc/tools.ts: MCP tool handlers and orchestrationsrc/diff.ts: readable line-based diffsrc/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
ENOTDIRorgit dep preparation failedduring global GitHub installremove 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
npxcan run in your environmentoptionally install
agent-browserglobally for faster startup (npm i -g agent-browser)verify Node.js version is
>=24
session not found errors
run
fast_browser_openfirst to create/reuse a session
Available Tools
8 toolsfast_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
Scored across 8 tools
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.
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.
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.
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
Browser-backed QA with evidence and fix-ready reports for coding agents.
Browser-based QA for AI-built software. Test pages with real browsers via agents.
Bug tracking for AI agents: session replay, console/network logs, repro packs, test plans, evidence.
Agentic AI quality engineering: run, debug and triage tests on real browsers and devices
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to perform intelligent browser automation with session-based context analysis, including navigation, form filling, and content extraction through natural language.MIT
- AlicenseNot gradedqualityDmaintenanceProvides 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.1MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI coding agents to autonomously interact with and test web applications in a real browser, providing DOM/Accessibility tree extraction, runtime telemetry, screenshot capture, and Markdown test reports.15 npm1MIT

QualityMax QA MCPofficial
AlicenseAqualityBmaintenanceEnables coding agents to independently verify web changes by scanning pages, inspecting UI structure, generating Playwright reproductions, and executing tests with structured QA evidence.485 npm4MIT