A community-driven registry for Claude, Cursor, Windsurf, Cline & more. Not affiliated with Anthropic.
Are you the author? Sign in to claim
Dockerized MCP server for Google search and web fetch using CloakBrowser stealth Chromium
Dockerized MCP server exposing two read-only tools:
google_search: searches Google through a CloakBrowser stealth Chromium session and returns parsed organic results.web_fetch: renders a page through CloakBrowser and returns article, body, selector, or raw content as markdown, text, or HTML.The HTTP transport follows the current MCP Streamable HTTP convention with a single MCP endpoint at /mcp. Stdio is also available for local MCP clients that spawn servers as subprocesses.
docker compose build
The image build installs Node dependencies, browser system dependencies, and fonts. On container startup, the server warms CloakBrowser before accepting HTTP requests, so Chromium install/update work happens during startup instead of the first tool call. No local Node install is required.
docker compose up
Endpoints:
POST /mcp: MCP JSON-RPC requests.GET /mcp: MCP SSE stream for Streamable HTTP sessions.DELETE /mcp: MCP session termination.GET /healthz: container health.GET /readyz: readiness and active session count.Default URL:
http://127.0.0.1:3000/mcp
Build the image first, then configure a local MCP client to spawn the container:
{
"mcpServers": {
"google-search-web-fetch": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"MCP_TRANSPORT=stdio",
"google-search-web-fetch-mcp:latest"
]
}
}
}
google_search:
{
"query": "model context protocol streamable http",
"count": 10,
"start": 0,
"language": "en",
"region": "US",
"safe": "active",
"timeoutMs": 30000,
"stealth": true,
"humanize": false,
"fingerprint": "42069"
}
web_fetch:
{
"url": "https://modelcontextprotocol.io/specification/2025-11-25/basic/transports",
"format": "markdown",
"extract": "article",
"waitUntil": "domcontentloaded",
"timeoutMs": 30000,
"maxContentChars": 50000,
"includeLinks": false,
"stealth": true,
"humanize": false
}
Both tools return MCP content text plus structuredContent matching their advertised output schema.
Copy .env.example if you want local overrides. Common settings:
MCP_PORT: HTTP port, default 3000.MCP_ALLOWED_ORIGINS: comma-separated allowed browser origins. Defaults to localhost origins.MCP_BEARER_TOKEN: optional bearer token required on /mcp.MCP_ENABLE_FETCH: default true; set false to disable and hide the web_fetch tool.MCP_ALLOW_PRIVATE_NETWORK: default false; blocks loopback/private network fetch targets for SSRF protection.MCP_BROWSER_WARMUP: default true; launch CloakBrowser during HTTP startup to avoid first-request cold-start latency.MCP_BROWSER_UPDATE_ON_START: default true; check for and download newer CloakBrowser Chromium during startup warmup.CLOAK_HEADLESS: default true.CLOAK_HUMANIZE: default false.CLOAKBROWSER_AUTO_UPDATE: set to false in the Docker image/compose file so CloakBrowser does not start a background update during the first request; startup warmup handles the update check explicitly.CLOAK_PROXY: optional proxy URL.CLOAK_FINGERPRINT: optional stable fingerprint seed.CLOAK_EXTRA_ARGS: comma-separated extra Chromium flags.This project builds on open-source browser automation, MCP, parsing, and TypeScript tooling. See THIRD_PARTY_NOTICES.md for direct dependency acknowledgements and license references.
CloakBrowser stealth is enabled by default. The server does not solve CAPTCHA challenges; if Google returns an automated-query interstitial, google_search returns a tool error with remediation hints.
Relevant references:
Run Claude Code as an MCP server so any agent can delegate coding tasks to it
Browser automation using accessibility snapshots instead of screenshots
MCP server integration for DaVinci Resolve Studio
A Jetbrains IDE IntelliJ plugin aimed to provide coding agents the ability to leverage intelliJ's indexing of the codeba