Skip to content

v1.34.0 — Python SDK

Latest

Choose a tag to compare

@github-actions github-actions released this 16 Jun 17:35
· 2 commits to main since this release

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-mcp
from 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-writtenmake gen-python-client emits client.py + models.py directly 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 facadeWebResearcherClient (async) + SyncWebResearcherClient for 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-sdk throughout
  • Removed dead SEARCH_FALLBACK_PROVIDER env 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-mcp

Binary

# 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 | bash

Docker

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.txt

Cosign 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 tests
  • feat(python): cmd/gen-python-client schema dumper + scripts/gen_python_client.py code generator
  • feat(python): tests/python/ — 70 unit tests (mock HTTP) + live E2E tests
  • ci: python-drift and test-python gates on every PR; python-live-e2e via workflow_dispatch
  • fix: scrape-errors E2E asserts bot-wall 403 carries bot-detection hint and no GitHub issue link
  • docs: comprehensive accuracy sweep — stale counts removed, provider capabilities corrected, dead config removed
  • deps: bump gopdf, go-redis/v9, actions/upload-artifact, actions/download-artifact, actions/setup-python, alpine

Full diff: v1.33.0...v1.34.0