Google Search for Local LLMs — No API Key Required. MCP server using headless Chromium via Playwright.
Project description
noapi-google-search-mcp
Google Search for Local LLMs — No API Key Required
An MCP (Model Context Protocol) server that gives your local LLM real Google search and page fetching abilities using headless Chromium via Playwright. No Google API key, no Custom Search Engine setup, no usage limits — just real Google results.
Works with LM Studio, Claude Desktop, and any MCP-compatible client.
Why This Instead of API-Based Alternatives?
| noapi-google-search-mcp | API-based MCP servers | |
|---|---|---|
| API key required | No | Yes (Google CSE API) |
| Cost | Free | Paid after 100 queries/day |
| Setup time | pip install + go |
Create Google Cloud project, enable API, get key, configure CSE |
| Results quality | Real Google results | Custom Search Engine (different ranking) |
| JavaScript pages | Renders them (Chromium) | Cannot render JS |
| Page fetching | Built-in visit_page tool |
Usually separate |
Features
google_search— Search Google and get structured results (titles, URLs, snippets)visit_page— Fetch any URL and extract readable text content- Headless Chromium renders JavaScript-heavy pages
- Consent banner auto-dismissal
- Smart content extraction (strips nav, ads, footers)
- Zero configuration — no API keys, no environment variables
Installation
pip install noapi-google-search-mcp
playwright install chromium
Usage
LM Studio
Add to ~/.lmstudio/mcp.json:
{
"mcpServers": {
"google-search": {
"command": "noapi-google-search-mcp",
"env": {
"PYTHONUNBUFFERED": "1"
}
}
}
}
Claude Desktop
Add to your Claude Desktop config:
{
"mcpServers": {
"google-search": {
"command": "noapi-google-search-mcp"
}
}
}
As a CLI
noapi-google-search-mcp
Or:
python -m google_search_mcp
Development
git clone https://github.com/VincentKaufmann/google-search-mcp.git
cd google-search-mcp
pip install -e .
playwright install chromium
License
MIT
Project details
Release history Release notifications | RSS feed
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 noapi_google_search_mcp-0.1.0.tar.gz.
File metadata
- Download URL: noapi_google_search_mcp-0.1.0.tar.gz
- Upload date:
- Size: 5.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fcafd85ecde298dbbf288c29cdf122a9ca04a2b4651d49c772ecd8926c6ee7e5
|
|
| MD5 |
c09fb66888f1305a00db78dc230bc72a
|
|
| BLAKE2b-256 |
0c737b6926afd151ba602c2fbc18db49e2fc6b568d8a602bd0f185bdb8898a89
|
Provenance
The following attestation bundles were made for noapi_google_search_mcp-0.1.0.tar.gz:
Publisher:
publish.yml on VincentKaufmann/google-search-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
noapi_google_search_mcp-0.1.0.tar.gz -
Subject digest:
fcafd85ecde298dbbf288c29cdf122a9ca04a2b4651d49c772ecd8926c6ee7e5 - Sigstore transparency entry: 938560427
- Sigstore integration time:
-
Permalink:
VincentKaufmann/google-search-mcp@8ffa87e9bb6adebfd6dd68c32dfa32aae0b0508d -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/VincentKaufmann
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@8ffa87e9bb6adebfd6dd68c32dfa32aae0b0508d -
Trigger Event:
release
-
Statement type:
File details
Details for the file noapi_google_search_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: noapi_google_search_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 6.6 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 |
9223c033542d8edba970acc07c98fe985ab854d9ac9a9a3103723223337b271a
|
|
| MD5 |
330853be987f07af75e9735bce2d3e34
|
|
| BLAKE2b-256 |
e683d1a4be50ead13786e9165ef37da61c18deab7bc97647a04750eb1f3c5655
|
Provenance
The following attestation bundles were made for noapi_google_search_mcp-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on VincentKaufmann/google-search-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
noapi_google_search_mcp-0.1.0-py3-none-any.whl -
Subject digest:
9223c033542d8edba970acc07c98fe985ab854d9ac9a9a3103723223337b271a - Sigstore transparency entry: 938560436
- Sigstore integration time:
-
Permalink:
VincentKaufmann/google-search-mcp@8ffa87e9bb6adebfd6dd68c32dfa32aae0b0508d -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/VincentKaufmann
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@8ffa87e9bb6adebfd6dd68c32dfa32aae0b0508d -
Trigger Event:
release
-
Statement type: