noapi-google-search-mcp
The noapi-google-search-mcp server provides 38 tools that transform a local LLM into a fully connected assistant — enabling real Google searches, live feed monitoring, video intelligence, vision/OCR, and more, all with zero API keys required.
Google Search & Web
Web search with time/site/language/region filters and pagination
News, Scholar (papers & citations), Images (inline results), Trends, and page fetching (extract readable text from any URL)
Travel & Commerce
Shopping (prices, stores, ratings), Flights, Hotels (images, prices, booking URLs)
Translation across 100+ languages
Maps places search and turn-by-turn directions (with map screenshots)
Finance & Info
Stock/market data, Weather (current + forecast), Book search (author, ISBN, snippets)
Vision & OCR
Reverse image search via Google Lens; object detection with OpenCV + Lens
Offline OCR with RapidOCR; list local images for use with vision tools
Video & Audio Intelligence
Transcribe YouTube/remote or local audio/video files with timestamps (Whisper)
Search within transcripts; extract video clips by topic using transcript context
Convert media between formats via FFmpeg
Live Feed Subscriptions
Subscribe to news RSS, Reddit, Hacker News, GitHub repos, arXiv, YouTube channels, podcasts, and Twitter/X profiles
Auto-fetch new content, full-text search (SQLite FTS5), browse and manage subscriptions
Documents & Data
Read PDF (with OCR fallback for scanned pages), DOCX, HTML, CSV, JSON, YAML, and 30+ formats
Fetch and filter emails via IMAP (Gmail, Outlook, Yahoo, iCloud, and any IMAP server)
Web Utilities
Post to pastebin, shorten URLs (TinyURL), generate QR codes, archive pages to the Wayback Machine, look up Wikipedia in any language
Cloud Storage
Upload files to MinIO, AWS S3, DigitalOcean Spaces, Cloudflare R2, and Backblaze B2
All Google interactions use anti-bot detection, human-like delays, cookie persistence, and a neural network CAPTCHA solver to bypass common restrictions.
Subscribe to arXiv categories (e.g., machine learning, computer vision) and search across paper abstracts.
Upload files to Cloudflare R2 (S3-compatible storage).
Pre-configured subscription to CNN RSS feed for news articles.
Upload files to DigitalOcean Spaces (S3-compatible storage).
Convert media files between formats (e.g., video to audio, video to GIF).
Subscribe to GitHub repositories for new releases.
Fetch emails from Gmail via IMAP.
Perform Google searches (web, news, scholar, images, finance, weather, books, shopping, flights, hotels, translate, maps).
Search places, get reviews, ratings, and maps screenshots; get directions with step-by-step routes.
Search Google News with article thumbnails.
Search academic papers with citation information.
Translate text across 100+ languages.
Upload files to MinIO (S3-compatible storage).
Post text to a pastebin and receive a shareable link.
Subscribe to subreddits and search across stored posts.
Subscribe to any RSS feed (news, blogs, etc.) and search stored content.
Pre-configured subscription to TechCrunch RSS feed for tech news.
Look up Wikipedia articles in any language with summary support.
Subscribe to channels, auto-transcribe videos, full-text search across transcripts, and extract clips.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@noapi-google-search-mcpSearch for the latest breakthroughs in renewable energy"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
noapi-google-search-mcp
vincentkaufmann@protonmail.com
If you want to support noapi-google-mcp or gpt-oss-20B/120B-Vision and other open source models in the pipeline please add to my GPU compute fund: around $3000 are needed.
If you find this useful, consider supporting continued development and new features.BTC:
16DT4AHemLyn7C6P116YepjY518gu9wUUHETH: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.1 — Anti-Bot Detection & Neural Net CAPTCHA Solver
Google started catching headless Chromium browsers and serving CAPTCHAs instead of search results (#2). Fixed it properly and then added a neural net CAPTCHA solver just for the hell of it.
Stealth patches:
JavaScript injection before every page load patches
navigator.webdriver, fake browser plugins,chrome.runtime, and removes Playwright fingerprintsFixed User-Agent mismatch (was
aarch64, now matches the actual Chromium binary)Cookie persistence between sessions so Google sees a returning browser, not a fresh bot
Human-like random delays between page interactions
Clear error messages when rate-limited instead of cryptic timeouts
Neural net CAPTCHA solver (MobileNetV2 + OpenCV):
When Google serves a reCAPTCHA image challenge ("Select all images with traffic lights"), the server now attempts to solve it automatically
Uses MobileNetV2 (ImageNet classifier, ~13MB ONNX model, auto-downloads on first encounter)
OpenCV splits the CAPTCHA grid into cells, each cell is classified by the neural net and matched against the prompt
Covers 22 common CAPTCHA categories: traffic lights, buses, bicycles, motorcycles, cars, bridges, boats, trains, trucks, fire hydrants, parking meters, tractors, and more
Human-like mouse movement for clicking cells and the verify button
Falls back gracefully if the challenge type isn't supported
Will it solve every CAPTCHA? No. But it'll get through some of them, and honestly we mostly built it because we could.
Related MCP server: websearch-mcp
What's New in v0.3.0 — 16 New Tools
YouTube RAG — Subscribe, Transcribe, Search, Clip
A full local retrieval-augmented pipeline for YouTube. Subscribe to any channel, and when you check feeds the server automatically downloads the audio, transcribes it with Whisper, and stores the full transcript in SQLite with FTS5 full-text search. Every word from every video becomes searchable — ask your LLM a question and it pulls the answer from the right video.
Found something interesting? Ask the LLM to extract that segment as a clip. It reads the transcript, finds the exact timestamps, and cuts the video for you. This is the beginning of AI/LLM-powered video editing — your LLM understands the content and cuts clips based on what's being said, not just timestamps.
How it works:
subscribeto a YouTube channel — by handle (@3Blue1Brown), URL, or channel IDcheck_feeds— new videos are fetched and auto-transcribed locally with faster-whisper. Transcripts are written into the database for instant search. Up to 5 videos per check, cached so nothing gets re-downloaded.search_feeds— full-text search across all transcripts. Supports AND, OR, NOT, and quoted phrases. Your LLM finds the exact video and passage that answers your question.extract_video_clip— tell the LLM what you're interested in and it cuts the clip from the video. The LLM uses the transcript to find the right segment and extracts it automatically.
"Subscribe to @AndrejKarpathy on YouTube"
"Check my feeds"
"Search my feeds for backpropagation explained"
"What did Karpathy say about tokenization?"
"Extract the part where he explains gradient descent"
"Cut a clip of the hardware comparison section"No embeddings, no vector database, no API — just Whisper + SQLite FTS5 running on your machine.
Roadmap: The clip extraction is the first step toward full AI-driven video editing. Future releases will add music/audio overlay, video remixing, multi-clip compilation, vertical reformat for TikTok/Reels/Shorts, and automated highlight reels — all driven by your LLM understanding the content.
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.
New Tool | What It Does |
| Add any source — news RSS, Reddit, HN, GitHub, arXiv, YouTube, podcasts, Twitter/X |
| Remove a subscription and its stored content |
| See all active feeds with item counts |
| Poll all subscriptions, fetch new content, auto-transcribe YouTube videos |
| Full-text search across everything your feeds have collected |
| 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 any local audio or video file with Whisper (mp3, wav, mp4, mkv, etc.) |
| FFmpeg format conversion — video to audio, format to format, video to GIF |
| 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 |
| Pull emails via IMAP — Gmail, Outlook, Yahoo, any IMAP server |
| Post text to a pastebin and get a shareable link |
| Shorten any URL via TinyURL |
| Generate QR code images for URLs, Wi-Fi, contacts, any data |
| Save a webpage snapshot to the Wayback Machine |
| Look up any Wikipedia article, any language, with summary support |
| 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 to news, Reddit, HN, GitHub, arXiv, YouTube, podcasts, Twitter/X |
| Remove a subscription and its stored content |
| List all active subscriptions with item counts |
| Fetch new content from all or specific sources |
| Full-text search across all stored feed content |
| Get recent items filtered by source or type |
Google Search & Web
Tool | Description |
| Web search with time filters, site filters, pagination, language/region |
| News search with article thumbnails inline |
| Academic papers with citations |
| Image search with results displayed inline in chat |
| Topic interest over time, related queries |
| Fetch any URL and extract readable text |
Travel & Commerce
Tool | Description |
| Product search with prices, stores, ratings, images |
| Flight search with prices and travel times |
| Hotel search with images, prices, ratings, booking URLs |
| Translation across 100+ languages |
| Places search with ratings, reviews, and map screenshots |
| Route directions with step-by-step and map screenshot |
Finance & Info
Tool | Description |
| Stock prices, market data, company info |
| Current conditions and multi-day forecast |
| Book search with author, ISBN, snippets |
Vision & OCR
Tool | Description |
| Reverse image search — identify objects, products, landmarks, text |
| Detect all objects in an image (OpenCV) and identify each via Lens |
| Extract text from images locally (RapidOCR, fully offline) |
| List image files in a directory for use with vision tools |
Video & Audio Intelligence — AI-Powered Video Editing
Tool | Description |
| Download and transcribe any video with timestamps (faster-whisper) |
| Transcribe local audio/video files (mp3, wav, m4a, mp4, mkv, etc.) |
| Search a transcribed video for topics by keyword |
| AI-powered clip extraction — tell the LLM what you want and it cuts the video using transcript context |
| Convert between audio/video formats via FFmpeg |
Documents & Data
Tool | Description |
| Extract text from PDF, DOCX, HTML, CSV, JSON, and 30+ formats |
Tool | Description |
| Pull emails via IMAP — Gmail, Outlook, Yahoo, iCloud, any IMAP server |
Web Utilities
Tool | Description |
| Post text to a pastebin and get a shareable URL |
| Shorten any URL via TinyURL |
| Generate QR code images (URLs, Wi-Fi, contacts, any data) |
| Archive a webpage on the Wayback Machine |
| Wikipedia article lookup in any language |
Cloud Storage
Tool | Description |
| Upload files to MinIO, AWS S3, DigitalOcean Spaces, Cloudflare R2, Backblaze B2 |
Supported File Formats
Documents (read_document)
Category | Formats |
Documents | PDF (with OCR fallback for scanned pages), DOCX |
Web | HTML, HTM |
Data | CSV, JSON, XML, YAML, YML, TOML |
Text | TXT, MD, LOG |
Config | INI, CFG, CONF, ENV |
Code | PY, JS, TS, GO, RS, C, CPP, H, JAVA, KT, RB, SQL, R, M, SWIFT |
Shell | SH, BASH, ZSH |
Audio & Video (transcribe_local, transcribe_video, convert_media)
Category | Formats |
Audio | MP3, WAV, M4A, FLAC, OGG, AAC, WMA, OPUS |
Video | MP4, MKV, WEBM, AVI, MOV |
Special | GIF (video-to-GIF output) |
Input | Any format FFmpeg can decode (hundreds of formats) |
Images (google_lens, google_lens_detect, ocr_image, list_images)
Category | Formats |
Standard | JPG, JPEG, PNG, GIF, BMP, WEBP |
Professional | TIFF, TIF, SVG |
Input methods | Local file path, public URL, base64 (drag-and-drop into chat) |
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 |
| 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 (AI/LLM-powered) | Not available | Not available |
YouTube RAG pipeline | Built-in (subscribe → transcribe → search) | 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 (required) |
|
| Source identifier (required) |
|
| Display name (optional) |
|
Identifier formats by type:
news: preset name (
bbc,cnn,nyt,guardian,npr,aljazeera,techcrunch,ars,verge,wired,reuters) or any RSS URLreddit: subreddit name (e.g.
LocalLLaMA,programming)hackernews:
top,new, orbestgithub:
owner/repo(e.g.anthropics/claude-code)arxiv: shortcut (
ai,ml,cv,nlp,robotics,crypto) or category likecs.AIyoutube: 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 |
| Limit to one type (optional) |
|
search_feeds — Full-Text Search
Parameter | Description | Example |
| Search query (required) — supports FTS5: AND, OR, NOT, "quoted phrases" |
|
| Limit to one type (optional) |
|
| Max results (default 20) |
|
get_feed_items — Browse Recent Items
Parameter | Description | Example |
| Filter by source name (optional) |
|
| Filter by type (optional) |
|
| Max items (default 20) |
|
Google Search Tools
google_search — Web Search
Parameter | Description | Example |
| Search query (required) |
|
| Number of results (1-10, default 5) |
|
| Filter by recency |
|
| Limit to a domain |
|
| Results page (1-10, default 1) |
|
| Language code |
|
| Country/region code |
|
google_shopping — Product Search
Parameter | Description | Example |
| Product search query (required) |
|
| Number of results (1-10, default 5) |
|
google_flights — Flight Search
Parameter | Description | Example |
| Departure city or airport (required) |
|
| Arrival city or airport (required) |
|
| Departure date (optional) |
|
| Return date (optional) |
|

google_hotels — Hotel Search
Parameter | Description | Example |
| Hotel search with location (required) |
|
| Number of results (1-10, default 5) |
|

google_translate — Translation
Parameter | Description | Example |
| Text to translate (required) |
|
| Target language (required) |
|
| Source language (optional, auto-detected) |
|
google_maps — Places Search with Map Screenshot
Parameter | Description | Example |
| Place search query (required) |
|
| Number of results (1-10, default 5) |
|

google_maps_directions — Route Directions with Map
Parameter | Description | Example |
| Starting location (required) |
|
| Ending location (required) |
|
| Travel mode (default "driving") |
|

google_weather — Weather
Parameter | Description | Example |
| City or location (required) |
|
google_finance — Stock & Market Data
Parameter | Description | Example |
| Stock ticker or company name (required) |
|

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

google_scholar — Academic Search
Parameter | Description | Example |
| Academic search query (required) |
|
| Number of results (1-10, default 5) |
|
google_books — Book Search
Parameter | Description | Example |
| Book search query (required) |
|
| Number of results (1-10, default 5) |
|
google_images — Image Search (inline in chat)
Parameter | Description | Example |
| Image search query (required) |
|
| Number of results (1-10, default 5) |
|


google_trends — Trends
Parameter | Description | Example |
| Topic (required) |
|
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 URL, file path, or base64 (required) |
|

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

list_images — Image Discovery
Parameter | Description | Example |
| Folder to scan (default |
|
Video Intelligence Tools
transcribe_video — Video Transcription
Download and transcribe any YouTube video (or video URL) with timestamps using faster-whisper.
Parameter | Description | Example |
| YouTube or video URL (required) |
|
| Whisper model size (default: tiny) |
|
| Language code (optional, auto-detected) |
|
search_transcript — Transcript Search
Parameter | Description | Example |
| Same URL used with transcribe_video (required) |
|
| Keyword or phrase (required) |
|
| Surrounding segments (default: 2) |
|
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 |
| YouTube URL or local video (required) |
|
| Start time in seconds (required) |
|
| End time in seconds (required) |
|
| Extra seconds before/after (default: 3) |
|
| Custom filename (optional) |
|
Sample Prompts
Feed Subscriptions
What you type | Tool called |
"Subscribe to BBC News and CNN" |
|
"Follow r/LocalLLaMA on Reddit" |
|
"Monitor Hacker News top stories" |
|
"Watch anthropics/claude-code for new releases" |
|
"Subscribe to @3Blue1Brown on YouTube" |
|
"Follow @elonmusk on Twitter" |
|
"Subscribe to the ML arXiv category" |
|
"Check my feeds" |
|
"What's new in my subscriptions?" |
|
"Search my feeds for transformer architecture" |
|
"Show me the latest Reddit posts" |
|
"What are my subscriptions?" |
|
"Unsubscribe from BBC News" |
|
Web Search
What you type | Tool called | Parameters used |
"Search for the best Python web frameworks" |
|
|
"Find Reddit discussions about home lab setups" |
|
|
"Search Stack Overflow for async Python examples" |
|
|
"What's new in AI this week?" |
|
|
"Search Hacker News for posts about Rust" |
|
|
"Get page 2 of results for ML tutorials" |
|
|
"Search for restaurants in Tokyo in Japanese" |
|
|
Shopping & Travel
What you type | Tool called |
"Find the cheapest MacBook Air" |
|
"Find flights from New York to London" |
|
"Find hotels in Paris for next weekend" |
|
"Translate 'hello world' to Japanese" |
|
Maps & Directions
What you type | Tool called |
"Find Italian restaurants near Times Square" |
|
"Get directions from Berlin to Munich" |
|
"Walking directions from the Eiffel Tower to the Louvre" |
|
Finance, Weather & Info
What you type | Tool called |
"What's Apple's stock price?" |
|
"What's the weather in Dubai?" |
|
"What are today's top headlines?" |
|
"Find papers on transformer attention mechanisms" |
|
"Find books about machine learning" |
|
Images & Vision
What you type | Tool called |
"Show me images of the Northern Lights" |
|
"What is this product? /path/to/photo.jpg" |
|
"Detect all objects in this photo" |
|
"Read the text in this screenshot" |
|
Drag image into chat + "What is this?" |
|
Drag image into chat + "Read the text" |
|
Tip: To enable drag-and-drop images with text-only models in LM Studio, add a
model.yamlfile in the model directory withmetadataOverrides: { vision: true }. The image will be sent as base64 and the MCP tools handle it automatically.
Video Intelligence & AI-Powered Clip Extraction
What you type | Tool called |
"Transcribe this video: https://youtube.com/watch?v=..." |
|
"What do they discuss in this video?" |
|
"Find where they talk about memory bandwidth" |
|
"Extract the part where they discuss pricing" |
|
"Cut a clip of the hardware comparison section" |
|
"Transcribe ~/meeting.mp3" |
|
"Convert video.mp4 to mp3" |
|
"Convert this video to a GIF" |
|
Documents & Email
What you type | Tool called |
"Read this PDF: ~/report.pdf" |
|
"Extract text from ~/contract.docx" |
|
"Read this article for me: https://..." |
|
"Check my email at user@gmail.com password: xxxx" |
|
"Pull my latest 10 emails from Outlook" |
|
Web Utilities & Cloud
What you type | Tool called |
"Shorten this URL: https://very-long-url..." |
|
"Generate a QR code for https://mysite.com" |
|
"Make a QR code for my Wi-Fi network" |
|
"Post this code to a pastebin" |
|
"Archive this article: https://news.example.com/story" |
|
"Wikipedia: quantum computing" |
|
"Look up the Apollo 11 mission on Wikipedia in German" |
|
"Upload report.pdf to my MinIO bucket" |
|
"Store backup.tar.gz in S3 bucket my-backups" |
|
Installation
Quick Install (pipx - recommended)
pipx install noapi-google-search-mcp
playwright install chromiumInstall 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 chromiumPython 3.13 / OCR
The core package installs on every supported Python, including 3.13. OCR is
opt-in because rapidocr-onnxruntime does not yet ship a Python 3.13 wheel
upstream (RapidAI/RapidOCR#579).
Everything except the OCR tools (ocr_image and the scanned-PDF fallback in
read_document) works without it.
To enable OCR, add the [ocr] extra on a compatible Python (3.10–3.12):
pipx install "noapi-google-search-mcp[ocr]"If you install the core package and later call an OCR tool without the extra,
the tool returns a short message telling you to install
"noapi-google-search-mcp[ocr]" instead of crashing.
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
How much page text visit_page returns
visit_page truncates at 8000 characters by default. That suits a small
local model and is not enough for reading long documentation, so it is
settable from the same env block:
{
"mcpServers": {
"google-search": {
"command": "noapi-google-search-mcp",
"env": {
"PYTHONUNBUFFERED": "1",
"MAX_PAGE_CHARS": "20000"
}
}
}
}max_characters is accepted as an alias. Values are clamped to 200000 —
this text goes into a model's context window, and a tool that can return a
megabyte turns one careless page visit into a blown context. A value that
is not a positive number is ignored and the default is used, so a typo here
cannot stop the server from starting.
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-mcpOr:
python -m google_search_mcpDevelopment
git clone https://github.com/VincentKaufmann/noapi-google-search-mcp.git
cd google-search-mcp
pip install -e .
playwright install chromiumLicense
MIT
Available Tools
38 toolsarchive_webpageA
Archive a webpage on archive.today (archive.is) for permanent preservation.
Creates a timestamped snapshot of any webpage. Useful for preserving: - News articles before they're edited or deleted - Social media posts - Product pages with specific prices - Any web content you want to reference later
Sample prompts that trigger this tool: - "Archive this page: https://example.com/article" - "Save this webpage to archive.is" - "Preserve this article before it gets taken down" - "Create an archive snapshot of this URL"
Args: url: The URL of the webpage to archive.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It states 'Creates a timestamped snapshot' but omits potential failures, rate limits, or async behavior. Minimal info on side effects or limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: a concise one-line action, bullet-pointed use cases, sample prompts, and a single param line. No unnecessary text, front-loaded with the main purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool with an output schema, the description covers main purpose and usage scenarios. It lacks mention of what the output contains (e.g., archive URL) and any prerequisites like authentication, but overall is fairly complete given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'url' is described as 'The URL of the webpage to archive.' Given 0% schema description coverage, this adds needed semantics. However, it could be more detailed (e.g., format requirements, supported protocols).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Archive a webpage on archive.today (archive.is) for permanent preservation' and lists specific use cases like preserving news articles or product pages. This distinguishes it from sibling tools like visit_page or google_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides sample prompts and suggests when to use (e.g., preserving articles, social media posts), but does not include exclusion criteria or mention alternative tools for similar tasks. Lacks explicit 'when not to use' guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_feedsA
Check all (or specific) subscriptions for new content. Fetches and stores latest items.
Sample prompts that trigger this tool: - "Check my feeds" - "What's new in my subscriptions?" - "Fetch latest news" - "Check Reddit feeds" - "Update all my feed subscriptions"
Args: source_type: Optionally limit to one type (news, reddit, hackernews, github, arxiv, youtube, podcast, twitter). Leave empty to check all.
| Name | Required | Description | Default |
|---|---|---|---|
| source_type | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It mentions 'Fetches and stores latest items', indicating a side effect. However, it does not disclose potential delays, network usage, whether repeated calls are safe, or any rate limits. It provides moderate transparency but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively concise but includes sample prompts that are not essential. The structure places purpose first, followed by examples and parameter details. It could be more concise by removing the sample prompts, but it is not overly verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the basic operation and parameter. However, given the availability of an output schema (not shown but present), it does not explain what happens if no new items, error handling, or how it interacts with related tools. For a simple tool it is adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description must compensate. It explains the single parameter 'source_type' with a list of valid values (news, reddit, etc.) and the default behavior (empty checks all). This adds meaningful semantics beyond the schema's type string.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Check all (or specific) subscriptions for new content. Fetches and stores latest items.' The verb 'check' is specific to fetching new items, and the resource 'subscriptions' is clear. It distinguishes from sibling tools like 'get_feed_items' (which likely retrieves stored items) and 'list_subscriptions' (which lists feeds).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides sample prompts that hint at usage but does not explicitly state when to use this tool versus alternatives like 'get_feed_items' or 'subscribe'. No guidance on when not to use or prerequisites (e.g., must have subscriptions).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convert_mediaA
Convert audio or video files between formats using FFmpeg.
Supports all FFmpeg formats: mp3, wav, m4a, flac, ogg, aac, opus, mp4, mkv, webm, avi, mov, gif, and more.
Common conversions: - Video to audio: mp4 -> mp3 - Audio formats: wav -> mp3, flac -> m4a - Video formats: mkv -> mp4, mp4 -> webm - Video to GIF: mp4 -> gif
Sample prompts that trigger this tool: - "Convert this video to mp3: /path/to/video.mp4" - "Convert recording.wav to mp3" - "Make a gif from /path/to/clip.mp4" - "Convert this to m4a: /path/to/song.flac" - "Convert my video to webm"
Args: input_path: Path to the input file. output_format: Target format (e.g. "mp3", "mp4", "wav", "gif"). output_path: Optional output file path. Default: same name, new extension. quality: "low", "medium", or "high". Default: medium.
| Name | Required | Description | Default |
|---|---|---|---|
| input_path | Yes | ||
| output_format | Yes | ||
| output_path | No | ||
| quality | No | medium |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description explains the conversion process (using FFmpeg), lists supported formats, and notes default output path behavior. It does not disclose potential limitations like encoding flags or error handling, but covers the core behavior adequately.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a header, format list, common conversions, sample prompts, and parameter list. It is thorough yet concise, with every sentence adding value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (4 parameters, conversion functionality), the description covers purpose, formats, examples, and parameters comprehensively. An output schema exists, so return values are not needed. The description is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% coverage, but the description lists all parameters in the Args section, explaining output_path default and quality levels. This adds meaning beyond the schema properties and compensates for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool converts audio/video files between formats using FFmpeg, lists supported formats, and provides common conversion examples. This distinguishes it from siblings like extract_video_clip or transcribe_local.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides sample prompts and lists common conversions, which implicitly guides when to use the tool. However, it does not explicitly state when not to use it or compare with alternatives, though the sibling list provides context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extract_video_clipA
Extract a video clip by topic from a YouTube video or local file.
Used after transcribe_video. The LLM reads the transcript, finds the timestamps for the requested topic, and calls this tool to cut the clip. The user just asks "extract the part about X" - no manual timestamps needed.
A buffer is added before and after to avoid cutting off content. The clip is saved to ~/clips/.
Sample prompts that trigger this tool: - "Extract the part where they talk about memory bandwidth" - "Save the segment where they discuss pricing" - "Cut out the section about the hardware specs" - "Get me the intro of this video"
Args: url: YouTube URL, video URL, or local file path. start_seconds: Start time in seconds (e.g. 150 for 2:30). end_seconds: End time in seconds (e.g. 315 for 5:15). buffer_seconds: Extra seconds before/after the segment (default: 3). output_filename: Optional filename for the clip (without extension).
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| start_seconds | Yes | ||
| end_seconds | Yes | ||
| buffer_seconds | No | ||
| output_filename | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so description carries full burden. It discloses buffer addition and clip saving location (~/clips/). Could mention file overwrite or permission requirements, but current details are sufficient for typical usage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is well-structured with a clear purpose, usage context, sample prompts, and parameter list. Front-loaded with key information. A bit lengthy but each sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters and no annotations, the description covers essential aspects: source, timestamps, buffer, output. Output schema exists, so return value details are not needed. Complete for its purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but description adds value by explaining each parameter in the Args section, including defaults for buffer_seconds and output_filename. This compensates for missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool extracts a video clip by topic from a YouTube video or local file. Verb 'extract' and resource are specific, and it distinguishes from siblings like transcribe_video and convert_media.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states 'Used after transcribe_video' and describes the workflow where the LLM reads transcript to find timestamps. Also provides sample prompts, giving clear when-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fetch_emailsA
Fetch emails via IMAP. Works with Gmail, Outlook, Yahoo, iCloud, and any IMAP server.
For Gmail: use an App Password (not your regular password). Generate at: https://myaccount.google.com/apppasswords
For Outlook: enable IMAP in settings, use your regular password or app password.
Sample prompts that trigger this tool: - "Check my email: user@gmail.com password: xxxx-xxxx-xxxx-xxxx" - "Fetch unread emails from my Gmail" - "Search my inbox for emails about invoice" - "Get my latest 5 emails" - "Show emails from sender@example.com"
Args: email_address: Your email address. password: Password or app password (Gmail requires app password). imap_server: IMAP server hostname. Auto-detected for Gmail/Outlook/Yahoo if empty. folder: Mailbox folder. Default: INBOX. Common: INBOX, Sent, Drafts, Trash, Spam. search: IMAP search criteria. Default: UNSEEN (unread). Examples: ALL, SEEN, UNSEEN, FROM "sender@example.com", SUBJECT "keyword", SINCE "01-Jan-2024", BEFORE "01-Feb-2024". limit: Maximum number of emails to fetch. Default: 10.
| Name | Required | Description | Default |
|---|---|---|---|
| email_address | Yes | ||
| password | Yes | ||
| imap_server | No | ||
| folder | No | INBOX | |
| search | No | UNSEEN | |
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description misses key behavioral traits like marking emails as read or network dependencies. Mentions auto-detection but not side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with sections, though sample prompts add length. Every sentence adds value; front-loaded with provider info.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complex tool with 6 parameters and no explicit return value description despite having an output schema. Does not explain output format, leaving agent guessing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% description coverage, but description explains all 6 parameters in detail with examples for search. Compensates fully for schema gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool fetches emails via IMAP and lists supported providers. It distinguishes from diverse sibling tools like google_search or ocr_image.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides sample prompts and provider-specific instructions (e.g., Gmail app passwords). Lacks explicit exclusions or when-not-to-use guidance, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_qrA
Generate a QR code image from text, URLs, Wi-Fi credentials, or any data.
Use cases: - URLs: shareable links, payment pages - Wi-Fi: WIFI:T:WPA;S:NetworkName;P:password;; - Contact info: vCard format - Plain text: any message
Sample prompts that trigger this tool: - "Generate a QR code for https://example.com" - "Create a QR code for my Wi-Fi: SSID=MyNet, password=secret123" - "Make a QR code with this text" - "QR code for my Bitcoin address"
Args: data: The content to encode in the QR code. output_path: Optional output file path. Default: ~/qr_code.png. size: Image size in pixels (width=height). Default: 400.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | ||
| output_path | No | ||
| size | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must fully disclose behavior. It mentions generating an image and output path but does not discuss file overwriting, error states, or system impact.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with sections for use cases, sample prompts, and args. Concise without being terse; each sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool is simple; description covers inputs and usage. Output schema exists (not shown) so return values are likely clear. Sufficient for a QR generation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has no descriptions (0% coverage), but the description explains all three parameters (data, output_path, size) with defaults, compensating for schema gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it generates QR codes from various data types (text, URLs, Wi-Fi, etc.). Differentiates from all sibling tools (none do QR generation).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides use cases and sample prompts that indicate when to use it. No explicit exclusions, but siblings are all different, so no confusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_feed_itemsA
Get recent items from feed subscriptions, optionally filtered by source or type.
Sample prompts that trigger this tool: - "What's new in my feeds?" - "Show me the latest BBC News articles" - "Show recent Reddit posts" - "What are the latest Hacker News stories?" - "Show me recent tweets from my followed accounts" - "Get latest YouTube videos from my subscriptions"
Args: source: Filter by source name (e.g. "BBC", "LocalLLaMA"). Leave empty for all. source_type: Filter by type (news, reddit, hackernews, github, arxiv, youtube, podcast, twitter). Leave empty for all. limit: Max items to return (default 20).
| Name | Required | Description | Default |
|---|---|---|---|
| source | No | ||
| source_type | No | ||
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description is straightforward but does not disclose side effects, read-only nature, or other behavioral traits beyond the basic operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise and structured: main sentence, sample prompts, then Args section. Every part adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Explains parameters adequately and has output schema available. Lacks detail on return format but is sufficient for a simple list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds valuable meaning: source_name examples, source_type list, and limit default. This compensates for the schema gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'Get', resource 'recent items from feed subscriptions', and filters by 'source' and 'type'. The description distinguishes from siblings like 'search_feeds' and 'list_subscriptions'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides sample prompts that demonstrate when to use the tool, giving clear context. However, it does not explicitly state when not to use or mention alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_booksA
Search Google Books for books, textbooks, and publications.
Sample prompts that trigger this tool: - "Find books about machine learning" - "Search for books by Stephen King" - "What are the best books on Python programming?" - "Find textbooks on linear algebra" - "Look up books about the history of AI"
Args: query: The book search query string. num_results: Number of results to return (default 5, max 10).
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| num_results | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must cover behavior. It indicates a search operation with result count limits. Lacks details on read-only nature, rate limits, or result structure, but is adequate for a simple query tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is well-structured: purpose statement, example prompts, then parameter details. Concise but includes relevant examples; front-loaded with purpose. Minor redundancy in examples.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need not be described. Covers main functionality and parameter constraints. Could mention result format or sorting, but acceptable given tool simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so description adds critical meaning: 'query' explained as the search string, 'num_results' with default and max. This compensates well for the missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it searches Google Books for books, textbooks, and publications. Includes sample prompts that illustrate the tool's scope, and the purpose is distinct from siblings like google_search or google_scholar.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives. Sample prompts imply usage for book-related queries, but no 'when not to use' or comparison to siblings is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_financeA
Look up stock prices, market data, and company information on Google Finance.
Sample prompts that trigger this tool: - "What's Apple's stock price?" - "How is Tesla stock doing?" - "Look up NVIDIA market cap" - "Get me the stock price for Microsoft" - "How is the S&P 500 doing today?"
Args: query: Stock ticker with exchange (e.g. "AAPL:NASDAQ", "TSLA:NASDAQ", "MSFT:NASDAQ", ".INX:INDEXSP") or company name.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It correctly indicates a read-only lookup operation. While it does not detail rate limits or authentication, the behavior is straightforward and non-destructive. The existence of an output schema partially compensates for omitted return details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise: two sentences plus a list of sample prompts and an args section. Every part adds value without redundancy. It is well-structured and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple lookup tool with one parameter and an existing output schema, the description adequately covers purpose, parameter formatting, and examples. It does not discuss error handling or data freshness, but these are minor omissions given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% coverage, so the description must compensate. It explicitly defines the 'query' parameter with format ('Stock ticker with exchange') and examples (e.g., 'AAPL:NASDAQ'), and allows company names. This adds significant meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('look up') and the resource ('stock prices, market data, and company information') on Google Finance. Sample prompts reinforce the purpose and distinguish it from sibling tools like google_search, which are for general web searches.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through sample prompts (e.g., 'What's Apple's stock price?'), but it does not explicitly state when to use this tool versus alternatives like google_search. No exclusion criteria or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_flightsA
Search Google Flights for flight options, prices, and travel times.
Sample prompts that trigger this tool: - "Find flights from New York to London" - "Search for cheap flights from LA to Tokyo" - "Flights from San Francisco to Paris on March 15" - "Find round trip flights from Chicago to Miami" - "How much are flights from Dubai to Bangkok?"
Args: origin: Departure city or airport (e.g. "New York", "LAX", "London"). destination: Arrival city or airport (e.g. "Tokyo", "SFO", "Paris"). date: Departure date (optional, e.g. "March 15", "2025-03-15"). return_date: Return date for round trips (optional).
| Name | Required | Description | Default |
|---|---|---|---|
| origin | Yes | ||
| destination | Yes | ||
| date | No | ||
| return_date | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It only states 'search' without mentioning rate limits, data freshness, caching, or error handling. The agent lacks important operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a lead sentence, sample prompts, and a clear args section. No wasted sentences; information is front-loaded and well-organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 parameters and an output schema, the description covers the essential use case and input formats. It lacks details on edge cases or return value interpretation, but the output schema may fill that gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds crucial meaning for each parameter: origin, destination, date, and return_date with examples. This compensates well for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Search Google Flights for flight options, prices, and travel times', specifying the verb and resource. It differentiates well from sibling tools like google_hotels (hotels) and google_search (general search).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Sample prompts illustrate typical usage but there is no explicit guidance on when not to use this tool or alternatives. The description implies usage through examples but lacks exclusions or context for complex queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_hotelsA
Search for hotels and accommodation with thumbnail images, prices, ratings, and booking URLs.
Sample prompts that trigger this tool: - "Find hotels in Paris for next weekend" - "Search for cheap hotels in Tokyo" - "Best hotels near Times Square New York" - "Find 5-star hotels in Dubai" - "Hotels in London under $200 per night"
Args: query: Hotel search query with location (e.g. "Paris", "Tokyo near Shibuya", "New York March 15-20"). num_results: Number of results to return (default 5, max 10).
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| num_results | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description implies read-only search but does not explicitly state safety or side effects. Does not mention authentication or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise structure with clear introductory sentence, helpful sample prompts, and organized Args section. No unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, parameters, and expected outputs. Lacks details on sorting or filtering but adequate for a simple search tool. No output schema needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Description includes detailed parameter explanations for both 'query' (with examples) and 'num_results' (with defaults and max), fully compensating for 0% schema description coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'Search for hotels and accommodation' with specific outputs (thumbnail images, prices, ratings, booking URLs). Distinct from sibling tools like google_flights and google_maps.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by tool name and description; sample prompts give context but no explicit when-to-use vs alternatives or when-not-to-use. No exclusions provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_imagesA
Search Google Images and return images inline in chat.
Returns image thumbnails directly in the conversation so you can see them. Also provides source URLs for each image.
Sample prompts that trigger this tool: - "Show me images of the Northern Lights" - "Find pictures of modern kitchen designs" - "Search for diagrams of neural network architecture" - "Show me what a DGX Spark looks like"
Args: query: The image search query string. num_results: Number of image results to return (default 5, max 10).
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| num_results | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description should fully disclose behavioral traits. It states the tool returns thumbnails and source URLs but does not mention authentication, rate limits, or any limitations (e.g., no adult content filtering, no API quotas). This lack of context reduces transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with a main purpose sentence followed by output characteristics and sample prompts. The sample prompts, while helpful, slightly lengthen the description. The essential information is front-loaded, and every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 parameters, no output schema), the description adequately covers purpose, parameters, and return format (thumbnails and source URLs). It does not cover error handling or edge cases (e.g., no results), but for a straightforward search tool, it is mostly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% coverage, meaning the description must explain parameters. The description includes an 'Args' section that clearly defines query as 'The image search query string' and num_results as 'Number of image results to return (default 5, max 10).' This adds meaningful context beyond the schema's type and title.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Search Google Images and return images inline in chat.' It specifies a specific verb (search) and resource (Google Images), and the sample prompts reinforce this. It distinguishes itself from siblings like google_search (web results) and google_lens (image recognition).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides sample prompts that imply when to use (e.g., 'Show me images of...'), but it does not explicitly state when not to use or mention alternative tools. The context signals include many sibling tools, but no guidance is given to differentiate them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_lensA
Reverse image search using Google Lens. Identify objects, products, brands, landmarks, text in images, and find visually similar results.
This gives vision capabilities to text-only models. Supports public image URLs, local file paths, and base64-encoded image data (from drag-and-drop in LM Studio).
Sample prompts that trigger this tool: - "What is this product? https://example.com/photo.jpg" - "Identify this image: /home/user/photos/image.jpg" - "What is in this image?" (with image dragged into chat) - "What brand is this? [image URL or file path]"
Args: image_source: A public image URL, local file path, or base64-encoded image data.
| Name | Required | Description | Default |
|---|---|---|---|
| image_source | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses supported input formats (URLs, file paths, base64) and the tool's general purpose. However, it omits behavioral details like rate limits, authentication, error handling, or what happens when no match is found.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise yet informative: a clear opening sentence, context for text-only models, sample prompts, and a parameter description. Each sentence adds value, and the structure is easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter) and the presence of an output schema, the description is fairly complete. It covers input formats and usage scenarios. However, it could briefly mention the return value or typical result structure to be fully self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, 'image_source', is clearly described as accepting 'a public image URL, local file path, or base64-encoded image data.' Since the input schema lacks a description field (0% coverage), the description adds all necessary meaning and fully explains the parameter's acceptable values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action: 'Reverse image search using Google Lens.' It lists specific identification capabilities (objects, products, brands, landmarks, text) which distinguishes it from generic search tools. However, it does not explicitly differentiate it from similar sibling tools like 'google_images' or 'ocr_image'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides sample prompts that trigger the tool, offering clear contextual guidance on when to use it. It also explains that it gives vision capabilities to text-only models. However, it does not state when not to use it or mention alternatives among sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_lens_detectA
Detect and identify all objects in an image using OpenCV object detection and Google Lens.
Unlike google_lens which sends the full image, this tool:
Uses OpenCV to detect distinct objects/regions in the image
Crops each object separately
Sends the original image AND each crop to Google Lens
Returns identification results for each object
This is useful when an image contains multiple items (e.g. a monitor AND a hardware device) and you want each identified separately.
Supports local file paths and base64-encoded image data (from drag-and-drop).
Sample prompts that trigger this tool: - "Detect and identify all objects in this image: /path/to/photo.jpg" - "What are all the items in this photo?" (with image dragged into chat) - "Identify each object separately in /path/to/setup.jpg"
Args: image_source: Local file path or base64-encoded image data.
| Name | Required | Description | Default |
|---|---|---|---|
| image_source | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It explains the internal process (OpenCV detection, cropping, sending to Google Lens) and that it returns identification results for each object. However, it does not disclose error handling or behavior when no objects are detected, which is a gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections: overview, step-by-step process, use cases, supported formats, and sample prompts. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose, usage, parameter details, and sample prompts. Since an output schema exists, not explaining return values is acceptable. Missing error handling or performance notes, but overall fairly complete for a single-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, but the description adds value by stating that image_source supports local file paths and base64-encoded image data, going beyond the schema's type definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool detects and identifies all objects in an image using OpenCV and Google Lens. It distinguishes itself from the sibling tool google_lens by detailing the multi-step process (detect, crop, send both original and crops).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly compares with google_lens and provides sample prompts that illustrate when to use this tool (e.g., multiple items in an image). It also mentions supported input types (local paths and base64), giving clear context for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_mapsA
Search Google Maps for places, restaurants, businesses, and locations with ratings, prices, addresses, and a map screenshot showing pinned locations.
Sample prompts that trigger this tool: - "Find Italian restaurants near Times Square" - "Where are the best coffee shops in Berlin?" - "Search for hotels in Tokyo" - "Find EV charging stations in San Francisco" - "What are the top-rated gyms in London?"
Args: query: The place search query (e.g. "pizza near Central Park", "hotels in Paris"). num_results: Number of results to return (default 5, max 10).
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| num_results | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses output format (ratings, prices, map screenshot) and default/max results. Lacks discussion of authentication, rate limits, or query limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise with a main sentence, sample prompts, and structured args. Every part serves a purpose without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but description covers return types (ratings, prices, addresses, map screenshot). Parameters are explained. Missing some context like pagination or error handling, but sufficient for a search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description adds crucial meaning: query is a place search query with examples, num_results has default 5 and max 10. The description explains both parameters effectively beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Search Google Maps for places, restaurants, businesses, and locations' and lists return data (ratings, prices, addresses, map screenshot). It differentiates from siblings like 'google_maps_directions' which is for directions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides example prompts that implicitly indicate appropriate use cases. However, it does not explicitly state when not to use or mention alternatives like 'google_maps_directions' for directions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_maps_directionsA
Get driving/walking/transit/cycling directions between two locations with route info and a map screenshot.
Sample prompts that trigger this tool: - "Get directions from Berlin to Munich" - "How do I drive from New York to Boston?" - "Walking directions from the Eiffel Tower to the Louvre" - "Transit route from Shibuya to Akihabara" - "Cycling route from Golden Gate Bridge to Fisherman's Wharf" - "Show me the route from London to Edinburgh"
Args: origin: Starting location (address, city, or place name). destination: Ending location (address, city, or place name). mode: Travel mode - one of "driving" (default), "walking", "transit", or "cycling".
| Name | Required | Description | Default |
|---|---|---|---|
| origin | Yes | ||
| destination | Yes | ||
| mode | No | driving |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided. The description mentions it returns 'route info and a map screenshot' but lacks details on rate limits, authentication, or data format. It covers basic behavior but not comprehensively.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is brief and well-structured: intro sentence, example prompts, and arg definitions. Every sentence is useful, no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 3-parameter tool with no output schema, the description is mostly complete: it explains inputs, examples, and basic output. It lacks return value specifics but that's acceptable given complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description adds meaning: origin/destination as 'address, city, or place name', mode with list of options ('driving', 'walking', 'transit', 'cycling') and default 'driving'. This compensates for the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool gets driving/walking/transit/cycling directions between locations, with sample prompts that cover various modes. It clearly distinguishes from sibling tools like google_maps which likely handle place searches.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Sample prompts provide clear usage context (e.g., 'Get directions from Berlin to Munich'). However, it does not explicitly state when not to use this tool or mention alternatives, though siblings like google_maps imply distinction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_newsA
Search Google News for recent headlines, articles, and article images.
Sample prompts that trigger this tool: - "What are the latest AI news?" - "Get me today's top headlines" - "Any recent news about the stock market?" - "What happened in the US election?" - "Latest news about climate change"
Args: query: The news search query string. num_results: Number of results to return (default 5, max 10).
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| num_results | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It mentions returning 'recent headlines, articles, and article images' but does not clarify what 'recent' means, any rate limits, date range constraints, or response structure. Missing details on output format or authentication needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a one-sentence summary, followed by sample prompts and clear parameter documentation. No unnecessary content, well-organized, and front-loaded with essential purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is low complexity with only 2 parameters, and the description covers basic functionality. However, without an output schema, the description should more explicitly detail what is returned (e.g., fields, links, summary). It mentions 'headlines, articles, and article images' but lacks specifics on the structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 0% description coverage, so the description compensates by explaining the query parameter as 'The news search query string' and documenting num_results with default and max values. This adds meaningful guidance beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches Google News for recent headlines, articles, and images. Sample prompts illustrate the use case, and the verb 'Search' combined with the resource 'Google News' distinguishes it from sibling tools like general search or other Google services.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Sample prompts provide clear use cases for news queries. However, the description does not explicitly state when to prefer this over sibling tools or mention situations to avoid, though the tool name and context imply news-specific usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_scholarA
Search Google Scholar for academic papers, citations, and research.
Sample prompts that trigger this tool: - "Find me papers on transformer attention mechanisms" - "Look up academic research about quantum computing" - "Search for citations on CRISPR gene editing" - "Find recent studies about large language models" - "What does the research say about intermittent fasting?"
Args: query: The academic search query string. num_results: Number of results to return (default 5, max 10).
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| num_results | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and description lacks behavioral details such as authentication, rate limits, or output format. The existence of an output schema is not mentioned, and description does not disclose operational constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise with front-loaded purpose, sample prompts, and parameter explanations. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple search tool with two parameters and an output schema, description adequately explains parameters. Lacks usage context like when to prefer this over other search tools, but overall sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Since schema has 0% description coverage, description adds meaning by explaining query and num_results (default, max). However, could include more detail on query syntax or accepted formats.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool searches Google Scholar for academic papers, citations, and research. It distinguishes from sibling tools like general web search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Sample prompts illustrate typical usage, but no explicit guidance on when to use versus alternatives (e.g., google_search, google_books). No when-not-to-use advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_searchA
Search Google and return results with titles, URLs, and snippets.
Sample prompts that trigger this tool: - "Search for the best Python web frameworks" - "Find Reddit discussions about home lab setups from the past week" - "Search Stack Overflow for async Python examples" - "Look up recent news about SpaceX in German" - "Get page 2 of results for machine learning tutorials" - "Search Hacker News for posts about Rust programming" - "Find Japanese results about Tokyo restaurants"
Args: query: The search query string. num_results: Number of results to return (default 5, max 10). time_range: Filter by time. One of: "past_hour", "past_day", "past_week", "past_month", "past_year". Leave empty for no filter. site: Limit results to a specific domain (e.g. "reddit.com", "stackoverflow.com", "github.com", "arxiv.org", "news.ycombinator.com"). Leave empty for all sites. page: Results page number (default 1). Use 2, 3, etc. to get more results. language: Language code for results (e.g. "en", "de", "fr", "es", "ja", "zh"). Leave empty for English. region: Country/region code (e.g. "us", "gb", "de", "fr", "jp"). Leave empty for default.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| num_results | No | ||
| time_range | No | ||
| site | No | ||
| page | No | ||
| language | No | ||
| region | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully describes behavior: returns titles, URLs, snippets, and supports filters like time range, site, language, and region. It doesn't mention rate limits or error handling, but for a search tool it is sufficiently transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear purpose, sample prompts, and parameter descriptions. It is comprehensive but slightly verbose with 7 sample prompts; however, they add value and the overall length is justified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters and no annotations, the description covers each parameter with examples and allowed values, explains the output format, and includes sample prompts. An output schema exists but isn't shown; the description nonetheless provides sufficient context for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides detailed explanations for all 7 parameters, including defaults, allowed values (e.g., time_range options), and examples (e.g., site). This goes well beyond the schema, which only provides types and defaults, giving the agent clear guidance on usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Search Google and return results with titles, URLs, and snippets.' It provides specific verb and resource, and the sample prompts show various use cases, distinguishing it from sibling tools like google_images or google_maps.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes sample prompts that indicate typical use cases (e.g., searching for web frameworks, Reddit discussions, recent news). However, it does not explicitly state when not to use this tool or provide direct comparisons to sibling tools, leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_shoppingA
Search Google Shopping for products with prices, stores, ratings, and product images.
Sample prompts that trigger this tool: - "Find the cheapest MacBook Air" - "Compare prices for Sony WH-1000XM5 headphones" - "How much does a Nintendo Switch cost?" - "Search for running shoes under $100" - "Find deals on mechanical keyboards"
Args: query: The product search query string. num_results: Number of results to return (default 5, max 10).
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| num_results | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It only describes return content (prices, stores, ratings) but omits authtication needs, rate limits, error responses, or any side effects. For a search tool, this minimal disclosure is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise: one-line purpose, then sample prompts, then parameter list. Every sentence adds value, no redundancy. Front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 params, no output schema, no annotations), the description covers the purpose, parameters, and typical usage via examples. It mentions return fields (prices, ratings) but could be more explicit about the return format. Still adequate for most use cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no descriptions (0% coverage), so the description adds crucial meaning: 'query: The product search query string. num_results: Number of results to return (default 5, max 10).' This clarifies both parameters beyond bare type/default information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Search Google Shopping for products with prices, stores, ratings, and product images.' This distinguishes it from sibling tools like google_search (general web) and google_flights (travel), by specifying the resource (Google Shopping) and the product-oriented scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit sample prompts that trigger the tool, e.g., 'Find the cheapest MacBook Air,' which illustrates typical use cases. However, it does not mention when not to use this tool or suggest alternatives, leaving a slight gap for an AI agent deciding between similar tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_translateA
Translate text from one language to another using Google Translate.
Sample prompts that trigger this tool: - "Translate 'hello world' to Japanese" - "How do you say 'thank you' in French?" - "Translate this to Spanish: The weather is nice today" - "What does 'Guten Morgen' mean in English?" - "Translate 'I love programming' to Korean"
Args: text: The text to translate. to_language: Target language (e.g. "Spanish", "Japanese", "French", "German", "Korean", "Chinese", "Arabic"). from_language: Source language (optional, auto-detected if empty).
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | ||
| to_language | Yes | ||
| from_language | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions that 'from_language is optional, auto-detected if empty', but lacks details on rate limits, authentication, or side effects. Minimal behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with sample prompts and an Args list. It is slightly verbose due to examples, but every sentence adds value. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple translation tool with an output schema, the description covers the essential behavior: what it does, required parameters, and sample usage. It could mention the return format, but the output schema presumably handles that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description explains each parameter's role (text, to_language, from_language) and notes the optionality of from_language. This adds meaning beyond the schema's type and title fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Translate text from one language to another using Google Translate', with a specific verb and resource. It distinguishes from all sibling tools, as none are translation-related.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Sample prompts effectively illustrate when to use the tool, such as translating phrases or asking for meanings. No explicit alternatives or exclusions are given, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_trendsA
Check Google Trends for a topic to see interest over time, related topics, and related queries.
Sample prompts that trigger this tool: - "What's trending in tech right now?" - "Is Python more popular than JavaScript?" - "Check the trend for electric vehicles" - "What are people searching for about AI?"
Args: query: The topic or search term to check trends for.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must disclose behavioral traits. It does not mention rate limits, data freshness, authentication needs, or output structure (though an output schema exists). The description is too brief to compensate for missing annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the core purpose followed by useful sample prompts. Each sentence adds value, though the sample prompts could be considered slightly redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (single input, output schema exists), the description is adequate but misses explanations of how to interpret interest over time or limitations. The samples partially compensate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, the description adds a brief clarification: 'query: The topic or search term to check trends for.' This provides basic meaning but lacks details like expected format or examples beyond the provided prompts.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Check Google Trends for a topic to see interest over time, related topics, and related queries.' This verb+resource construction provides a distinct purpose differentiated from sibling tools like google_search or google_news.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Sample prompts illustrate appropriate use cases (e.g., trending tech, comparing Python vs JavaScript). While explicit when-not-to-use or alternative tools are not mentioned, the samples provide strong contextual guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_weatherA
Get current weather conditions and forecast for any location.
Sample prompts that trigger this tool: - "What's the weather in Dubai?" - "Is it going to rain in London today?" - "What's the temperature in New York?" - "Weather forecast for Tokyo this week" - "How hot is it in Dubai right now?"
Args: location: The city or location to get weather for (e.g. "Dubai", "New York", "London, UK", "Tokyo").
| Name | Required | Description | Default |
|---|---|---|---|
| location | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavioral traits. It states the tool gets current conditions and forecast, but does not elaborate on the forecast duration, response format, or any limitations (e.g., rate limits, region coverage). Since an output schema exists, the return values are handled externally, but the description lacks depth in behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured with a main statement, a list of sample prompts, and an args section. The sample prompts are valuable but take up space; they could be condensed. Overall, it communicates the needed information without excessive redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, clear purpose) and the existence of an output schema, the description is fairly complete. It covers what the tool does and how to invoke it. However, it omits any details about the forecast scope (e.g., hourly, daily) or potential caveats (e.g., coverage for specific regions).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage for the only parameter 'location'. The description compensates well by specifying it as 'The city or location to get weather for' and providing concrete examples (e.g., 'Dubai', 'London, UK'). This adds meaning beyond the schema. However, it could be slightly more precise about acceptable formats.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get current weather conditions and forecast for any location.' It uses a specific verb ('Get') and resource ('weather conditions and forecast'), and the sample prompts reinforce this. Among siblings, there is no other weather tool, so differentiation is not an issue.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides sample prompts that implicitly suggest when to use the tool (e.g., for weather queries like 'What's the weather in Dubai?'). However, it does not explicitly state when not to use it or direct the agent to alternatives. With 37 sibling tools, explicit usage guidance would be beneficial.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_imagesA
List image files in a directory so you can pass them to google_lens.
This is useful for text-only models that cannot receive images directly. The user saves an image to ~/lens/ (or any folder) and asks you to identify it.
Default directory: ~/lens/
Sample prompts that trigger this tool: - "What images are in my lens folder?" - "Identify the latest image" - "Check ~/lens/ for new images" - "What did I save?"
Args: directory: Folder to scan for images. Defaults to ~/lens/.
| Name | Required | Description | Default |
|---|---|---|---|
| directory | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. States it lists images but omits details like file type filtering, recursion, or read-only nature. Adequate but could disclose more behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with main purpose, context, sample prompts, and args. Slightly verbose with prompts but front-loaded and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers use case, default, and sample triggers. Output schema exists (not shown) so return values assumed covered. Adequate for a simple list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but description adds default directory and parameter purpose. Explains directory param defaults to ~/lens/. Adds value beyond empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists image files in a directory for passing to google_lens. It uses specific verb 'list' and resource 'image files in a directory', and distinguishes from siblings like google_images or ocr_image.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context: user saves image to ~/lens/ and asks to identify it, with sample prompts. Lacks explicit when-not or alternatives, but context implies appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_subscriptionsA
List all active feed subscriptions with item counts.
Sample prompts that trigger this tool: - "Show my subscriptions" - "What feeds am I following?" - "List all my monitored sources"
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It indicates the tool lists active subscriptions with counts, implying a read operation, but does not explicitly confirm it is read-only or mention authentication or side effects. Adequate but could be more transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with three sample prompts, making it concise and front-loaded. Every element serves a purpose, and the structure is efficient for AI consumption.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, has output schema), the description is complete. It specifies the scope ('active feed subscriptions' with counts) and provides usage prompts, adequately informing an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, and schema coverage is 100%. Per the guidelines, the baseline is 4. The description does not need to add parameter information, and it appropriately provides context about what the tool returns.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists active feed subscriptions with item counts, specifying the verb (list) and resource (subscriptions). This distinguishes it from siblings like subscribe, unsubscribe, and get_feed_items.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes sample prompts that illustrate when to use the tool, such as 'Show my subscriptions' and 'What feeds am I following?'. However, it does not explicitly state when not to use it or list alternatives, which could be improved.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ocr_imageA
Extract text from an image using local OCR. No internet connection needed.
Uses RapidOCR (PaddleOCR models on ONNX Runtime) to read text from screenshots, documents, photos of signs, labels, receipts, or any image containing text. Runs entirely locally.
Supports local file paths and base64-encoded image data (from drag-and-drop).
Sample prompts that trigger this tool: - "Read the text in this image: /path/to/image.jpg" - "OCR this screenshot" (with image dragged into chat) - "What does this document say? /path/to/document.jpg" - "Extract text from this image" (with image dragged into chat)
Args: image_source: Local file path or base64-encoded image data.
| Name | Required | Description | Default |
|---|---|---|---|
| image_source | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full burden. It explains the local OCR engine and supported input types but does not disclose limitations (e.g., language support, accuracy, behavior on unreadable images). This is adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: a clear one-liner, technical details, and sample prompts. Every sentence adds value. It is concise without omitting necessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with an output schema, the description covers the input, technology, and usage examples. It misses potential details like language support or error handling, but overall it is sufficiently complete for effective usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description must compensate. It does so excellently: 'image_source: Local file path or base64-encoded image data.' This adds critical meaning beyond the schema's bare type string.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Extract text from an image using local OCR.' It specifies the verb (extract), resource (text from image), and distinguishes from siblings by emphasizing local execution and no internet needed. Examples of use cases further solidify its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context like 'No internet connection needed' and sample prompts, which imply when to use. However, it lacks explicit when-not-to-use advice or comparisons to sibling tools like 'read_document', which could be alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
paste_textA
Post text to dpaste.org and return a shareable URL.
Great for sharing code, logs, configs, or any text output. No account or API key needed. Pastes expire automatically.
Sample prompts that trigger this tool: - "Paste this code and give me a link" - "Upload this log to a pastebin" - "Share this config file online" - "Create a paste with this error output"
Args: content: The text content to paste. title: Optional title for the paste. syntax: Syntax highlighting (e.g. "python", "json", "bash"). Default: text. expiry_days: Days until the paste expires (1-365). Default: 7.
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | ||
| title | No | ||
| syntax | No | text | |
| expiry_days | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility. It mentions automatic expiry and no auth requirement, but does not disclose rate limits, size limits, or error handling. Adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description opens with a clear one-liner, followed by a brief use-case sentence and sample prompts. The Args section is structured. The sample prompts add length but are helpful for prompting. Could be slightly more terse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple paste tool with 4 parameters and an existing output schema, the description covers purpose, usage, and parameter meanings. Minor gap: no mention of paste size limits or rate limiting, but not critical for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It explains that 'content' is the text to paste, 'title' is optional, 'syntax' is for highlighting (with examples), and 'expiry_days' is days until expiry with a default. This adds meaningful guidance beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a clear action ('Post text to dpaste.org and return a shareable URL') and lists sample prompts that illustrate typical use cases. Siblings include no similar paste tool, so differentiation is implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states when it is great for (sharing code, logs, configs) and notes that no account or API key is needed. It does not explicitly exclude alternatives, but given the sibling list, no alternative exists.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_documentA
Read and extract text from documents — PDF, Word, and plain text files.
Supported formats: - PDF (.pdf) — text extraction with pdftotext, OCR fallback for scans - Word (.docx) — paragraph and table text extraction (no extra deps) - Plain text (.txt, .md, .csv, .log, .json, .xml, .yaml, .yml, .ini, .cfg, .toml) - HTML (.html, .htm) — strips tags, returns clean text
Sample prompts that trigger this tool: - "Read this PDF: /path/to/document.pdf" - "What does this document say? /path/to/report.docx" - "Extract text from /path/to/scanned.pdf" - "Read the CSV at /path/to/data.csv" - "Show me the contents of config.yaml"
Args: file_path: Absolute path to the document file.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but the description discloses important behaviors: use of pdftotext with OCR fallback for scans, paragraph/table extraction in Word, tag stripping in HTML. This adds value beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: concise purpose statement, bulleted format list, sample prompts, and argument definition. Front-loaded with key information, no wasted sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description adequately covers the tool's capabilities. It explains supported formats and argument semantics, though it could optionally mention error handling or encoding details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, but the description's 'Args' section defines 'file_path' as 'Absolute path to the document file,' adding necessary semantics for the single parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reads and extracts text from documents, lists supported formats (PDF, Word, plain text, HTML), and distinguishes itself from siblings like 'ocr_image' which handles images. It is specific with verb and resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context through sample prompts and format listings, implicitly guiding when to use. However, it does not explicitly state when not to use or suggest alternative tools, leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_feedsA
Full-text search across all stored feed content (articles, posts, tweets, transcripts).
Sample prompts that trigger this tool: - "Search my feeds for machine learning" - "Find mentions of GPT in my news feeds" - "What have my Reddit feeds said about Rust?" - "Search Twitter feeds for product launch" - "Look for arxiv papers about transformers in my feeds"
Args: query: Search query (supports FTS5 syntax: AND, OR, NOT, "quoted phrases"). source_type: Optionally limit to one type. Leave empty to search everything. limit: Max results to return (default 20).
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| source_type | No | ||
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so description carries full burden. It discloses support for FTS5 syntax, optional source_type filter, and default limit. Does not mention error handling or performance, but adequate for a search tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise and well-structured: purpose, sample prompts, then Args. Every sentence adds value. Front-loaded with purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 3 params, no enums, and output schema exists, description covers usage and parameters. Missing enumeration of source_type values, but otherwise complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% description coverage. Description adds meaning: query supports FTS5 syntax, source_type can limit to one type (but does not list options), limit with default. Adds value beyond schema names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Full-text search across all stored feed content' with examples of content types. Sample prompts and differentiation from siblings like 'get_feed_items' and 'search_transcript' are implicitly clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides sample prompts indicating when to use, but does not explicitly state when not to use or compare to alternatives like 'search_transcript'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_transcriptA
Search inside an already-transcribed video for segments matching a keyword.
IMPORTANT: This tool searches an EXISTING transcript — it does NOT download or transcribe a video. The video must have been transcribed first with transcribe_video. If the user says "search the transcript for X" or "find where they talk about X", use THIS tool, not transcribe_video.
Returns matching segments with surrounding context so the LLM can determine the exact start and end timestamps for a topic, then call extract_video_clip.
Sample prompts that trigger this tool: - "Search the transcript for memory bandwidth" - "Find where they talk about memory bandwidth in the video" - "What timestamp do they discuss pricing?" - "When do they mention the DGX Spark specs?"
Args: url: The same video URL used with transcribe_video. query: Keyword or phrase to search for (case-insensitive). model_size: Must match the model_size used for transcription (default: tiny). context_segments: Number of surrounding segments to include (default: 2).
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| query | Yes | ||
| model_size | No | tiny | |
| context_segments | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses read-only behavior (searches existing content), case-insensitive matching, and context window. No annotations provided, so description carries full burden. Could mention it does not modify the transcript.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with a clear purpose statement, important caveat, sample prompts, and parameter blocks. Every sentence is informative and economical.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Fully explains purpose, prerequisites (transcribe_video), usage flow (leading to extract_video_clip), and parameter details. Output schema existence means return values are covered elsewhere.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All four parameters are explained with context: url links to transcribe_video, query is case-insensitive, model_size must match, context_segments defaults to 2. Schema had 0% coverage, so description adds significant value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it searches an existing transcript for keyword matches, explicitly distinguishes itself from transcribe_video, and provides sample prompts for clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (search existing transcript) and when not (does not transcribe), and directs to transcribe_video as prerequisite. Sample prompts reinforce correct usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shorten_urlA
Shorten a long URL using TinyURL. No account or API key needed.
Sample prompts that trigger this tool: - "Shorten this URL: https://very-long-url.com/path/..." - "Give me a short link for this" - "Create a tinyurl for https://..."
Args: url: The URL to shorten.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It discloses key traits like external dependency (TinyURL) and no authentication, but omits details on rate limits, error handling, or return format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with no wasted words, front-loads the action and key convenience (no API key), and includes relevant sample prompts that aid the AI agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and an output schema (not shown), the description covers the essential usage scenario, sample prompts, and external dependency, making it adequately complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description provides a basic explanation for the single parameter ('The URL to shorten'), which adds some meaning beyond the parameter name, but not extensive detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it shortens URLs using TinyURL, with a specific verb and resource. It distinguishes itself uniquely among siblings as the only URL shortening tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context by stating 'No account or API key needed' and includes sample prompts that illustrate when to use it, but it does not explicitly mention when not to use or compare to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
subscribeA
Subscribe to a content source for automatic monitoring and search.
Supported source types: news, reddit, hackernews, github, arxiv, youtube, podcast, twitter.
After subscribing, run check_feeds to fetch content, then search_feeds to query it.
Sample prompts that trigger this tool: - "Subscribe to BBC News" - "Follow r/LocalLLaMA on Reddit" - "Monitor Hacker News top stories" - "Watch anthropics/claude-code on GitHub for new releases" - "Subscribe to the YouTube channel @3Blue1Brown" - "Follow @elonmusk on Twitter" - "Subscribe to the machine learning arXiv category" - "Add this podcast: https://feeds.example.com/podcast.xml" - "Subscribe to CNN, NPR, and The Guardian"
Args: source_type: One of: news, reddit, hackernews, github, arxiv, youtube, podcast, twitter. identifier: Source identifier — depends on type: - news: preset name (bbc, cnn, nyt, guardian, npr, aljazeera, techcrunch, ars, verge, wired, reuters) or a custom 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 arXiv category like "cs.AI" - youtube: channel handle (@name), URL, or channel ID (UCxxxx) - podcast: RSS feed URL - twitter: username with or without @ (e.g. "elonmusk") name: Optional display name for this subscription.
| Name | Required | Description | Default |
|---|---|---|---|
| source_type | Yes | ||
| identifier | Yes | ||
| name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries burden. It explains the subscription action and workflow but does not disclose idempotency, rate limits, or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with purpose first, then details. Slightly verbose with many examples, but each section earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers all necessary aspects: what, when, how, parameters, and ties to sibling tools. Output schema existence reduces need for return value details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% description coverage, but description gives exhaustive per-type identifier formats and allowed values for source_type, fully compensating.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool subscribes to a content source for monitoring and search, listing specific types. It distinguishes from siblings like check_feeds and unsubscribe.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit workflow (subscribe then check_feeds, search_feeds) and sample prompts. Lacks explicit when-not-to-use but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transcribe_localB
Transcribe a local audio or video file with timestamps using Whisper.
Supports any format FFmpeg can decode: mp3, wav, m4a, flac, ogg, aac, mp4, mkv, webm, avi, mov, wma, opus, and more.
Results are cached — repeat requests for the same file are instant.
Sample prompts that trigger this tool: - "Transcribe this recording: /path/to/meeting.mp3" - "What's said in this video? /path/to/lecture.mp4" - "Transcribe ~/Downloads/interview.wav" - "Transcribe the audio file on my desktop"
Args: file_path: Absolute path to the audio or video file. model_size: Whisper model size (tiny/base/small/medium/large). Default: tiny. language: Language code (e.g. "en", "de", "fr"). Auto-detected if empty.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | ||
| model_size | No | tiny | |
| language | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses format support (any FFmpeg-decodable format) and caching behavior (repeat requests are instant). However, it omits critical behavioral details such as error handling for nonexistent files, required permissions, processing time, or whether the operation is destructive. The caching note is helpful but incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear main sentence, followed by supported formats, caching note, sample prompts, and argument list. It is front-loaded with the essential purpose. The sample prompts are slightly redundant but do not significantly harm conciseness. Minor improvements could be made by removing repetitive examples.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (transcription with model and language options) and the presence of an output schema (so return values need not be detailed), the description covers the key aspects: file, model sizes, language detection, and caching. However, it lacks details on defaults for model_size and language (though they are in schema), and does not mention potential timeout or resource constraints for large files.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds significant meaning beyond the input schema, which has 0% coverage. It clarifies that 'file_path' must be an absolute path, explains 'model_size' values (tiny/base/small/medium/large) with a default, and specifies that 'language' is optional and auto-detected if empty. This compensates well for the schema's lack of descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's action ('Transcribe'), the resource ('local audio or video file'), and the method ('using Whisper with timestamps'). However, it does not explicitly distinguish itself from the sibling tool 'transcribe_video', which likely processes remote or different sources. The name provides some differentiation, but the description misses the opportunity to clarify the scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes sample prompts but fails to provide guidance on when to use this tool versus alternatives like 'transcribe_video' or other media tools. There is no mention of prerequisites (e.g., FFmpeg installation) or situations where a different tool would be more appropriate. The agent is left to infer usage context from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transcribe_videoA
Download and transcribe a YouTube video (or any video URL) with timestamps.
Downloads the audio, transcribes it locally using Whisper, and returns a full timestamped transcript. The LLM can then answer questions about the video content and point to specific timestamps.
Results are cached to disk so repeat requests for the same video are instant.
Supported model sizes: tiny, base, small, medium, large
tiny: fastest, good for most videos (~75MB, default)
base: better accuracy, slower (~150MB)
small: high accuracy, much slower (~500MB)
medium/large: best accuracy, very slow (~1.5GB/~3GB)
Models are downloaded automatically on first use.
Sample prompts that trigger this tool: - "Transcribe this video: https://youtube.com/watch?v=..." - "What is discussed in this video? https://youtube.com/watch?v=..." - "Summarize this YouTube video: https://..." - "At what timestamp do they talk about X in https://..." - "Explain the concept from 5:30 in this video: https://..."
Args: url: YouTube URL or any video URL supported by yt-dlp. model_size: Whisper model size (tiny/base/small/medium/large). Default: tiny. language: Language code (e.g. "en", "de", "fr"). Auto-detected if empty.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| model_size | No | tiny | |
| language | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully covers behavior: downloads audio, transcribes locally with Whisper, returns timestamped transcript, caches results, and auto-downloads models. It also lists model sizes with trade-offs, ensuring the agent understands resource usage and performance.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a concise purpose, logical breakdown of behavior, caching, model sizes, sample prompts, and parameter details. Every sentence adds value, and the front-loaded purpose ensures quick understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists, the description does not need to detail return values. It covers usage, parameters, caching, and model options comprehensively. The only minor omission is potential rate limits or disk space, but overall it is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no descriptions (0% coverage), but the 'Args:' section in the description adds critical semantics: 'url' supported by yt-dlp, 'model_size' options with defaults, and 'language' auto-detection. This fully compensates for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Download and transcribe a YouTube video (or any video URL) with timestamps,' specifying the verb, resource, and output. It distinguishes from sibling 'transcribe_local' by focusing on URLs rather than local files.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides multiple sample prompts that trigger the tool, covering various use cases like transcription, summarization, and timestamp querying. It also explains when to use different model sizes based on speed/accuracy needs, though it does not explicitly mention when not to use or alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unsubscribeA
Remove a subscription and all its stored content.
Sample prompts that trigger this tool: - "Unsubscribe from BBC News" - "Stop following r/LocalLLaMA" - "Remove the YouTube channel @3Blue1Brown"
Args: source_type: The source type (news, reddit, hackernews, github, arxiv, youtube, podcast, twitter). identifier: The same identifier used when subscribing.
| Name | Required | Description | Default |
|---|---|---|---|
| source_type | Yes | ||
| identifier | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It mentions removal of stored content (destructive) but lacks details on reversibility, permissions, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, well-structured with a clear purpose, sample prompts, and parameter descriptions. No unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-parameter tool with an output schema, the description provides complete guidance for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema description coverage, the description lists both parameters with meaningful context: source_type includes examples of allowed values, and identifier is explained as the same used when subscribing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Remove a subscription and all its stored content', using a specific verb and resource. It distinguishes from sibling tools like 'subscribe' and 'list_subscriptions'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Sample prompts provide clear usage context. No explicit when-not-to-use or alternatives, but the sibling tool names imply the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upload_to_s3A
Upload a file to MinIO, AWS S3, or any S3-compatible storage.
Works with MinIO (self-hosted), AWS S3, DigitalOcean Spaces, Backblaze B2, Cloudflare R2, and any S3-compatible service.
Credentials can be passed directly or read from environment variables: AWS_ENDPOINT_URL, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY
Sample prompts that trigger this tool: - "Upload report.pdf to my MinIO bucket" - "Upload this file to S3 bucket my-bucket" - "Store backup.tar.gz in MinIO at backup-bucket/daily/" - "Upload to my DigitalOcean Space"
Args: file_path: Local file to upload. bucket: Bucket name. key: Object key (path in bucket). Default: filename. endpoint: S3 endpoint URL (e.g. "http://localhost:9000" for MinIO). Falls back to AWS_ENDPOINT_URL env var, then AWS S3 default. access_key: Access key. Falls back to AWS_ACCESS_KEY_ID env var. secret_key: Secret key. Falls back to AWS_SECRET_ACCESS_KEY env var.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | ||
| bucket | Yes | ||
| key | No | ||
| endpoint | No | ||
| access_key | No | ||
| secret_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses multi-service support, credential fallback, and default behavior for key. Does not mention overwrite policy, error behavior, or file size limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured but verbose, especially the list of sample prompts which may be unnecessary for an agent. Could be more concise without losing essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers inputs, fallback behavior, and examples. Does not describe return values, but output schema exists. Lacks mention of success/failure conditions, but overall fairly complete for a file upload tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but description explains each parameter, including defaults (key defaults to filename) and fallback logic for endpoint, access_key, secret_key. Adds significant value beyond bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool uploads a file to S3-compatible storage, lists specific services (MinIO, AWS S3, etc.), and explains credential fallback. Distinguishes from retrieval/processing sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides sample prompts and explains credential handling, but does not explicitly state when to use this tool vs alternatives. Context is clear but lacks direct when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
visit_pageA
Fetch a web page and return its text content. Use this after google_search to read the actual content of a result.
Sample prompts that trigger this tool: - "Read this article for me: https://example.com/article" - "What does this page say? https://..." - "Summarize the content at this URL" - "Go to this link and tell me what it says"
Args: url: The full URL to visit and extract text from.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided. The description discloses it fetches and returns text content, but does not mention potential limitations such as JavaScript rendering, rate limits, or error handling. For a simple tool, this is adequate but could be more transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise: one sentence for purpose, one for usage, sample prompts, and parameter explanation. No wasted words, well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given simple one-parameter tool and existence of output schema (though not shown), the description is sufficient. It covers what the tool does, when to use it, and parameter semantics. Could mention that it only extracts text, but context is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description adds value by explaining the parameter: 'The full URL to visit and extract text from.' It specifies 'full URL' indicating protocol needed, which is helpful beyond the schema type.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool fetches a web page and returns text content. It distinguishes from sibling tools like google_search (search) and read_document (document reading), and mentions using it after google_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when to use: 'Use this after google_search to read the actual content of a result.' Sample prompts provide additional context. No explicit when-not-to-use or alternatives, but guidance is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wikipediaA
Look up a Wikipedia article and return its content.
Returns the article summary or full text. Supports all Wikipedia languages.
Sample prompts that trigger this tool: - "Wikipedia: quantum computing" - "Look up Albert Einstein on Wikipedia" - "What does Wikipedia say about the French Revolution?" - "Get the Wikipedia article for Python programming language" - "Wikipedia en español: inteligencia artificial"
Args: query: The topic to search for. language: Wikipedia language code (e.g. "en", "de", "fr", "es", "ja"). Default: en. sentences: Number of sentences for summary (0 = full article extract). Default: 0.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| language | No | en | |
| sentences | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses basic behavior (summary vs full text via sentences parameter and language support), but with no annotations, the description does not cover error handling, rate limits, or what happens if articles are missing. Adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with clear purpose, detail, and sample prompts. Sample prompts add length but provide useful context. Minimal fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Explains inputs and output sufficiently for a simple lookup tool. Missing error handling or alternative tool guidance, but output schema exists. Adequately complete for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Adds significant meaning beyond schema titles: defines query as topic, language with examples and default, sentences with interpretation of 0. With schema descriptions absent, this fully explains parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Look up a Wikipedia article and return its content,' specifying verb and resource. Identifies return type (summary or full text) and language support, distinguishing it from sibling search tools like google_search which return search results.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage via sample prompts, but lacks explicit guidance on when to prefer this tool over alternatives or when not to use it. No mention of exclusionary conditions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Most tools have clearly distinct purposes, with minor overlap between google_lens and google_lens_detect, and between transcribe_video and transcribe_local. The descriptions help resolve ambiguity.
Naming is mixed: Google services use a consistent 'google_*' prefix, but other tools use various verb_object patterns (e.g., fetch_emails, list_images) and some just a verb (subscribe, unsubscribe). The conventions are readable but not uniform.
38 tools is high for a single MCP server, pushing the boundary of manageability. However, each tool serves a distinct utility, and the set covers a broad scope. It feels more like a general-purpose toolkit than a focused server.
The tool surface covers Google services, media handling, feed management, and web archiving well, but lacks features like sending emails, deleting clips or archives, or managing subscription details. Some domains feel incomplete.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
An MCP server that gives your AI access to the source code and docs of all public github repos
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
An MCP server that gives any LLM or agent clean YouTube transcripts on demand: a single video, a whole channel, or a playlist, plus AI cleanup of auto-generated captions. API-key auth, credit-based, same backend as the public v1 API. Get a free API key with 25 free credits at youtubetranscriptdownload.com/account.
Driflyte MCP server which lets AI assistants query topic-specific knowledge from web and GitHub.
Related MCP Servers
- AlicenseAqualityAmaintenanceA local-first, no-API-key MCP server that enables LLMs to search the web, fetch pages, and read documents using multiple engines and smart fallbacks.1060MIT
- AlicenseAqualityDmaintenanceA self-hosted MCP server that gives AI agents deep internet research capabilities — no API keys required, powered by SearxNG, Playwright, and Docker.462ISC
- AlicenseNot gradedqualityDmaintenanceLocal-first MCP server that gives Claude Code web search, page reading, video transcription, and image analysis — without paid API keys. Runs SearXNG + whisper.cpp natively on Apple Silicon for zero-cost, low-latency research workflows.MIT
- AlicenseAqualityBmaintenanceA lightweight MCP server that gives AI assistants real-time web search and URL reading — no API keys required.2GPL 3.0
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/engram-ae/noapi-google-search-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server