原型 · 预览版:收录官方注册中心里的全部服务器,每 30 分钟同步一次。评价和账户功能将在后续阶段推出。
PopNx MCP为使用 AI 的人准备的 MCP 服务器 · 用大白话讲清楚

Browserbash

作者:PramodDutta版本 1.5.1i★ –i在你的电脑上运行
注册名称io.github.PramodDutta/browserbash

安装

概览

作者提供的说明(英文原文)

Plain-English browser tests for AI agents: real Chrome, deterministic verdicts. Free, no API keys.

PopNx MCP 的三大支柱

这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。

它能帮你做什么

我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。

  • 连接方式: 在你的电脑上运行
  • 传输方式: stdio
  • 分类: 网页与浏览器
  • 你需要填写:ANTHROPIC_API_KEY

安装

选择你使用的 AI 应用,然后复制设置。

安装之前

标为机密的值是你账户的钥匙。千万不要分享给别人,也不要粘贴到聊天里。

你需要

  • npm已安装 Node.js(用于 npx 命令)

你用的是哪个应用?

在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。

打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json

{
  "mcpServers": {
    "browserbash": {
      "command": "npx",
      "args": [
        "-y",
        "browserbash-cli"
      ],
      "env": {
        "ANTHROPIC_API_KEY": "your-value"
      }
    }
  }
}

在终端中运行这条命令

claude mcp add browserbash --env ANTHROPIC_API_KEY=your-value -- npx -y browserbash-cli

运行前请先填写空着的值。

在 Cursor 中打开

或者自己复制设置

粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json

{
  "mcpServers": {
    "browserbash": {
      "command": "npx",
      "args": [
        "-y",
        "browserbash-cli"
      ],
      "env": {
        "ANTHROPIC_API_KEY": "your-value"
      }
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

在 VS Code 中打开

或者自己复制设置

粘贴到项目中的 .vscode/mcp.json

{
  "servers": {
    "browserbash": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "browserbash-cli"
      ],
      "env": {
        "ANTHROPIC_API_KEY": "your-value"
      }
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。

你的选择通过 Cookie 保存在这台设备上,无需账户。

需要你填写的值

  • ANTHROPIC_API_KEY 机密 env
    Anthropic API key. Optional: without it BrowserBash auto-resolves a free local Ollama model.

这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。

它能做什么

它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。

基础检查i

我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月6日

  • ✓ 通过

    作者与仓库一致

    注册名称已通过 GitHub 账户 PramodDutta 验证,该账户拥有此仓库

  • … 尚未检查

    仍在维护

    我们还没有从 GitHub 读取这个仓库

  • … 尚未检查

    有许可证

    我们还没有从 GitHub 读取这个仓库

  • – 不适用

    端点有响应

    它在你的电脑上运行,没有互联网端点

  • – 不适用

    使用 OAuth 登录

    在你的电脑上运行,改用本地设置

  • … 尚未检查

    工具描述中没有隐藏指令

    它在你的电脑上运行;我们只能读取互联网端点的工具列表

与“网页与浏览器”中的其他服务器比较i

  • 星标数多于此分类中其他 876 个服务器的 0%
  • 发布到注册中心的时间比此分类中其他 876 个服务器的 21% 更新
  • 基础检查结果等于或优于此分类中其他 876 个服务器的 100%

与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。

常见问题

Browserbash 安全吗?

它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。

它需要哪些密钥或代码?

你需要填写:ANTHROPIC_API_KEY

它在我的电脑上运行还是在云端?

它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。

它还在维护吗?

GitHub 仓库最后更新于–,最新版本(1.5.1)于4个月前进入注册中心。

哪些应用可以使用它?

支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。

有什么可以替代它?

同一分类中有:Browser Use, Chrome DevTools MCP, MCP Server Browser

替代选择

同一分类中其他作者的服务器,按星标数排序。

如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i

Browser Use

作者:browser-use

Browser agents and stealth cloud browsers for AI: run web tasks, fill forms, extract data.

电脑或云端★ 120,087MIT16天前更新
安装

Chrome DevTools MCP

作者:ChromeDevTools

MCP server for Chrome DevTools

在你的电脑上运行★ 54,821Apache-2.015天前更新
安装

MCP Server Browser

作者:bytedance

MCP server for browser use access

在你的电脑上运行★ 39,550Apache-2.014个月前更新
安装

作者的 README

打开 README

按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。

BrowserBash

Plain-English browser automation. No selectors. Free and open-source.

You write a plain-English objective. An AI agent drives a real Chrome browser step by step — no selectors, no scripts. Ollama-first, so it runs on free local models with no API keys and nothing ever leaves your machine.

npm install -g browserbash-cli

browserbash run "Open news.ycombinator.com and store the top story title as 'top_story'"

[Website](https://browserbash.com) · [Docs / Learn](https://browserbash.com/learn) · [Tutorials](https://browserbash.com/tutorials) · [npm](https://www.npmjs.com/package/browserbash-cli)


Both layers are swappable: the engine interprets the English, the provider runs the browser.

Engines (who interprets the English)

EngineWhat it isLicense
stagehand (default)Stagehand — open-source AI browser automation framework by Browserbase. act/extract/observe/agent primitives, self-healing, supports Anthropic/OpenAI/Google models.MIT
builtinIn-repo Anthropic tool-use loop driving Playwright. Used automatically for grids Stagehand can't attach to (LambdaTest, BrowserStack).Apache-2.0

Providers (where the browser runs)

ProviderWhere the browser runsEngineAuth
local (default)Chromium/Chrome on this machinestagehand or builtinnone
cdpAny Chrome DevTools Protocol endpoint (your grid, docker, Playwright MCP-managed browser)stagehand or builtinnone
browserbaseBrowserbase cloud browsersstagehand onlyBROWSERBASE_API_KEY / BROWSERBASE_PROJECT_ID
lambdatestLambdaTest / TestMu AI cloud gridbuiltin (auto)LT_USERNAME / LT_ACCESS_KEY
browserstackBrowserStack Automate cloud gridbuiltin (auto)BROWSERSTACK_USERNAME / BROWSERSTACK_ACCESS_KEY

LLM backends (who does the thinking) — open source first

Default model is auto, resolved in this order:

  1. Ollama running locally → ollama/ — free, open source, no keys
  2. ANTHROPIC_API_KEY set → claude-opus-4-8
  3. OPENAI_API_KEY set → openai/gpt-4.1
  4. otherwise: error with setup guidance
BackendModel flagNeeds
Ollama — local, free, OSS (preferred)auto or ollama/ e.g. ollama/qwen3Ollama running; OLLAMA_BASE_URL to override http://localhost:11434/v1, OLLAMA_MODEL to pin auto-detection. Same flag works for any OpenAI-compatible server (vLLM, LM Studio, llama.cpp).
Anthropicclaude-opus-4-8ANTHROPIC_API_KEY
OpenAI / Googleopenai/gpt-4.1, google/gemini-2.5-flashprovider key (Stagehand engine)
OpenRouter — hundreds of models, one keyopenrouter/ / e.g. openrouter/anthropic/claude-sonnet-4-6, openrouter/meta-llama/llama-3.3-70b-instructOPENROUTER_API_KEY (https://openrouter.ai/keys); override endpoint with OPENROUTER_BASE_URL
Anthropic-compatible gatewayclaude-* + ANTHROPIC_BASE_URLbuiltin engine routes through any Anthropic-compatible endpoint (e.g. a LiteLLM proxy fronting local models)
Fully free / open-source stack (the default)
ollama pull qwen3                 # or any tool-capable local model

browserbash run "Open https://example.com and store the heading as 'h1'"

Stagehand engine (MIT) + local Chromium + Ollama (MIT) — zero cloud cost, no API keys. Tip: small models (≤8B) are flaky on multi-step objectives; Qwen3 / Llama 3.3 70B class works best.

Note: cloud-grid providers (lambdatest, browserstack) use the builtin engine, which speaks the Anthropic API — pair them with ANTHROPIC_API_KEY or an ANTHROPIC_BASE_URL gateway.

Install

npm install

npm run build npm link # exposes the browserbash command

Requires Node ≥ 18 and Google Chrome stable (for the local provider).

Quick start

export ANTHROPIC_API_KEY=sk-ant-...

One-shot objective, local browser, Stagehand engine (default)

browserbash run "Open https://news.ycombinator.com and store the top story title as 'top_story'"

Browserbase cloud (Stagehand native)

export BROWSERBASE_API_KEY=... BROWSERBASE_PROJECT_ID=... browserbash run "..." --provider browserbase

Cloud grid (auto-switches to builtin engine)

export LT_USERNAME=... LT_ACCESS_KEY=... browserbash run "..." --provider lambdatest --headless

Attach to an existing browser (CDP / Playwright MCP)

browserbash run "..." --cdp-endpoint ws://localhost:9222/devtools/browser/

Force the builtin engine

browserbash run "..." --engine builtin

Agent mode (for AI coding tools & CI)

--agent switches stdout to NDJSON — one JSON object per line, stable schema:

browserbash run "<objective>" --agent --headless --timeout 120
  • Progress events: {"type":"step","step":1,"status":"passed","action":"navigate","remark":"...","cached":false}
  • Terminal event: {"type":"run_end","status":"passed|failed|error|timeout","summary":"...","final_state":{...},"duration_ms":...,"provider":"local","cache":"hit|miss|off","tokens_in":...,"tokens_out":...,"test_url":"..."}

Exit codes: 0 passed · 1 failed · 2 error · 3 timeout. cached, cache, tokens_in/tokens_out are additive fields (present when relevant), so existing consumers are unaffected.

Full agent integration guide: docs/agents.md.

MCP server (agents consume BrowserBash natively)

BrowserBash is a validation layer for AI agents: your coding agent builds a feature, BrowserBash proves it works in a real browser. One line plugs it into any MCP host:

claude mcp add browserbash -- browserbash mcp     # Claude Code

Cursor / Windsurf / Zed / Codex: command "browserbash", args ["mcp"]

Tools exposed: run_objective (one plain-English objective), run_test_file (a *_test.md), run_suite (a folder, parallel). Each returns the structured verdict JSON: status, summary, final_state, assertions, cost_usd, duration_ms. A failed test is a successful validation, so the tool call succeeds and the agent reads the verdict. No extra dependencies, stdio only, nothing leaves your machine.

Dashboards

Every run is kept in a private on-disk store (~/.browserbash/runs, secrets masked, capped at 200). Two ways to see them:

Local dashboard — free, no account, fully local:

browserbash dashboard                 # serve http://localhost:4477 and open it

browserbash run "..." --record --dashboard # run, then open the dashboard on this run browserbash dashboard --clear # wipe the local store

Left panel lists your runs; the main pane shows the verdict, extracted values and the recording — with --record you get a screenshot plus a session video (stagehand engine, video needs ffmpeg, bundled) or a native Playwright trace you can open at trace.playwright.dev (builtin engine). Nothing leaves your machine.

Cloud dashboard — optional, opt-in per run: a hosted dashboard at browserbash.com/dashboard with run history across machines and shareable per-run pages.

browserbash connect --key bb_...      # one-time, key from browserbash.com/dashboard

browserbash run "..." --record --upload # push THIS run (verdict + recording) to the cloud

Without --upload nothing is sent to the cloud. BrowserBash is free and open source; cloud runs are kept 15 days.

Replay cache (warm runs skip the model)

A green run records the actions it took. The next identical run replays them with zero model calls, and the agent only steps back in when the page actually changed. Steady-state suites run at close to script speed and cost.

browserbash testmd run ./checkout_test.md            # run 1: records the journal

browserbash testmd run ./checkout_test.md # run 2: replays, no model browserbash testmd run ./checkout_test.md --no-cache # ignore the cache for this run browserbash testmd run ./checkout_test.md --refresh-cache # wipe this test's entry, re-record

run_end.cache reports hit / miss / off. On by default; config set cache.enabled false to disable, cache.dir to relocate (default .browserbash/cache, gitignored by init). Secrets never enter the cache: values arrive through the variables channel (Stagehand) or are re-templatized to {{name}} tokens (builtin), and any cached action that types a secret is origin-pinned — replaying it on a different origin fails closed. Builtin journals are also HMAC-signed with a per-machine key (~/.browserbash/cache.key); an edited or foreign journal is ignored and simply re-recorded. CI fleets that want to share committed caches can set the same BROWSERBASH_CACHE_KEY (64 hex chars) on every runner.

Parallel suites (run-all)

Run a whole folder of *_test.md files at once with memory-aware scheduling:

browserbash run-all .browserbash/tests --concurrency 8 --junit out/junit.xml
  • Concurrency is auto-derived from CPU and free memory (min(requested, cpus, floor((mem - 2GB) / budget))), so big suites do not thrash the machine. Override with --concurrency, tune the estimate with --memory-budget . A hard watchdog also kills any test whose whole process tree (Node + Chromium) exceeds --memory-cap (default 2x the budget, 0 disables); the test is reported as an infra error with a test_kill event, and retried per --retries.
  • Each test runs as an isolated child process with its own Result.md; a failure never leaks state to the next test.
  • --retries retries infra errors only (not real failures), --max-failures stops early, --stagger softens burst load.
  • Outputs: a merged NDJSON stream (--events, add --agent to also stream on stdout), JUnit XML (--junit), and a RunAll-Result.md with a flaky column.
  • Run history in .browserbash/memory/history.json orders the next run (previously-failed first, then slowest first) and flags flaky tests. --no-memory opts out.
  • Sharding: --shard 2/4 runs a deterministic slice, computed on sorted discovery order so parallel CI machines agree without coordination.
  • Viewport matrix: --matrix-viewport 1280x720,390x844 runs every test once per viewport; cells are labeled in events, JUnit and results. Single runs take --viewport WxH too.
  • Budgets: --budget-usd 2.50 (or --budget-tokens) stops launching new tests once estimated spend crosses the budget; the rest are reported skipped and the suite exits 2. Spend lands in RunAll-Result.md and JUnit .
  • Webhooks: --notify POSTs the suite verdict when it ends (Slack URLs get Slack formatting).
  • Exit code: 0 all passed · 1 any failed · 2 infra error or budget stop · 3 suite timeout.

Cheap-model routing

Plan on a strong model, execute on a cheap one, escalate back automatically after a failed step:

browserbash run "..." --model claude-opus-4-8 --model-exec claude-haiku-4-5

run_end reports tokens_in / tokens_out (builtin engine) so you can see what a run costs, plus a cost_usd estimate from a bundled per-model price table (override at ~/.browserbash/pricing.json; unknown models get no estimate rather than a wrong one). Set persistently with config set routing.executionModel .

Test files (*_test.md)

Committable, reviewable Markdown tests:

# Login flow
  • Open {{base_url}}/l

只显示了开头部分;其余内容请在仓库中阅读

问 PopNx