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.8.2.tar.gz (179.2 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.8.2-py3-none-win_amd64.whl (11.4 MB view details)

Uploaded Python 3Windows x86-64

voidcrawl_mcp-0.3.8.2-py3-none-musllinux_1_2_x86_64.whl (13.9 MB view details)

Uploaded Python 3musllinux: musl 1.2+ x86-64

voidcrawl_mcp-0.3.8.2-py3-none-musllinux_1_2_aarch64.whl (13.0 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARM64

voidcrawl_mcp-0.3.8.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (13.5 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

voidcrawl_mcp-0.3.8.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (12.9 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

voidcrawl_mcp-0.3.8.2-py3-none-macosx_11_0_arm64.whl (12.2 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

voidcrawl_mcp-0.3.8.2-py3-none-macosx_10_12_x86_64.whl (13.0 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: voidcrawl_mcp-0.3.8.2.tar.gz
  • Upload date:
  • Size: 179.2 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.8.2.tar.gz
Algorithm Hash digest
SHA256 3025a6ac4e36fc5776e93b500e4305c1d8bee41a1b687cba3904e9a5fb167bb5
MD5 9db8638bcd7bf5e4f7f8d2560df2c445
BLAKE2b-256 8602285e803d1bb179e35be8432ce36a3d3839e021850aa890d1ad19dead4920

See more details on using hashes here.

Provenance

The following attestation bundles were made for voidcrawl_mcp-0.3.8.2.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.8.2-py3-none-win_amd64.whl.

File metadata

File hashes

Hashes for voidcrawl_mcp-0.3.8.2-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 e2391a62c9fa504ee8f903019508a5cb72258b3d61edb4032c420fdf237a6ddc
MD5 994f073bb5d8eb12451dd201b30f316d
BLAKE2b-256 41c63e48f4dbc7ea628dbbcad54e6b2fd5d49f9bee55783b886a23ffaf6b7fb7

See more details on using hashes here.

Provenance

The following attestation bundles were made for voidcrawl_mcp-0.3.8.2-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.8.2-py3-none-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for voidcrawl_mcp-0.3.8.2-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 daa9b67bc3a301554d05e96130602d11a9c968507f5bbb9226e48fb8ea8ab8bc
MD5 f3f00c0c819ee8cfdd327ec0bce7d34e
BLAKE2b-256 2a17f0b2c6bdf06e0c10a8fd085d0bf223e9b35aa195a555216697dcb19c7e81

See more details on using hashes here.

Provenance

The following attestation bundles were made for voidcrawl_mcp-0.3.8.2-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.8.2-py3-none-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for voidcrawl_mcp-0.3.8.2-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 411f5563dd47e864bb1e31038cac2ec1576981dc0f2892dc9fd685bf0095bd90
MD5 87be06682b4c96ca153c7f7637db15ff
BLAKE2b-256 bb2e204dfe532308917c45d486279ff7099720c93f5f50b7990a5403e61b03fd

See more details on using hashes here.

Provenance

The following attestation bundles were made for voidcrawl_mcp-0.3.8.2-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.8.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for voidcrawl_mcp-0.3.8.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f1d21565e7e4bcdf9cc3ed3313c6d8489c20f0c2a3638f4e82bf02c62fa70d68
MD5 9fa9a1edf54daba6cc341b0578c2ad30
BLAKE2b-256 e26a04f9ac989321a44c4f1526a967b0c9c6f54c14cf7c5b2b9701349127b233

See more details on using hashes here.

Provenance

The following attestation bundles were made for voidcrawl_mcp-0.3.8.2-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.8.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for voidcrawl_mcp-0.3.8.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b5de0870e1da55850bca52aef43d85d82648dc6afc99e5549a4a9b76ce5bda06
MD5 867b1d0f51f41b9fa1a4b331fa308305
BLAKE2b-256 7b99d4d509d22a0999ee781f1c8f0861e59ed6a39334be9a7860650d6ba5e54b

See more details on using hashes here.

Provenance

The following attestation bundles were made for voidcrawl_mcp-0.3.8.2-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.8.2-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for voidcrawl_mcp-0.3.8.2-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 31f66c6e685a27f861432c3799b1d46bbe95618388b51c18bd96da1d2803438c
MD5 0da9d71198372344bbcec118d7648769
BLAKE2b-256 acd2a156bbdcb0559a4549d9281750592a5ed826298d635584502b25814812f6

See more details on using hashes here.

Provenance

The following attestation bundles were made for voidcrawl_mcp-0.3.8.2-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.8.2-py3-none-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for voidcrawl_mcp-0.3.8.2-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 2e6e32fda3b2be78cdad02c32f0dc22bdb36d60d6c497eb9c3bae4b57fe0ed85
MD5 4da5666d6b4ed810f5c7397cc3c3b612
BLAKE2b-256 bdaf43f5f8402f21f6bca8b9283836020574f730ac4b92e68c61dac983b21120

See more details on using hashes here.

Provenance

The following attestation bundles were made for voidcrawl_mcp-0.3.8.2-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