Web research CLI, stdio MCP server, and personal HTTP service with HTTP and optional browser page-rendering modes. Provides web search, page fetching, link extraction, documentation lookup, source code search, and specialized data tools (weather, sports, finance, time).
Tools have basic schemas and descriptions, but quality is inconsistent. Most descriptions are terse (10-50 chars), below the 50-200 char baseline for LLM-optimized docs. Parameter descriptions are sparse or missing entirely. web_fetch and web_docs have moderately detailed schemas; others lack depth. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite all being read-only. Error handling and recovery guidance absent. Output schemas undocumented. Tool names follow verb_noun convention (web_search, web_fetch) but lack specificity, 'web_fetch' doesn't clarify what 'fetch' returns or when to use it vs web_links.
Documentation
Fetch page
Finance
Find links
Search the web
Search source
Sports
Time
Tool descriptions are critically short (10-40 chars). LLM cannot determine when to select web_weather vs web_fetch vs web_search. Baseline is 50-200 chars; these are 1/5 the recommended length.
Parameter descriptions missing or trivial. 'queries' in web_search has a description, but 'mode' in web_fetch lacks explanation of what 'auto', 'full', 'tree' mean. 'render' enum values ('http', 'browser') are undocumented. LLM cannot infer correct parameter values.
No output schemas documented. LLM does not know what fields web_search returns, what structure web_fetch yields, or how to chain results to downstream tools. Baseline: 100% of A+ tools document return types.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | 2026-07-28+ | v2 |
Weather
No tool annotations despite all tools being read-only. Missing readOnlyHint metadata. Current spec (2026-07-28) expects tool annotations for safety classification.
No error handling or recovery guidance. If web_search fails, LLM receives no hint on what to do next. Baseline: error responses must tell LLM what to do (retry, ask user, or fail).