This server has been deprecated in favor of web-researcher-mcp, a complete Go rewrite that ships as a single binary. The original Node.js version provided Google Custom Search integration, web scraping, and research workflows, but faced issues with orphan process detection via npx and Google's discontinuation of entire web search. The new version resolves these problems by adding multiple search providers (Brave, Serper, SearXNG), native process lifecycle management, and a three-tier caching system with optional Redis support. If you're using the old version, migration is straightforward since your existing Google API credentials carry over. The repository is now archived and read-only.
⚠️ This project has been superseded by
web-researcher-mcp.A complete rewrite in Go: same tools, but it cites real sources and stays honest — citation verification, retraction flagging, eight search providers behind one interface, and a single signed static binary. No Node.js, no npm.
Your API keys and tool calls don't change — only how the server is launched. Pick whichever you prefer (no Node required):
# macOS / Linux — installs the binary and registers it with Claude Code automatically:
curl -fsSL https://raw.githubusercontent.com/zoharbabin/web-researcher-mcp/main/install.sh | sh
# Windows (PowerShell):
powershell -ExecutionPolicy Bypass -c "irm https://raw.githubusercontent.com/zoharbabin/web-researcher-mcp/main/install.ps1 | iex"
# Python users (uv) — run with no install:
uvx web-researcher-mcp
The config keeps the same shape — swap the command/args, keep your env:
// BEFORE — google-researcher-mcp (npx / Node)
{
"mcpServers": {
"google-researcher": {
"command": "npx",
"args": ["-y", "google-researcher-mcp"],
"env": { "GOOGLE_CUSTOM_SEARCH_API_KEY": "…", "GOOGLE_CUSTOM_SEARCH_ID": "…" }
}
}
}
// AFTER — web-researcher-mcp (installed binary; or use "uvx" + args ["web-researcher-mcp"])
{
"mcpServers": {
"web-researcher": {
"command": "web-researcher-mcp",
"env": { "GOOGLE_CUSTOM_SEARCH_API_KEY": "…", "GOOGLE_CUSTOM_SEARCH_ID": "…" }
}
}
}
Don't run both at once — they register identical tool names. Remove the
google-researcherentry before addingweb-researcher.
Your existing GOOGLE_CUSTOM_SEARCH_API_KEY and GOOGLE_CUSTOM_SEARCH_ID work unchanged.
| Open Issue | Resolution in web-researcher-mcp |
|---|---|
| #108 — Orphan detection fails via npx | Go binary has native process lifecycle (EOF/SIGPIPE) — no npm wrapper |
| #107 — Google discontinuing 'entire web' search | Eight providers (Brave, Serper, SearXNG, SearchAPI, Tavily, Exa, DuckDuckGo + Google PSE for lenses) with automatic fallback |
| #55 — Support alternative search engines | Multiple engines behind one interface, plus a zero-config DuckDuckGo default |
| #72 — Add Redis caching | Hybrid cache: memory + AES-encrypted disk + optional Redis |
| #40 — Split server.ts into modules | Fully modular Go architecture (one package per concern) |
Plus what's new: verify_citation and audit_bibliography (catch fabricated/retracted citations), academic / patent / SEC-filing / US-case-law / economic / clinical-trial search, and authority-weighted search lenses.
docker pull zoharbabin/web-researcher-mcp:latestGOOGLE_CUSTOM_SEARCH_API_KEY*secretGoogle Custom Search API key
GOOGLE_CUSTOM_SEARCH_ID*Google Programmable Search Engine ID
com.mcparmory/google-search
io.github.pipeworx-io/brave-search
marcopesani/mcp-server-serper
brave/brave-search-mcp-server
com.mcparmory/google-search-console
acamolese/google-search-console-mcp