ZennoBrowser MCP Server

MCP server for the ZennoBrowser antidetect browser: create and manage browser profiles, proxies, cookies, threads and browser instances from AI agents.

Documentation

ZennoBrowser MCP Server — Antidetect Browser Automation for AI Agents

Control the ZennoBrowser antidetect browser from AI agents. Manage browser profiles, proxies, cookies, threads and browser instances from Claude Desktop, Cursor and VS Code through the Model Context Protocol (MCP).

npm version license CI MCP compatible Node.js 20+

Quick start · Installation · Tools · Example prompts · Troubleshooting

MCP (Model Context Protocol) server for ZennoBrowser Public API. Exposes browser automation and profile management capabilities to AI agents such as Claude Desktop, Cursor, and VS Code MCP clients.

Why ZennoBrowser MCP Server

  • Full Public API coverage. 57 tools for workspaces, profiles, folders, proxies, threads, browser instances, presets, extensions and product info.
  • Built for scale. Bulk tools create, update, start and stop many profiles, proxies, threads and browser instances in one call.
  • Cookies and fingerprints. Import, export and copy cookies between profiles, and read full fingerprint details of any profile.
  • Works with your AI client. Runs as a local stdio server in Claude Desktop, Cursor and VS Code.
  • Free to start. ZennoBrowser is available for Windows. Its START plan includes unlimited local profiles and 2 simultaneous browsers.

Quick start

  1. Start ZennoBrowser on your computer and get an API token in your personal account on ZennoLab.
  2. Add the server to your MCP client using one of the configurations in Installation.
  3. Ask your agent, for example: "Create a new profile named "Test Profile", then start a browser instance for it."

Tools such as delete_profile, bulk_delete_profile and delete_proxy cannot be undone. Review the agent's actions before approving destructive calls.

Requirements

  • Node.js 20+
  • ZennoBrowser running locally
  • A valid ZennoBrowser API token

Installation

The package is published as @zennolab/zennobrowser-mcp-server. Versions up to 1.0.0 were published as the unscoped zennobrowser-mcp-server, which no longer receives updates — replace it with @zennolab/zennobrowser-mcp-server in your MCP client config.

npx (no install required)

Claude Desktop — edit claude_desktop_config.json:

{
  "mcpServers": {
    "zennobrowser": {
      "command": "npx",
      "args": ["-y", "@zennolab/zennobrowser-mcp-server@latest"],
      "env": {
        "ZB_API_TOKEN": "your-api-token-here"
      }
    }
  }
}

Cursor — add to MCP settings (.cursor/mcp.json or Settings → MCP):

{
  "mcpServers": {
    "zennobrowser": {
      "command": "npx",
      "args": ["-y", "@zennolab/zennobrowser-mcp-server@latest"],
      "env": {
        "ZB_API_TOKEN": "your-api-token-here"
      }
    }
  }
}

VS Code (with GitHub Copilot MCP support) — add to .vscode/mcp.json:

{
  "servers": {
    "zennobrowser": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@zennolab/zennobrowser-mcp-server@latest"],
      "env": {
        "ZB_API_TOKEN": "your-api-token-here"
      }
    }
  }
}

Global install

npm install -g @zennolab/zennobrowser-mcp-server@latest

Then use zennobrowser-mcp-server as the command instead of npx ... @zennolab/zennobrowser-mcp-server:

{
  "mcpServers": {
    "zennobrowser": {
      "command": "zennobrowser-mcp-server",
      "env": {
        "ZB_API_TOKEN": "your-api-token-here"
      }
    }
  }
}

Environment Variables

VariableRequiredDefaultDescription
ZB_API_TOKENYes—Authentication token for the ZennoBrowser Public API
ZB_API_BASE_URLNohttp://localhost:8160Base URL of the ZennoBrowser Public API

Tools

Workspaces

ToolDescription
get_workspacesList accessible workspaces

Profiles

ToolDescription
get_profilesList profiles with filtering and sorting
get_profileGet a single profile with full fingerprint details
create_profileCreate a new profile
bulk_create_profileCreate multiple profiles at once
update_profileUpdate profile settings
delete_profileDelete a profile
bulk_delete_profileDelete multiple profiles
move_profileMove profiles to a folder
recover_profileRecover a profile from an invalid state
force_unlock_profileForce-unlock a cloud-locked profile
import_cookiesImport cookies (JSON or Netscape format)
export_cookiesExport cookies as JSON
copy_cookiesCopy cookies from one profile to another
bulk_update_profile_presetAssign a preset to multiple profiles
bulk_update_profile_proxyUpdate the proxy for multiple profiles
bulk_update_profile_tagsUpdate tags for multiple profiles
cleanup_profileClear profile cache

Profile Folders

ToolDescription
get_profile_foldersList profile folders
create_profile_folderCreate a profile folder
update_profile_folderRename a profile folder
delete_profile_folderDelete a profile folder

Proxies

ToolDescription
get_proxiesList proxies
create_proxyCreate a proxy
bulk_create_proxyCreate multiple proxies
update_proxyUpdate a proxy
delete_proxyDelete a proxy
bulk_delete_proxyDelete multiple proxies
change_mobile_proxy_ipTrigger IP rotation for a mobile proxy

Proxy Folders

ToolDescription
get_proxy_foldersList proxy folders
create_proxy_folderCreate a proxy folder
update_proxy_folderRename a proxy folder
delete_proxy_folderDelete a proxy folder

Threads

ToolDescription
get_threadsList threads
create_threadCreate a thread
bulk_create_threadCreate multiple threads
continue_use_threadExtend thread lifetime
bulk_continue_use_threadExtend lifetime of multiple threads
stop_threadStop a thread
bulk_stop_threadStop multiple threads

Browser Instances

ToolDescription
get_browser_instancesList active browser instances
start_browser_instanceLaunch a browser instance for a profile
bulk_start_browser_instanceLaunch browser instances for multiple profiles
stop_browser_instanceStop a browser instance
bulk_stop_browser_instanceStop multiple browser instances
set_browser_instance_visibilityShow or hide a browser window

Presets & Extensions

ToolDescription
get_presetsList presets
create_presetCreate a preset
delete_presetDelete a preset
get_extensionsList extensions
create_extension_from_webAdd an extension from the Chrome Web Store
create_extension_from_fileAdd an extension from a local .crx or .zip file
delete_extensionRemove an extension

Product

ToolDescription
get_product_versionGet ZennoBrowser version
get_browser_versionGet browser engine version
get_limitsGet workspace resource limits
get_tariffGet current tariff information

Example Prompts

Create a profile and start the browser:

Create a new profile named "Test Profile", then start a browser instance for it.

Full end-to-end flow:

Create a profile named "Scraper", create a proxy with URI "socks5://user:pass@1.2.3.4:1080", assign the proxy to the profile, create a thread, then start a browser instance for the profile using that thread.

Bulk operations:

List all profiles in my default workspace and delete any that haven't been used in the last 30 days.

Cookie management:

Export cookies from profile "Session A" and import them into profile "Session B".

Troubleshooting

Error: Missing required environment variable ZB_API_TOKEN Set the ZB_API_TOKEN environment variable to your ZennoBrowser API token.

Error: connect ECONNREFUSED 127.0.0.1:8160 ZennoBrowser is not running or the Public API is not working. If the API runs on a different port, set ZB_API_BASE_URL=http://localhost:<port>.

Tool calls return errors with "Unauthenticated" Your API token is invalid or expired. Generate a new token in personal account on ZennoLab.

npx downloads the package every time Install globally with npm install -g @zennolab/zennobrowser-mcp-server@latest to avoid re-downloading on each start.

Related

License

MIT