Skip to main content

Stdio MCP server for stealthy headless Chrome via voidcrawl — expose the voidcrawl Chrome pool to Claude Code

Project description

voidcrawl-mcp

Rust-native MCP server that exposes void_crawl_core's stealth-patched Chrome pool to Claude Code. Headless by default, concurrent by construction — ten tabs in parallel is the norm.

Why not claude-in-chrome?

  • claude-in-chrome drives the user's single visible Chrome tab.
  • voidcrawl-mcp drives a headless pool with real concurrency and per-session isolation. Pick it for bulk scraping, bot-detection targets, and subagent fan-out. See ../../.claude/skills/voidcrawl/SKILL.md for the full decision rubric.

Tools

Tool Kind Summary
fetch stateless Single URL → { html, title, status_code, ... }.
fetch_many stateless N URLs in parallel; pool semaphore caps concurrency.
screenshot stateless Full-page PNG as image/png content.
session_open stateful Launches a dedicated Chrome, returns session_id.
session_navigate stateful Goto URL within a session and wait for settle.
session_content stateful HTML + title + URL of the session's current page.
session_close stateful Shut down the session's Chrome.
pool_status diag Pool config + live session count.
download stateless Download a file by URL through stealth Chrome and scan it with the built-in antivirus gate. Opt-in (VOIDCRAWL_ALLOW_DOWNLOADS=1).
download_arm / download_wait stateful Capture a download started by a page action (button with no stable URL), then scan it. Opt-in (VOIDCRAWL_ALLOW_DOWNLOADS=1).

This is an abbreviated list; the perceive/act tools (click, click_by_role, type_text, eval_js, extract, session_ax_tree, detect_captcha, …) are documented in the published MCP and File Downloads guides.

Each tool accepts a wait_for string: "networkidle" (default), "selector:<css>", or "ms:<n>".

Install

Repo-local (dev)

The repo ships an ../../.mcp.json at the root that runs the server via cargo run. Claude Code will pick it up automatically when launched from the repo.

Global

cargo install --path .
claude mcp add voidcrawl voidcrawl-mcp -e BROWSER_COUNT=1 -e TABS_PER_BROWSER=5

Configuration (environment)

All knobs are read by BrowserPool::from_env() in void_crawl_core:

Env var Default Meaning
BROWSER_COUNT 1 Number of Chrome processes to launch.
TABS_PER_BROWSER 4 Tabs per Chrome. max_tabs = BROWSER_COUNT * this.
TAB_MAX_USES 50 Hard-recycle a tab after this many acquires.
TAB_MAX_IDLE_SECS 60 Evict a tab after this many seconds idle.
ACQUIRE_TIMEOUT_SECS 30 Max wait for a free tab. 0 = infinite.
CHROME_HEADLESS 1 1 headless, 0 headful.
CHROME_NO_SANDBOX 0 1 to pass --no-sandbox (Docker/CI).
CHROME_WS_URLS Comma-separated CDP WS endpoints to connect to instead of launching.
VIEWPORT_WIDTH 1920 Stealth viewport width.
VIEWPORT_HEIGHT 1080 Stealth viewport height.
CDP_PORT_BASE Pin Chrome's --remote-debugging-port for launched browsers (browser i gets base + i). Unset = OS picks a free ephemeral port, which can't conflict. Set when a firewall only exposes specific ports.

One capability knob is read separately from from_env():

Env var Default Meaning
VOIDCRAWL_ALLOW_DOWNLOADS unset (off) 1 exposes the download / download_arm / download_wait tools. Off by default: downloads pull untrusted bytes to disk over a live auth session, so they're opt-in.

Logging goes to stderr (RUST_LOG=voidcrawl_mcp=debug for more). stdout is reserved for the MCP protocol.

Protocol

Transport: stdio. Protocol version: whatever rmcp 1.4 defaults to.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

voidcrawl_mcp-0.3.6.tar.gz (162.7 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

voidcrawl_mcp-0.3.6-py3-none-win_amd64.whl (11.2 MB view details)

Uploaded Python 3Windows x86-64

voidcrawl_mcp-0.3.6-py3-none-musllinux_1_2_x86_64.whl (13.6 MB view details)

Uploaded Python 3musllinux: musl 1.2+ x86-64

voidcrawl_mcp-0.3.6-py3-none-musllinux_1_2_aarch64.whl (12.7 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARM64

voidcrawl_mcp-0.3.6-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (13.3 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

voidcrawl_mcp-0.3.6-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (12.7 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

voidcrawl_mcp-0.3.6-py3-none-macosx_11_0_arm64.whl (11.9 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

voidcrawl_mcp-0.3.6-py3-none-macosx_10_12_x86_64.whl (12.7 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

File details

Details for the file voidcrawl_mcp-0.3.6.tar.gz.

File metadata

  • Download URL: voidcrawl_mcp-0.3.6.tar.gz
  • Upload date:
  • Size: 162.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for voidcrawl_mcp-0.3.6.tar.gz
Algorithm Hash digest
SHA256 229ea161d219c8eee3cfd92f5dbbfd6a4667c6b73db1751210781ea61e3a83b6
MD5 457643fad32d795d2a0b86d503a9bc27
BLAKE2b-256 9c1ca764422e38ed7db5c4440a1fb92183c5993219dc9588c2cdb01f3e408f8b

See more details on using hashes here.

Provenance

The following attestation bundles were made for voidcrawl_mcp-0.3.6.tar.gz:

Publisher: release.yml on CascadingLabs/VoidCrawl

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file voidcrawl_mcp-0.3.6-py3-none-win_amd64.whl.

File metadata

File hashes

Hashes for voidcrawl_mcp-0.3.6-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 55c1c7fe7ac5eedbfa6c05275748d2099653c86ff3c05122877fa9f1947b7580
MD5 8cdead0c0da26df4a5c0e51df0986dac
BLAKE2b-256 014ed6c9f7db93ac38d43a5071e303160ee2f711a9d1252270ab524fc8aaf70a

See more details on using hashes here.

Provenance

The following attestation bundles were made for voidcrawl_mcp-0.3.6-py3-none-win_amd64.whl:

Publisher: release.yml on CascadingLabs/VoidCrawl

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file voidcrawl_mcp-0.3.6-py3-none-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for voidcrawl_mcp-0.3.6-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 fb28eb2b5f806a98efdbc1d21c2a621685156e6c1318232e37498ae8b44eb996
MD5 ce7edffa351704da6a04727df70087b7
BLAKE2b-256 5614e2dfedad96d2ac1b292e2a434614a688156164f4d5cb5a13ea081311baa5

See more details on using hashes here.

Provenance

The following attestation bundles were made for voidcrawl_mcp-0.3.6-py3-none-musllinux_1_2_x86_64.whl:

Publisher: release.yml on CascadingLabs/VoidCrawl

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file voidcrawl_mcp-0.3.6-py3-none-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for voidcrawl_mcp-0.3.6-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 82b5cc072cf2261f6a2bb85ae3e131a07d580ee71df6730f2ec9d0f5578fb9c4
MD5 4cb059c7c4bef0b9e57d9eb71bdef5b3
BLAKE2b-256 26864dd6120c290c3489983d8928fcb1615e8fa90febad5d7463dd6cf9ada78d

See more details on using hashes here.

Provenance

The following attestation bundles were made for voidcrawl_mcp-0.3.6-py3-none-musllinux_1_2_aarch64.whl:

Publisher: release.yml on CascadingLabs/VoidCrawl

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file voidcrawl_mcp-0.3.6-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for voidcrawl_mcp-0.3.6-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fe238ec8a73bef10356f61b62979f8c21a28f08e6d680b967256637c4c4fb22b
MD5 ea777b7be52d371745e0d3b86a48c266
BLAKE2b-256 3fce2b27c6de13acc2949287f1b5618b1306b6389697b3dc2aab52d8636b4af4

See more details on using hashes here.

Provenance

The following attestation bundles were made for voidcrawl_mcp-0.3.6-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on CascadingLabs/VoidCrawl

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file voidcrawl_mcp-0.3.6-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for voidcrawl_mcp-0.3.6-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 11d4d32afea291607f9d298cb8aaf5e46d9a86e585b97cdb1c6e3c37dfeba4da
MD5 b6aa0aff484a51f74b3d5612725cfa5e
BLAKE2b-256 56c5a7845b0aa374faa82fc66cfc1ac2be6ffff1c6348a6bf7439533ed70b335

See more details on using hashes here.

Provenance

The following attestation bundles were made for voidcrawl_mcp-0.3.6-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on CascadingLabs/VoidCrawl

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file voidcrawl_mcp-0.3.6-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for voidcrawl_mcp-0.3.6-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a0a3076b639a43a2e3c5d7d9d2317def09506129b133786ed783b4d986e0574d
MD5 45a391e32cda3971ff8d873497dee4b2
BLAKE2b-256 e279d8b949b11ed7269b12f5e26dc63561606766ce28ade096201f3e5366c376

See more details on using hashes here.

Provenance

The following attestation bundles were made for voidcrawl_mcp-0.3.6-py3-none-macosx_11_0_arm64.whl:

Publisher: release.yml on CascadingLabs/VoidCrawl

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file voidcrawl_mcp-0.3.6-py3-none-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for voidcrawl_mcp-0.3.6-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 2ecdcf9ee16e60cd79a4d5d58e2f9cc561ca5caf0f5a9efdcdde4da0baffba15
MD5 f4c8c5c0c64d89c94dceed4d45c1acae
BLAKE2b-256 94833b7dad11f07129792ff80925cb4411b1a77886e6bb7decae57959e99e3e7

See more details on using hashes here.

Provenance

The following attestation bundles were made for voidcrawl_mcp-0.3.6-py3-none-macosx_10_12_x86_64.whl:

Publisher: release.yml on CascadingLabs/VoidCrawl

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page