JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 40
  • Score
    100M100P100Q84705F
  • License MIT

MCP server for Browsa — drive anti-detect cloud browsers from Claude Desktop, Cursor, Cline, and any MCP-compatible client

Package Exports

  • @browsa/mcp
  • @browsa/mcp/dist/server.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@browsa/mcp) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

@browsa/mcp

Drive anti-detect browsers from Claude Desktop, Cursor, Cline, and any MCP-compatible client.

MCP (Model Context Protocol) server for Browsa — turn any LLM into a real-browser agent with one config line. The agent gets a freshly-spawned macOS-Chrome-fingerprinted Chromium with built-in CAPTCHA solving, human-shaped behavioral pacing, and a live noVNC stream so you can watch it work.

npm version

What this is

Most "AI agent" setups stop at the LLM. We give the LLM a real browser. Through MCP, Claude can now:

  • Navigate, fill forms, click, scroll, scrape
  • Pass through Cloudflare Turnstile, hCaptcha, reCAPTCHA, ALTCHA
  • Run from a residential US/UK/DE/etc. exit IP
  • Stay logged in across calls via persistent identities

No code from you — just configure Claude Desktop (or Cursor / Cline / Zed) once, and ask in natural language.

Install

Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "browsa": {
      "command": "npx",
      "args": ["-y", "@browsa/mcp"],
      "env": {
        "BROWSA_API_KEY": "agt_live_...",
        "BROWSA_LLM_API_KEY": "sk-ant-..."
      }
    }
  }
}

Restart Claude Desktop. Ask: "Go to news.ycombinator.com and tell me the top story title."

Cursor

~/.cursor/mcp.json:

{
  "mcpServers": {
    "browsa": {
      "command": "npx",
      "args": ["-y", "@browsa/mcp"],
      "env": { "BROWSA_API_KEY": "agt_live_...", "BROWSA_LLM_API_KEY": "sk-ant-..." }
    }
  }
}

Cline / Continue / Zed

Any MCP-spec-compliant client. Point at npx -y @browsa/mcp and set the two env vars.

Required env

Var Required What
BROWSA_API_KEY yes Your agt_live_* key from browsa.io → Keys
BROWSA_LLM_API_KEY recommended Default LLM provider key (e.g. Anthropic). Without this, Claude must pass it on every run_task call
BROWSA_LLM no Default LLM. Defaults to claude-opus-4-7
BROWSA_COUNTRY no Default egress country (e.g. US)
BROWSA_BASE_URL no Override prod URL (staging / self-hosted)

Tools exposed

Tool What
run_task Run a browser-driven task. Returns final result + live noVNC URL.
get_job Poll a long-running task. Optional server-side wait_seconds.
cancel_job Cancel a running task.
respond_to_job Answer an input_required prompt (CAPTCHA, decision).
credits Show credit balance + top-up packs.
list_webhooks / create_webhook / delete_webhook Webhook CRUD.
list_identities List persistent browser identities (use one via profile_id to reuse warmed cookies).

Why MCP-first matters

Most agent platforms gate distribution behind "write code → deploy → call our API." We gate it behind "paste config → ask Claude." For an AI agent platform, the prospect's first 30 seconds is the make-or-break moment. With this MCP server, the first 30 seconds is a working browser doing what they asked.

Source + Issues

License

MIT.