Google SERP MCP server with fingerprint rotation
Project description
SERP MCP Server
Google SERP scraper as a Model Context Protocol (MCP) server with fingerprint rotation.
Sponsored by
Quercle - Stop wasting tokens on junk. Get exactly what your LLM needs.
Web Fetch & Search API that strips navigation, ads, and footers. Handles JS sites. Returns clean, cited content.
Features
- Automatic fingerprint rotation per request
- Request blocking (only www.google.com/search allowed)
- Lite mode for 50% less traffic (organic results only, DEFAULT)
- Full mode extracts: organic results, sitelinks, PAA, related searches, knowledge graph
- Location encoding via protobuf (UULE format)
- Validated country/language codes
Installation
Claude Code
claude mcp add serp-mcp -- uvx serp-mcp
opencode
Add to your ~/.config/opencode/opencode.jsonc:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"serp-mcp": {
"type": "local",
"command": ["uvx", "serp-mcp"],
"enabled": true
}
}
}
Manual Usage
# Run with uvx (automatically installs and runs the latest version)
uvx serp-mcp
Development
git clone https://github.com/LiranYoffe/serp-mcp
cd serp-mcp
uv sync
uv run serp-mcp
Tools
search
Search Google and extract SERP data.
Parameters:
query(required): Search querycountry(default: "us"): Country code (us, uk, fr, de, etc.)language(default: "en"): Language code (en, fr, de, es, etc.)location(optional): Location for local results (e.g., "New York, NY")time_range(optional): Time filter (hour, day, week, month, year)autocorrect(default: true): Enable query autocorrectionpage(default: 1): Page numberlite(default: true): Lite mode (organic results only, 50% less traffic)
Example Usage:
Search for "python tutorial" with default settings
Search for "python tutorial" in France with lite mode
Search for "restaurants" in New York with 7-day time filter
Country Codes
Valid ISO 3166-1 alpha-2 codes: us, uk, fr, de, es, it, jp, kr, cn, in, br, etc. (243 codes)
Language Codes
Valid Google language codes: en, fr, de, es, it, pt, ru, ja, ko, zh-cn, zh-tw, ar, hi, etc. (78 codes)
Time Ranges
hour: Past hourday: Past 24 hoursweek: Past weekmonth: Past monthyear: Past year
Architecture
- Fingerprint Rotation: Automatic browser fingerprint rotation for each request
- MCP Protocol: Model Context Protocol server with stdio transport
- Blocking: All non-Google requests blocked for efficiency
Development
Run Tests
uv run pytest
Regenerate Protobuf
uv run python -m grpc_tools.protoc \
--python_out=serp_mcp \
-Iserp_mcp \
serp_mcp/uule.proto
License
MIT
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file serp_mcp-0.1.7.tar.gz.
File metadata
- Download URL: serp_mcp-0.1.7.tar.gz
- Upload date:
- Size: 17.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c22161fd266188ae2ef9d13b33a524345137c6a21ab7f8fdeae503fb9553572e
|
|
| MD5 |
ba0b1169fc9bb5da3afd0f76859f0187
|
|
| BLAKE2b-256 |
fa5664a87b63ae79edced30181abee0eafebe4e0199a83f3eb4799a5136df0e8
|
Provenance
The following attestation bundles were made for serp_mcp-0.1.7.tar.gz:
Publisher:
publish.yml on LiranYoffe/serp-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
serp_mcp-0.1.7.tar.gz -
Subject digest:
c22161fd266188ae2ef9d13b33a524345137c6a21ab7f8fdeae503fb9553572e - Sigstore transparency entry: 793048361
- Sigstore integration time:
-
Permalink:
LiranYoffe/serp-mcp@4814a9a4b92cca2eaa740e2399526bf148f79e63 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/LiranYoffe
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@4814a9a4b92cca2eaa740e2399526bf148f79e63 -
Trigger Event:
push
-
Statement type:
File details
Details for the file serp_mcp-0.1.7-py3-none-any.whl.
File metadata
- Download URL: serp_mcp-0.1.7-py3-none-any.whl
- Upload date:
- Size: 17.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
664efe0ca5560b38f1434e59eacc73a216215cbfe86aab28465167747db028a8
|
|
| MD5 |
130ef5554e10633a37ffaf4572400bb9
|
|
| BLAKE2b-256 |
38c98185a1bc8484352249d8a4a39f50caeb4260006f44a33aa4265e7b76858d
|
Provenance
The following attestation bundles were made for serp_mcp-0.1.7-py3-none-any.whl:
Publisher:
publish.yml on LiranYoffe/serp-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
serp_mcp-0.1.7-py3-none-any.whl -
Subject digest:
664efe0ca5560b38f1434e59eacc73a216215cbfe86aab28465167747db028a8 - Sigstore transparency entry: 793048434
- Sigstore integration time:
-
Permalink:
LiranYoffe/serp-mcp@4814a9a4b92cca2eaa740e2399526bf148f79e63 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/LiranYoffe
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@4814a9a4b92cca2eaa740e2399526bf148f79e63 -
Trigger Event:
push
-
Statement type: