noapi-google-search-mcp
vincentkaufmann@protonmail.com
If you find this useful, consider supporting continued development and new features.
BTC: 16DT4AHemLyn7C6P116YepjY518gu9wUUH
ETH: 0x7287D1F9c77832cFF246937af0443622bFdACD04
38 tools. Zero API keys. Give any local LLM real Google search, live feeds, vision, OCR, and full video understanding.
An MCP server that turns your local LLM into a fully connected assistant. Real Google results, live news and social feeds, reverse image search, offline OCR, YouTube transcription and clip extraction — all running locally through headless Chromium and open-source ML models. No API keys, no usage limits, no cloud dependency.
Works with LM Studio, Claude Desktop, OpenClaw, Ollama, and any MCP-compatible client.
What's New in v0.3.0 — 16 New Tools
Live Feed Subscriptions
Subscribe to news, Reddit, Hacker News, YouTube channels, Twitter/X profiles, GitHub repos, arXiv papers, and podcasts. Content is fetched, stored locally in SQLite with full-text search, and available to your LLM instantly. YouTube videos are auto-transcribed on fetch — full Whisper transcripts, searchable via FTS5.
| New Tool |
What It Does |
subscribe |
Add any source — news RSS, Reddit, HN, GitHub, arXiv, YouTube, podcasts, Twitter/X |
unsubscribe |
Remove a subscription and its stored content |
list_subscriptions |
See all active feeds with item counts |
check_feeds |
Poll all subscriptions, fetch new content, auto-transcribe YouTube videos |
search_feeds |
Full-text search across everything your feeds have collected |
get_feed_items |
Browse recent items, filtered by source or type |
Pre-configured news sources — subscribe with one word: bbc, cnn, nyt, guardian, npr, aljazeera, techcrunch, ars, verge, wired, reuters
arXiv shortcuts — ai, ml, cv, nlp, robotics, crypto, systems, hci
"Subscribe to BBC News, r/LocalLLaMA, and Hacker News"
"Follow @elonmusk on Twitter"
"Subscribe to the YouTube channel @3Blue1Brown"
"Watch anthropics/claude-code on GitHub for new releases"
"Subscribe to the machine learning arXiv category"
"Check my feeds"
"Search my feeds for transformer architecture"
"What's new in my Reddit feeds?"
Local File Processing
Transcribe meetings, convert formats, read documents — all local, no cloud.
| New Tool |
What It Does |
transcribe_local |
Transcribe any local audio or video file with Whisper (mp3, wav, mp4, mkv, etc.) |
convert_media |
FFmpeg format conversion — video to audio, format to format, video to GIF |
read_document |
Extract text from PDF, DOCX, HTML, CSV, JSON, and 30+ text formats |
Email, Web Utilities & Cloud
Pull emails, generate QR codes, shorten URLs, archive pages, look up Wikipedia, upload to S3.
| New Tool |
What It Does |
fetch_emails |
Pull emails via IMAP — Gmail, Outlook, Yahoo, any IMAP server |
paste_text |
Post text to a pastebin and get a shareable link |
shorten_url |
Shorten any URL via TinyURL |
generate_qr |
Generate QR code images for URLs, Wi-Fi, contacts, any data |
archive_webpage |
Save a webpage snapshot to the Wayback Machine |
wikipedia |
Look up any Wikipedia article, any language, with summary support |
upload_to_s3 |
Upload files to MinIO, AWS S3, DigitalOcean Spaces, Cloudflare R2 |
"Transcribe this recording: ~/meeting.mp3"
"Convert video.mp4 to mp3"
"Read this PDF: ~/report.pdf"
"Check my email: user@gmail.com password: xxxx"
"Shorten this URL: https://very-long-url..."
"Generate a QR code for https://mysite.com"
"Archive this article: https://news.example.com/story"
"Wikipedia: quantum computing"
"Upload report.pdf to my MinIO bucket"
Zero extra dependencies for feeds. Built entirely on Python stdlib — SQLite for storage, FTS5 for search, urllib for fetching, xml.etree for parsing. YouTube and Twitter use the existing Playwright browser. FFmpeg required for convert_media (commonly pre-installed).
All 38 Tools by Category
Live Feed Subscriptions
| Tool |
Description |
subscribe |
Subscribe to news, Reddit, HN, GitHub, arXiv, YouTube, podcasts, Twitter/X |
unsubscribe |
Remove a subscription and its stored content |
list_subscriptions |
List all active subscriptions with item counts |
check_feeds |
Fetch new content from all or specific sources |
search_feeds |
Full-text search across all stored feed content |
get_feed_items |
Get recent items filtered by source or type |
Google Search & Web
| Tool |
Description |
google_search |
Web search with time filters, site filters, pagination, language/region |
google_news |
News search with article thumbnails inline |
google_scholar |
Academic papers with citations |
google_images |
Image search with results displayed inline in chat |
google_trends |
Topic interest over time, related queries |
visit_page |
Fetch any URL and extract readable text |
Travel & Commerce
| Tool |
Description |
google_shopping |
Product search with prices, stores, ratings, images |
google_flights |
Flight search with prices and travel times |
google_hotels |
Hotel search with images, prices, ratings, booking URLs |
google_translate |
Translation across 100+ languages |
google_maps |
Places search with ratings, reviews, and map screenshots |
google_maps_directions |
Route directions with step-by-step and map screenshot |
Finance & Info
| Tool |
Description |
google_finance |
Stock prices, market data, company info |
google_weather |
Current conditions and multi-day forecast |
google_books |
Book search with author, ISBN, snippets |
Vision & OCR
| Tool |
Description |
google_lens |
Reverse image search — identify objects, products, landmarks, text |
google_lens_detect |
Detect all objects in an image (OpenCV) and identify each via Lens |
ocr_image |
Extract text from images locally (RapidOCR, fully offline) |
list_images |
List image files in a directory for use with vision tools |
Video & Audio Intelligence
| Tool |
Description |
transcribe_video |
Download and transcribe any video with timestamps (faster-whisper) |
transcribe_local |
Transcribe local audio/video files (mp3, wav, m4a, mp4, mkv, etc.) |
search_transcript |
Search a transcribed video for topics by keyword |
extract_video_clip |
Extract video clips by topic — ask and the LLM cuts it |
convert_media |
Convert between audio/video formats via FFmpeg |
Documents & Data
| Tool |
Description |
read_document |
Extract text from PDF, DOCX, HTML, CSV, JSON, and 30+ formats |
Email
| Tool |
Description |
fetch_emails |
Pull emails via IMAP — Gmail, Outlook, Yahoo, iCloud, any IMAP server |
Web Utilities
| Tool |
Description |
paste_text |
Post text to a pastebin and get a shareable URL |
shorten_url |
Shorten any URL via TinyURL |
generate_qr |
Generate QR code images (URLs, Wi-Fi, contacts, any data) |
archive_webpage |
Archive a webpage on the Wayback Machine |
wikipedia |
Wikipedia article lookup in any language |
Cloud Storage
| Tool |
Description |
upload_to_s3 |
Upload files to MinIO, AWS S3, DigitalOcean Spaces, Cloudflare R2, Backblaze B2 |
Why This Instead of API-Based Alternatives?
|
noapi-google-search-mcp |
API-based MCP servers |
OpenClaw built-in |
| API key required |
No |
Yes (Google CSE API) |
Yes (Brave/Perplexity) |
| Cost |
Free |
Paid after 100 queries/day |
API fees |
| Setup time |
pip install + go |
Create Cloud project, enable API, configure |
Multiple API keys |
| Results quality |
Real Google results |
Custom Search Engine |
Brave index |
| JavaScript pages |
Renders them (Chromium) |
Cannot render JS |
Cannot render JS |
| Tools count |
38 |
1-3 |
2 (web_search, web_fetch) |
| Google Search |
Built-in (with filters) |
Basic only |
Not available |
| Google Shopping |
Built-in |
Not available |
Not available |
| Google Flights |
Built-in |
Not available |
Not available |
| Google Hotels |
Built-in |
Not available |
Not available |
| Google Translate |
Built-in |
Separate API needed |
Not available |
| Google Maps |
Built-in (with screenshots) |
Not available |
Not available |
| Google Maps Directions |
Built-in (with route map) |
Not available |
Not available |
| Google Weather |
Built-in |
Not available |
Not available |
| Google Finance |
Built-in |
Not available |
Not available |
| Google News |
Built-in |
Usually not available |
Not available |
| Google Scholar |
Built-in |
Not available |
Not available |
| Google Books |
Built-in |
Not available |
Not available |
| Google Images |
Built-in (inline in chat) |
Separate API needed |
Not available |
| Google Lens |
Built-in (reverse image search) |
Not available |
Not available |
| Object detection |
Built-in (OpenCV + Lens) |
Not available |
Not available |
| Local OCR |
Built-in (offline) |
Not available |
Not available |
| Video transcription |
Built-in (local Whisper) |
Not available |
Not available |
| Video clip extraction |
Built-in |
Not available |
Not available |
| Google Trends |
Built-in |
Separate API needed |
Not available |
| Feed subscriptions |
Built-in (8 source types) |
Not available |
Not available |
| Full-text feed search |
Built-in (SQLite FTS5) |
Not available |
Not available |
| Auto-transcribe feeds |
Built-in (YouTube → Whisper) |
Not available |
Not available |
| Local file transcription |
Built-in (any audio/video) |
Not available |
Not available |
| Media format conversion |
Built-in (FFmpeg) |
Not available |
Not available |
| Document reader |
Built-in (PDF, DOCX, etc.) |
Not available |
Not available |
| Email integration |
Built-in (IMAP) |
Not available |
Not available |
| Pastebin |
Built-in |
Not available |
Not available |
| URL shortener |
Built-in (TinyURL) |
Not available |
Not available |
| QR code generation |
Built-in (OpenCV) |
Not available |
Not available |
| Web archiving |
Built-in (Wayback Machine) |
Not available |
Not available |
| Wikipedia |
Built-in |
Not available |
Not available |
| S3/MinIO upload |
Built-in |
Not available |
Not available |
| Page fetching |
Built-in |
Usually separate |
Basic |
Tool Details & Parameters
Feed Subscription Tools
subscribe — Add a Content Source
| Parameter |
Description |
Example |
source_type |
Source type (required) |
"news", "reddit", "hackernews", "github", "arxiv", "youtube", "podcast", "twitter" |
identifier |
Source identifier (required) |
"bbc", "LocalLLaMA", "top", "anthropics/claude-code", "ml", "@3Blue1Brown", "https://...", "elonmusk" |
name |
Display name (optional) |
"My Custom Feed" |
Identifier formats by type:
- news: preset name (
bbc, cnn, nyt, guardian, npr, aljazeera, techcrunch, ars, verge, wired, reuters) or any RSS URL
- reddit: subreddit name (e.g.
LocalLLaMA, programming)
- hackernews:
top, new, or best
- github:
owner/repo (e.g. anthropics/claude-code)
- arxiv: shortcut (
ai, ml, cv, nlp, robotics, crypto) or category like cs.AI
- youtube: channel handle (
@3Blue1Brown), URL, or channel ID (UCxxxx)
- podcast: RSS feed URL
- twitter: username with or without
@
check_feeds — Fetch New Content
| Parameter |
Description |
Example |
source_type |
Limit to one type (optional) |
"news", "reddit" |
search_feeds — Full-Text Search
| Parameter |
Description |
Example |
query |
Search query (required) — supports FTS5: AND, OR, NOT, "quoted phrases" |
"machine learning", "GPU NOT NVIDIA" |
source_type |
Limit to one type (optional) |
"news" |
limit |
Max results (default 20) |
10 |
get_feed_items — Browse Recent Items
| Parameter |
Description |
Example |
source |
Filter by source name (optional) |
"BBC", "LocalLLaMA" |
source_type |
Filter by type (optional) |
"reddit", "hackernews" |
limit |
Max items (default 20) |
10 |
Google Search Tools
google_search — Web Search
| 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" |
page |
Results page (1-10, default 1) |
2 |
language |
Language code |
"en", "de", "fr", "ja" |
region |
Country/region code |
"us", "gb", "de", "jp" |
google_shopping — Product Search
| Parameter |
Description |
Example |
query |
Product search query (required) |
"Sony WH-1000XM5" |
num_results |
Number of results (1-10, default 5) |
5 |
google_flights — Flight Search
| Parameter |
Description |
Example |
origin |
Departure city or airport (required) |
"New York", "LAX" |
destination |
Arrival city or airport (required) |
"London", "NRT" |
date |
Departure date (optional) |
"March 15" |
return_date |
Return date (optional) |
"March 22" |

google_hotels — Hotel Search
| Parameter |
Description |
Example |
query |
Hotel search with location (required) |
"Paris", "Tokyo near Shibuya" |
num_results |
Number of results (1-10, default 5) |
5 |

google_translate — Translation
| Parameter |
Description |
Example |
text |
Text to translate (required) |
"Hello, how are you?" |
to_language |
Target language (required) |
"Spanish", "Japanese" |
from_language |
Source language (optional, auto-detected) |
"English" |
google_maps — Places Search with Map Screenshot
| Parameter |
Description |
Example |
query |
Place search query (required) |
"pizza near Central Park" |
num_results |
Number of results (1-10, default 5) |
5 |

google_maps_directions — Route Directions with Map
| Parameter |
Description |
Example |
origin |
Starting location (required) |
"Berlin" |
destination |
Ending location (required) |
"Munich" |
mode |
Travel mode (default "driving") |
"driving", "walking", "transit", "cycling" |

google_weather — Weather
| Parameter |
Description |
Example |
location |
City or location (required) |
"Dubai", "Tokyo" |
google_finance — Stock & Market Data
| Parameter |
Description |
Example |
query |
Stock ticker or company name (required) |
"AAPL:NASDAQ", "TSLA:NASDAQ" |

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

google_scholar — Academic Search
| Parameter |
Description |
Example |
query |
Academic search query (required) |
"transformer attention mechanism" |
num_results |
Number of results (1-10, default 5) |
5 |
google_books — Book Search
| Parameter |
Description |
Example |
query |
Book search query (required) |
"machine learning" |
num_results |
Number of results (1-10, default 5) |
5 |
google_images — Image Search (inline in chat)
| Parameter |
Description |
Example |
query |
Image search query (required) |
"sunset over ocean" |
num_results |
Number of results (1-10, default 5) |
5 |


google_trends — Trends
| Parameter |
Description |
Example |
query |
Topic (required) |
"artificial intelligence" |
Vision & OCR Tools
google_lens — Reverse Image Search
Identify objects, products, brands, landmarks, and text. Supports URLs, local files, and base64 drag-and-drop.
| Parameter |
Description |
Example |
image_source |
Image URL, file path, or base64 (required) |
"https://example.com/photo.jpg" or "/home/user/image.jpg" |

google_lens_detect — Object Detection + Identification
Detect all objects (OpenCV), crop each one, identify individually via Lens.
| Parameter |
Description |
Example |
image_source |
Local file path or base64 (required) |
"/home/user/photo.jpg" |
ocr_image — Local OCR (offline)
Extract text from images using RapidOCR. No internet needed.
| Parameter |
Description |
Example |
image_source |
Local file path or base64 (required) |
"/home/user/screenshot.png" |

list_images — Image Discovery
| Parameter |
Description |
Example |
directory |
Folder to scan (default ~/lens/) |
"/home/user/photos" |
Video Intelligence Tools
transcribe_video — Video Transcription
Download and transcribe any YouTube video (or video URL) with timestamps using faster-whisper.
| Parameter |
Description |
Example |
url |
YouTube or video URL (required) |
"https://youtube.com/watch?v=..." |
model_size |
Whisper model size (default: tiny) |
"tiny", "base", "small", "medium", "large" |
language |
Language code (optional, auto-detected) |
"en" |
search_transcript — Transcript Search
| Parameter |
Description |
Example |
url |
Same URL used with transcribe_video (required) |
"https://youtube.com/watch?v=..." |
query |
Keyword or phrase (required) |
"memory bandwidth" |
context_segments |
Surrounding segments (default: 2) |
3 |
extract_video_clip — Clip Extraction by Topic
Ask "extract the part about X" and the LLM finds timestamps from the transcript and cuts the clip.
| Parameter |
Description |
Example |
url |
YouTube URL or local video (required) |
"https://youtube.com/watch?v=..." |
start_seconds |
Start time in seconds (required) |
150 |
end_seconds |
End time in seconds (required) |
315 |
buffer_seconds |
Extra seconds before/after (default: 3) |
5.0 |
output_filename |
Custom filename (optional) |
"hardware_overview" |
Sample Prompts
Feed Subscriptions
| What you type |
Tool called |
| "Subscribe to BBC News and CNN" |
subscribe |
| "Follow r/LocalLLaMA on Reddit" |
subscribe |
| "Monitor Hacker News top stories" |
subscribe |
| "Watch anthropics/claude-code for new releases" |
subscribe |
| "Subscribe to @3Blue1Brown on YouTube" |
subscribe |
| "Follow @elonmusk on Twitter" |
subscribe |
| "Subscribe to the ML arXiv category" |
subscribe |
| "Check my feeds" |
check_feeds |
| "What's new in my subscriptions?" |
check_feeds |
| "Search my feeds for transformer architecture" |
search_feeds |
| "Show me the latest Reddit posts" |
get_feed_items |
| "What are my subscriptions?" |
list_subscriptions |
| "Unsubscribe from BBC News" |
unsubscribe |
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" |
| "Get page 2 of results for ML tutorials" |
google_search |
query + page=2 |
| "Search for restaurants in Tokyo in Japanese" |
google_search |
query + language="ja" + region="jp" |
Shopping & Travel
| What you type |
Tool called |
| "Find the cheapest MacBook Air" |
google_shopping |
| "Find flights from New York to London" |
google_flights |
| "Find hotels in Paris for next weekend" |
google_hotels |
| "Translate 'hello world' to Japanese" |
google_translate |
Maps & Directions
| What you type |
Tool called |
| "Find Italian restaurants near Times Square" |
google_maps |
| "Get directions from Berlin to Munich" |
google_maps_directions |
| "Walking directions from the Eiffel Tower to the Louvre" |
google_maps_directions |
Finance, Weather & Info
| What you type |
Tool called |
| "What's Apple's stock price?" |
google_finance |
| "What's the weather in Dubai?" |
google_weather |
| "What are today's top headlines?" |
google_news |
| "Find papers on transformer attention mechanisms" |
google_scholar |
| "Find books about machine learning" |
google_books |
Images & Vision
| What you type |
Tool called |
| "Show me images of the Northern Lights" |
google_images |
| "What is this product? /path/to/photo.jpg" |
google_lens |
| "Detect all objects in this photo" |
google_lens_detect |
| "Read the text in this screenshot" |
ocr_image |
| Drag image into chat + "What is this?" |
google_lens |
| Drag image into chat + "Read the text" |
ocr_image |
Tip: To enable drag-and-drop images with text-only models in LM Studio, add a model.yaml file in the model directory with metadataOverrides: { vision: true }. The image will be sent as base64 and the MCP tools handle it automatically.
Video Intelligence
| What you type |
Tool called |
| "Transcribe this video: https://youtube.com/watch?v=..." |
transcribe_video |
| "What do they discuss in this video?" |
transcribe_video |
| "Find where they talk about memory bandwidth" |
search_transcript |
| "Extract the part where they discuss pricing" |
extract_video_clip |
Page Reading
| What you type |
Tool called |
| "Read this article for me: https://..." |
visit_page |
Installation
Quick Install (pipx - recommended)
pipx install noapi-google-search-mcp
playwright install chromium
Install in a Virtual Environment
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:
{
"mcpServers": {
"google-search": {
"command": "noapi-google-search-mcp",
"env": {
"PYTHONUNBUFFERED": "1"
}
}
}
}
If installed in a venv, use the full path: ~/.local/share/noapi-google-search-mcp/bin/noapi-google-search-mcp
Claude Desktop
Add to your Claude Desktop config (claude_desktop_config.json):
{
"mcpServers": {
"google-search": {
"command": "noapi-google-search-mcp"
}
}
}
OpenClaw
Add to your agent configuration:
mcp_servers:
google-search:
command: "noapi-google-search-mcp"
env:
PYTHONUNBUFFERED: "1"
This gives your OpenClaw agent access to all 38 tools — real Google search, live feeds, vision, OCR, and video intelligence — with zero API keys.
As a CLI
noapi-google-search-mcp
Or:
python -m google_search_mcp
Development
git clone https://github.com/VincentKaufmann/noapi-google-search-mcp.git
cd google-search-mcp
pip install -e .
playwright install chromium
License
MIT