An r/mcp post launched a free anti-bot Google search MCP after benchmarking 6 broken alternatives. This walks the build vs buy decision and the recipe if you do build.
Prerequisites
- Decide: personal/hobby agent (build) or production/paid customers (buy)
- Node.js for build path; Scavio API key for buy path
Walkthrough
Step 1: Decision rule: who pays if it breaks at 2am?
If a customer, buy. If you, build is fine.
// Hobby/learning: build (free, occasionally breaks)
// Production/paid customer: buy (Scavio or paid SERP API)Step 2: [Build path] Foundation: warm Chrome with stealth profile
Persistent profile beats fresh-launch on detection.
// puppeteer-extra + puppeteer-extra-plugin-stealth
// Persist profile dir: --user-data-dir=./chrome-profileStep 3: [Build path] 4-worker pool for parallelism
Auto-rebuild on crash.
// Pool of 4 Chrome instances; on detected block, kill + relaunch with fresh profile.Step 4: [Build path] Mozilla Readability + Turndown for content extraction
Convert HTML to markdown.
// @mozilla/readability + turndown. Strip nav/footer/ads before LLM ingestion.Step 5: [Buy path] Scavio MCP
One CLI line.
claude mcp add scavio https://mcp.scavio.dev/mcp --header 'x-api-key: $SCAVIO_API_KEY'
# Free 500 calls/mo, $30/mo for 7KStep 6: Either way: handle blocks gracefully
Backoff + fallback.
// On 429 or block: backoff exponential, try alternate engine as fallback.Python Example
# Build cost: ~30-50 hours engineering + ongoing parser maintenance.
# Buy cost: $0-30/mo at hobby/early-production volumes.JavaScript Example
// Build path is JS-native (puppeteer).Expected Output
A clear decision and a working setup. Hobby: stealth-Chrome MCP, free, occasionally breaks. Production: hosted SERP API, doesn't break the morning of launch.