mcpField
G
google-search

google-search

github.com/fetcher-shData & databases24.0k installsUpdated 8w ago
Repository

About google-search

Google Search exposes Google web results through an HTTP API for developers and agents. It supports search operators, pagination, and locale parameters, with prepaid credits or x402 pay-per-call; an MCP endpoint is also documented.

Key features

  1. 01Return Google web search results as JSON
  2. 02Pass through Google search operators
  3. 03Set page, language, and region
  4. 04Choose prepaid credits or x402 payment
  5. 05Offer named Google Search MCP tools

Use cases

  1. 01Find pages restricted to a specific site
  2. 02Search for PDFs or exact phrases
  3. 03Retrieve localized results
  4. 04Connect search to an MCP client

MCP support

The service provides an MCP endpoint at https://google.fetcher.sh/mcp. Clients can use its free discovery and balance tools, paid fetch tools, and the google_search shortcut; authentication can use a bearer key or x402.

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/fetcher-sh/fetcher-skills --skill google-search

After installing, type/google-searchin Claude Code to confirm it loaded.

Details

From the project README

Google Search API

Google's own search results as clean JSON — one plain HTTP GET per call, paid as you go. Google's search operators pass straight through: site:, filetype:, intitle:, and quoted exact phrases all work exactly as they do in the browser. No Custom Search Engine setup, no per-day query quota, no billing account.

Base URL: https://google.fetcher.sh

Authentication

Two ways to pay, same data — full mechanics in the fetcher skill:

# 1. Prepaid credits (recommended — get a key at https://fetcher.sh/topup
#    or via POST /api/credits/topup, see the fetcher skill)
export FETCHER_API_KEY="bby_live_xxxxxxxxxxxx"
curl -H "Authorization: Bearer $FETCHER_API_KEY" \
  "https://google.fetcher.sh/api/search?query=hello"

# 2. x402 pay-per-call — omit the header; a GET with no payment returns 402
#    with machine-readable payment requirements (USDC on Base, Polygon,
#    Arbitrum, Monad, or Solana). @x402/fetch signs and retries automatically.

Every response is { "status": number, "message": string, "data": ... }; the HTTP status mirrors status.

Endpoint ($0.005/call)

EndpointWhat it returns
/api/searchGoogle web search results for a query

Required: query. Optional: safe (SafeSearch), page (pagination), hl (UI language, e.g. en), country (region scope), count (results per page — currently 10), noEncode (skip query re-encoding for pre-formatted operator strings).

Scenarios

Restrict to one site:

curl -H "Authorization: Bearer $FETCHER_API_KEY" \
  --data-urlencode "query=site:github.com x402 payments" -G \
  "https://google.fetcher.sh/api/search"

PDFs only:

curl -H "Authorization: Bearer $FETCHER_API_KEY" \
  --data-urlencode "query=agentic commerce filetype:pdf" -G \
  "https://google.fetcher.sh/api/search"

Exact phrase:

curl -H "Authorization: Bearer $FETCHER_API_KEY" \
  --data-urlencode 'query="pay per call api"' -G \
  "https://google.fetcher.sh/api/search"

Localized results (UK, French UI) and pagination:

curl -H "Authorization: Bearer $FETCHER_API_KEY" \
  --data-urlencode "query=agentic commerce" -G \
  --data-urlencode "country=GB" \
  --data-urlencode "hl=fr" \
  --data-urlencode "page=2" \
  "https://google.fetcher.sh/api/search"

Combine operators — title match plus site restriction:

curl -H "Authorization: Bearer $FETCHER_API_KEY" \
  --data-urlencode "query=intitle:pricing site:x402.org" -G \
  "https://google.fetcher.sh/api/search"

MCP

{
  "mcpServers": {
    "google-search": {
      "url": "https://google.fetcher.sh/mcp",
      "headers": { "Authorization": "Bearer bby_live_..." }
    }
  }
}

Free: search_endpoints, describe_endpoint, check_balance. Paid: fetch_data (any endpoint above), topup_credits, plus the named shortcut google_search. Drop the headers block to pay per call with x402 instead — see the fetcher skill for the full flow.

Errors

  • 400 — missing/invalid parameter (message names it)
  • 401 — unknown or rotated key
  • 402 — payment required (x402 challenge) or topup_required (credits exhausted)
  • 404 — not a priced path
  • No rate limits; no refunds on upstream failures (settlement precedes delivery)

Reference

Comments

Markdown supported