What's New
Python SDK — first-class uvx / uv / pip support
Use the server from Python without writing any boilerplate:
# Run via uvx (no install)
uvx web-researcher-mcp
# Install for scripting
pip install web-researcher-mcp
uv add web-researcher-mcpfrom web_researcher_mcp import WebResearcherClient
async with WebResearcherClient.from_stdio() as client:
results = await client.web_search(query="AI safety research 2025")
citation = await client.verify_citation(doi="10.1038/nature12968")See docs/PYTHON_CLIENT.md for the full API reference and the Colab notebook for interactive examples.
SDK design
- Generated, not hand-written —
make gen-python-clientemitsclient.py+models.pydirectly from live Go schemas; a CI drift gate fails if they fall out of sync - ~90 typed model classes — every tool request/response is fully typed with dataclass models
- Async-first, sync facade —
WebResearcherClient(async) +SyncWebResearcherClientfor scripts - Minimal dependencies — stdlib only at runtime (
asyncio,json,subprocess); no third-party packages required - 7 platform wheels — macOS (x86_64 + arm64), Linux glibc/musl (x86_64 + arm64), Windows (x86_64); each bundles the signed/notarized Go binary
Documentation accuracy sweep
- Removed stale metrics (download counts, star counts, line counts) that drifted from reality
- Fixed provider capability claims across all docs to match code (HackerNews web-only; USPTO US-only; nil/nil vs error for unsupported sub-capabilities)
- SDK references updated to official
modelcontextprotocol/go-sdkthroughout - Removed dead
SEARCH_FALLBACK_PROVIDERenv var (never wired into routing logic) from config,.env.example, and.mcp.json - Corrected scraper tier descriptions, error taxonomy ordering, and auth-error pattern strings to match actual code
Installation
Python (new in v1.34.0)
pip install web-researcher-mcp==1.34.0
# or
uvx web-researcher-mcpBinary
# macOS
brew install zoharbabin/tap/web-researcher-mcp
# Windows
winget install zoharbabin.web-researcher-mcp
scoop bucket add zoharbabin https://github.com/zoharbabin/scoop-bucket && scoop install web-researcher-mcp
# Linux / manual
curl -fsSL https://raw.githubusercontent.com/zoharbabin/web-researcher-mcp/main/install.sh | bashDocker
docker pull ghcr.io/zoharbabin/web-researcher-mcp:1.34.0
docker pull docker.io/zoharbabin/web-researcher-mcp:1.34.0.mcpb (Claude Desktop / Cursor one-click)
Download the .mcpb file for your platform from the assets below and double-click to install.
Verify Checksums
sha256sum -c checksums.txtCosign signature verifiable against the GitHub Actions OIDC identity:
https://github.com/zoharbabin/web-researcher-mcp/.github/workflows/release.yml@refs/tags/v1.34.0
Changelog
feat(python): generated Python SDK — async client, ~90 typed models, 7 platform wheels, Colab notebook, live E2E testsfeat(python):cmd/gen-python-clientschema dumper +scripts/gen_python_client.pycode generatorfeat(python):tests/python/— 70 unit tests (mock HTTP) + live E2E testsci: python-drift and test-python gates on every PR; python-live-e2e via workflow_dispatchfix: scrape-errors E2E asserts bot-wall 403 carries bot-detection hint and no GitHub issue linkdocs: comprehensive accuracy sweep — stale counts removed, provider capabilities corrected, dead config removeddeps: bump gopdf, go-redis/v9, actions/upload-artifact, actions/download-artifact, actions/setup-python, alpine
Full diff: v1.33.0...v1.34.0