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.
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
- Source: https://github.com/mohasaaid/neout/tree/main/sdks/browsa-mcp
- Issues: https://github.com/mohasaaid/neout/issues
- API reference: https://browsa.io/docs
License
MIT.