Skip to main content

Clearcote MCP server

Drive the open-source Clearcote stealth Chromium from any MCP client — Claude Desktop, Cursor, Cline, Continue, or your own agent. One shared, coherent stealth browser; ~20 tools to navigate, read, extract, click, fill, screenshot, and persist sessions — plus get_cdp_endpoint, which hands the same stealth browser to any Playwright / Puppeteer / browser-use / Crawl4AI client.

The fingerprint is corrected in Chromium's C++, so you do not add puppeteer-stealth / undetected-chromedriver / any JS patching — those self-reveal and undo it. Driving over CDP adds no automation flags, so navigator.webdriver stays false and the persona is intact end to end.


Run it

Node (no install):

npx clearcote-mcp

Python:

pip install clearcote-mcp
clearcote-mcp            # stdio server

Both auto-download + SHA-256-verify the right Clearcote binary per OS on first use (native Windows x64 + Linux x64).

Add it to a client

Claude Desktop / Cursor / Cline mcpServers config:

{
  "mcpServers": {
    "clearcote": {
      "command": "npx",
      "args": ["-y", "clearcote-mcp"],
      "env": {
        "CLEARCOTE_FINGERPRINT": "acct-1",
        "CLEARCOTE_PLATFORM": "windows",
        "CLEARCOTE_PROXY": "http://user:pass@host:port",
        "CLEARCOTE_GEOIP": "1"
      }
    }
  }
}

The persona lives in the environment, so the tool surface stays clean:

env var meaning
CLEARCOTE_FINGERPRINT seed → one stable, coherent identity (same seed = same machine across runs)
CLEARCOTE_PLATFORM windows | linux | macos | android
CLEARCOTE_BRAND Chrome | Edge | Opera | Vivaldi
CLEARCOTE_PROXY http://user:pass@host:port (routes all traffic)
CLEARCOTE_GEOIP 1 → derive timezone/locale/WebRTC IP from the proxy exit IP
CLEARCOTE_TIMEZONE / CLEARCOTE_ACCEPT_LANGUAGE explicit overrides
CLEARCOTE_HEADLESS 0 for a visible window (default headless)
CLEARCOTE_BINARY path to a specific Clearcote binary (optional)
CLEARCOTE_CLOUD 1 → the shared browser is a hosted Clearcote session instead (needs CLEARCOTE_API_KEY)
CLEARCOTE_API_KEY your cc_live_... key: cloud mode, and the run_task tool

Hardening knobs: CLEARCOTE_MCP_TOOL_TIMEOUT (s), CLEARCOTE_MCP_RUN_TIMEOUT (s, run_task; default 900), CLEARCOTE_MCP_WRITE_DIR (sandbox for file writes), CLEARCOTE_MCP_ALLOW_ANY_PATH=1, CLEARCOTE_ALLOW_PRIVATE_EGRESS=1 (allow localhost / private targets), CLEARCOTE_MCP_PREWARM=0, CLEARCOTE_SERVE_PORT.

Tools

Read · read_page (text + Markdown) · get_page_html · page_elements (interactive elements + selectors) · evaluate_js · wait_for · current_page · get_cookies · list_tabs Act · navigate · click (selector or visible text) · fill_field (selector/label/placeholder/name) · press_key · new_tab · close_tab Capture · screenshot_page · save_page_pdf Session · save_profile / load_profile (cookies + storage) Stealth / infra · get_egress_info (public IP + active persona) · get_cdp_endpoint (attach any other CDP client to the same stealth browser)

Cloud · run_task(task, url?, schema_json?): a whole task run by the hosted agent (Clearcote Jet) on a cloud browser, returning its JSON result (run_status, result.output, cost_eur). Listed only when CLEARCOTE_API_KEY is set.

Cloud mode

Set CLEARCOTE_CLOUD=1 and CLEARCOTE_API_KEY and the shared browser runs on Clearcote's servers instead of this machine: nothing to download, a residential IP included. Every tool works the same, and the persona variables above still apply (CLEARCOTE_BINARY and CLEARCOTE_SERVE_PORT are local-only and ignored). The one difference: a cloud session's CDP URL is single-use and the server holds it, so get_cdp_endpoint has no endpoint to hand out; start your own hosted browser with clearcote.launch(cloud=True) instead. Needs clearcote 0.34 or newer.

{
  "mcpServers": {
    "clearcote": {
      "command": "npx",
      "args": ["-y", "clearcote-mcp"],
      "env": { "CLEARCOTE_CLOUD": "1", "CLEARCOTE_API_KEY": "cc_live_..." }
    }
  }
}

Guardrails (built in)

  • Every tool has a wall-clock timeout and returns a structured error instead of crashing the server.
  • URL args are SSRF-checked — localhost / private / cloud-metadata are refused unless you opt in.
  • File writes are confined to a sandbox dir (no path traversal).
  • Oversized text is capped so a response never floods the agent's context.
  • The shared browser is rebuilt automatically if it dies.

Just want the raw endpoint?

If you don't need the tools, run the browser as a standing CDP endpoint and attach your existing code:

clearcote-serve --port 9222 --fingerprint acct-1 --platform windows
# → prints http://127.0.0.1:9222 ; then:  connect_over_cdp / puppeteer.connect({browserURL})

See USAGE.md for per-client examples. Part of clearcote-browser (BSD-3).

Metadata

Release files for clearcote-mcp 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for clearcote-mcp 0.2.0
File Size Uploaded
clearcote_mcp-0.2.0.tar.gz 21.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for clearcote-mcp 0.2.0
File Interpreter ABI Platform
clearcote_mcp-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 36.2 kB

Release files / clearcote_mcp-0.2.0.tar.gz

Download URL clearcote_mcp-0.2.0.tar.gz
Size 21.5 kB
Tags Source
SHA-256 checksum
How to use checksums
56477004690b6b02d40a86a465776ac33a9b91074b1f4e90215de744d16ec483
BLAKE2b-256 checksum
How to use checksums
f92acc02a5b4b950f09632306244d619b01934b45231dd949cad600d4420dc24
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.

Transparency log

Release files / clearcote_mcp-0.2.0-py3-none-any.whl

Download URL clearcote_mcp-0.2.0-py3-none-any.whl
Size 14.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d356b70f4684af45820d4b48e95ffd087b2ce4a3ad7c84ebacd88e191ecba251
BLAKE2b-256 checksum
How to use checksums
38e5210a359150f286df302eeecdb961ed680bc1a90622792e4e3df6d1e7fb01
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.

Transparency log

Release history Release notifications | RSS feed

0.3.0

2 release files

This release

0.2.0 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page