Aggregated search server that clusters results from multiple search providers (Google, DuckDuckGo, Wikipedia, Reddit, NewsAPI)
Search-cluster-skill has 7 tools with basic descriptions and minimal parameter documentation. All tools are READ_ONLY and follow a consistent naming pattern (verb_noun: search_*, ddg_search, wiki_search, reddit_search, news_search, stealth_fetch). However, parameter schemas are extremely sparse, most tools accept only a 'query' string with minimal constraint documentation. No output schemas are documented. Error handling is present (try/except blocks with stderr warnings) but does not guide LLM recovery. The server lacks pagination, result limits are hardcoded (8 for wiki, 5 for reddit), and no structured error messages are returned to the agent. Tool descriptions are adequate (50-150 chars) but lack WHEN/WHY guidance. No tool annotations (readOnlyHint, etc.) are present despite all tools being read-only.
DuckDuckGo HTML endpoint - reliable free source (no API key)
Google Custom Search API with fallback to DuckDuckGo and Wikipedia if quota exceeded
NewsAPI.org - reliable structured news search (requires NEWSAPI_KEY)
Reddit search with simplified query processing
Aggregated search across multiple providers (news, DuckDuckGo, Google, Wikipedia, Reddit) with deduplication
Stealth fetcher for DuckDuckGo HTML with URL extraction and CSS/XPath parsing
Wikipedia search with query simplification
No output schemas documented. Tools return JSON objects with 'source', 'title', 'link', 'snippet' fields, but LLMs cannot plan downstream operations without knowing the response structure. Deduplication logic exists but is not exposed to the agent.
Parameter schemas are minimal. Only 'query' (string) and 'simplify' (boolean, wiki_search only) are defined. No constraints on query length, format, or valid values. No guidance on when to use each search provider vs search_all.
No pagination or result limit parameters. Results are hardcoded (8 for wiki, 5 for reddit, 8 for ddg). Large result sets could exhaust context. No 'limit' or 'offset' parameters to let agents control result volume.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
Error handling does not guide LLM recovery. Errors are logged to stderr (warn() function) but not returned to the agent. When a search fails, the tool returns an empty list with no explanation. LLM cannot distinguish 'no results' from 'API error' or 'quota exceeded'.
No tool annotations. All tools are read-only (no side effects), but readOnlyHint is not declared. This prevents agents from optimizing retry strategies or caching behavior.