Skip to main content

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 browsing 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
Google News Built-in Usually not available
Google Scholar Built-in Not available
Google Images Built-in Separate API needed
Google Trends Built-in Separate API needed
Page fetching Built-in visit_page tool Usually separate

Tools

google_search — Web Search

Search Google and get structured results with titles, URLs, and snippets.

Parameters:

Parameter Description Example
query Search query (required) "best python frameworks 2025"
num_results Number of results (1-10, default 5) 5
time_range Filter by recency "past_hour", "past_day", "past_week", "past_month", "past_year"
site Limit to a domain "reddit.com", "stackoverflow.com", "github.com", "arxiv.org", "news.ycombinator.com"
page Results page (1-10, default 1) 2 for next page
language Language code "en", "de", "fr", "es", "ja", "zh"
region Country/region code "us", "gb", "de", "fr", "jp"

How your LLM uses it: The LLM automatically sees these parameters in the tool definition. When you ask "search Reddit for Python tips from the past week", it will call google_search(query="Python tips", site="reddit.com", time_range="past_week").


google_news — News Search

Search Google News for recent headlines with source and timestamp.

Parameters:

Parameter Description Example
query News search query (required) "AI regulation"
num_results Number of results (1-10, default 5) 5

google_scholar — Academic Search

Search Google Scholar for papers, citations, and research.

Parameters:

Parameter Description Example
query Academic search query (required) "transformer attention mechanism"
num_results Number of results (1-10, default 5) 5

Returns: title, URL, authors, citation count, and snippet for each paper.


google_images — Image Search

Search Google Images and get image URLs.

Parameters:

Parameter Description Example
query Image search query (required) "sunset over ocean"
num_results Number of results (1-10, default 5) 5

google_trends — Trends Lookup

Check Google Trends for topic interest, related topics, and related queries.

Parameters:

Parameter Description Example
query Topic to check trends for (required) "artificial intelligence"

google_suggest — Search Suggestions

Get Google autocomplete suggestions for a query. Useful for brainstorming search terms and exploring what people commonly search for.

Parameters:

Parameter Description Example
query Query to get suggestions for (required) "machine learning"

visit_page — Page Fetcher

Fetch any URL and extract readable text content. Use after search to read full articles.

Parameters:

Parameter Description Example
url Full URL to fetch (required) "https://example.com/article"

How Does the LLM Know About These Tools?

You don't need to teach the LLM anything. MCP automatically exposes all tool names, descriptions, and parameters to the model. The LLM picks the right tool and parameters automatically based on your request.

Sample Prompts

Here are example prompts you can type into LM Studio or Claude Desktop, and which tool the LLM will use:

Web Search

What you type Tool called Parameters used
"Search for the best Python web frameworks" google_search query
"Find Reddit discussions about home lab setups" google_search query + site="reddit.com"
"Search Stack Overflow for async Python examples" google_search query + site="stackoverflow.com"
"What's new in AI this week?" google_search query + time_range="past_week"
"Search Hacker News for posts about Rust" google_search query + site="news.ycombinator.com"
"Find GitHub repos for MCP servers" google_search query + site="github.com"
"Get page 2 of results for machine learning tutorials" google_search query + page=2
"Search for restaurants in Tokyo in Japanese" google_search query + language="ja" + region="jp"
"Find German news about the EU from the past month" google_search query + language="de" + time_range="past_month"

News

What you type Tool called
"What are today's top headlines?" google_news
"Any recent news about the stock market?" google_news
"What happened in the Japan election?" google_news

Academic Research

What you type Tool called
"Find papers on transformer attention mechanisms" google_scholar
"Look up academic research about CRISPR" google_scholar
"What does the research say about intermittent fasting?" google_scholar

Images

What you type Tool called
"Show me images of the Northern Lights" google_images
"Find diagrams of neural network architecture" google_images

Trends

What you type Tool called
"What's trending in tech right now?" google_trends
"Is Python more popular than JavaScript?" google_trends

Suggestions

What you type Tool called
"What do people commonly search for about Python?" google_suggest
"Help me brainstorm better search terms for climate data" google_suggest

Page Reading

What you type Tool called
"Read this article for me: https://..." visit_page
"What does this page say? https://..." visit_page

Installation

Quick Install (pipx — recommended)

pipx install noapi-google-search-mcp
playwright install chromium

This puts noapi-google-search-mcp on your PATH so you can use it directly.

Install in a Virtual Environment

If you don't have pipx, install in a dedicated venv:

python3 -m venv ~/.local/share/noapi-google-search-mcp
~/.local/share/noapi-google-search-mcp/bin/pip install noapi-google-search-mcp
~/.local/share/noapi-google-search-mcp/bin/playwright install chromium

Configuration

LM Studio

Add to ~/.lmstudio/mcp.json:

If installed with pipx (command is on PATH):

{
  "mcpServers": {
    "google-search": {
      "command": "noapi-google-search-mcp",
      "env": {
        "PYTHONUNBUFFERED": "1"
      }
    }
  }
}

If installed in a venv (use the full path):

{
  "mcpServers": {
    "google-search": {
      "command": "~/.local/share/noapi-google-search-mcp/bin/noapi-google-search-mcp",
      "env": {
        "PYTHONUNBUFFERED": "1"
      }
    }
  }
}

Claude Desktop

Add to your Claude Desktop config (claude_desktop_config.json):

{
  "mcpServers": {
    "google-search": {
      "command": "noapi-google-search-mcp"
    }
  }
}

If installed in a venv, use the full path to the binary instead.

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

noapi_google_search_mcp-0.1.3.tar.gz (11.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

noapi_google_search_mcp-0.1.3-py3-none-any.whl (12.7 kB view details)

Uploaded Python 3

File details

Details for the file noapi_google_search_mcp-0.1.3.tar.gz.

File metadata

  • Download URL: noapi_google_search_mcp-0.1.3.tar.gz
  • Upload date:
  • Size: 11.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for noapi_google_search_mcp-0.1.3.tar.gz
Algorithm Hash digest
SHA256 6fc4607e56ea70ab3e262341a24bc024761ade047e6200c79d16da5728c27e38
MD5 d3fa2be61fff1e476595e5a512bce389
BLAKE2b-256 f8b60e52b7be75adf8c3a76c21ff9af48462bd8f682aefbe22891be94d6ace38

See more details on using hashes here.

Provenance

The following attestation bundles were made for noapi_google_search_mcp-0.1.3.tar.gz:

Publisher: publish.yml on VincentKaufmann/google-search-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file noapi_google_search_mcp-0.1.3-py3-none-any.whl.

File metadata

File hashes

Hashes for noapi_google_search_mcp-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 4dbc20dfe6ee5ff194ceea4bf557af60bbed6665104455b6e522834baf5147e3
MD5 00f32b5476c0377ef8ce1374bf6dced6
BLAKE2b-256 77412b5b1ea66ebded405441d64ead0900f034a175b526a03819926459a382f7

See more details on using hashes here.

Provenance

The following attestation bundles were made for noapi_google_search_mcp-0.1.3-py3-none-any.whl:

Publisher: publish.yml on VincentKaufmann/google-search-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page