Both tools have minimal descriptions (under 50 chars) and lack parameter descriptions entirely. Schemas are present but incomplete: 'url' and 'query' parameters have no descriptions, 'css_selector' and 'max_results' lack type info in descriptions. No output schema documented. Error handling returns raw exception messages without recovery guidance. Tool names are acceptable (verb_noun pattern) but descriptions fail to explain WHEN to use each tool or what they return. No input validation guidance. Baseline: A+ tools average 194 chars description + 72 chars per param; these average ~30 chars description + 0 chars per param.
Fetches a web page and returns its content as Markdown.
Web search using DuckDuckGo
Parameter descriptions completely missing. 'url', 'query', 'css_selector', 'max_results' have no descriptions in schema. LLMs cannot infer parameter meaning from names alone.
Tool descriptions are too short (15-20 chars). 'Fetches a web page and returns its content as Markdown' and 'Web search using DuckDuckGo' lack context on WHEN to use, what data is returned, and prerequisites. Baseline: 194 chars average.
No output schema documented. LLMs cannot plan downstream calls or extract structured data. webfetch returns markdown text; websearch returns formatted string with title/href/body, neither documented.
Error messages are raw exception strings ('Fetch error: {e}', 'Search error: {e}'). No recovery guidance. LLM cannot determine if error is retryable, user-fixable, or fatal.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 39 | 2026-07-28+ | v2 |
No input validation or constraint documentation. 'max_results' has no min/max bounds; 'url' has no format validation; 'css_selector' has no guidance on valid CSS syntax. LLMs will pass invalid values.