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.1.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.1-py3-none-win_amd64.whl (11.4 MB view details)

Uploaded Python 3Windows x86-64

voidcrawl_mcp-0.3.8.1-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.1-py3-none-musllinux_1_2_aarch64.whl (13.0 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARM64

voidcrawl_mcp-0.3.8.1-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.1-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.1-py3-none-macosx_11_0_arm64.whl (12.2 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

voidcrawl_mcp-0.3.8.1-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.1.tar.gz.

File metadata

  • Download URL: voidcrawl_mcp-0.3.8.1.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.1.tar.gz
Algorithm Hash digest
SHA256 57282fdac08dee13e17e018b01ff939a6219775748d68cf768400905e1afe18b
MD5 b7c4a004e42c3d6697d59ff942ace899
BLAKE2b-256 835e1e07ba07d3de97425478b4a4087c091eacc3066c535819e389eb02dc900c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for voidcrawl_mcp-0.3.8.1-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 4fb80212fb3f9fdf2b2da5466ae4657bdad0bb4d72a541dc5333c5801c9ce7eb
MD5 fc5ced4122e086bd31a4cc8ff24a5131
BLAKE2b-256 85e878b3b071c2635f209d0ec1e19f2c404ca6129b94d0b65d4b8876f0bc2c41

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for voidcrawl_mcp-0.3.8.1-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5e1811f0d773d83a36c3e128037f24cf71c4ddecf71534417ec489b7d9c7d64c
MD5 f0e45e100d455fbc2ba57b2cbd45f971
BLAKE2b-256 322a8c3306abfcbc321f9c8ea7cdb239ceff8a83b14c61a0177de5ae87c54226

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for voidcrawl_mcp-0.3.8.1-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 83e24541921286f2b800adf8956f673eb4b1b09e1bd5883063ba352ef15cd9fd
MD5 1c7bccf0419a99c503242fbaf06a4dd4
BLAKE2b-256 469ea4c4936115a7aac92379818df04efbc7857d08f69527f3f34fd13c18ef3e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for voidcrawl_mcp-0.3.8.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4c0afd9c24ac93e060415aceea9a30f70700c54900c60077ee5c8157a5e968af
MD5 a3edf6026432d2f13ee9b22e3d25c4ca
BLAKE2b-256 bdbfba50308b76ed47f7fb294e98f6a332a3e00d366b0798c64ae7ae5ffed18c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for voidcrawl_mcp-0.3.8.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c8a5e417d717a7b11802ddcb09b73dff3c760933b10040891dec50f1f8d546bf
MD5 e3368dd8772639726450cc8ab8bfa3a9
BLAKE2b-256 ea48f783f8bc00904f133423be74fda501fe50c5662d644087d2d8381d268ec7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for voidcrawl_mcp-0.3.8.1-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 657ff959ce96b477b3b1d8e0e55ad97c2d9d67260914c548acda292cfabcd910
MD5 835d0abf0e3ee147017f7a196fc29ff2
BLAKE2b-256 cb8bb320e5d7f7804019237212273c795d19693e9c5842a3d0231310e0749319

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for voidcrawl_mcp-0.3.8.1-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 e069074dcc42135ec47b5ad7dabe74d713dd3bfe5adfa0e39e226a58791cafee
MD5 60ce2fdd2f23069bc5eb167d788adf15
BLAKE2b-256 e20b096cd25c1493d9d8be0c0546a60559bd144900ea219dfae00ea6b4d54844

See more details on using hashes here.

Provenance

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