Fetch web page content with CSS selector filtering, structured Markdown formatting, metadata, and extracted links.
Single tool 'get_web_content' has a clear verb-noun name and reasonable description (118 chars, within 10-1024 range). Input schema is present with proper JSON Schema structure. However, critical gaps exist: no output schema documentation, no parameter descriptions for 'selector', no error handling guidance, and no tool annotations. The tool lacks the structured output documentation and error recovery patterns expected of production tools. Description is adequate but could better explain when to use CSS selectors or what the Markdown output contains.
Fetch web page content with CSS selector filtering, structured Markdown formatting, metadata, and extracted links.
No output schema documented. LLMs cannot predict the structure of returned JSON (metadata, markdown_content, extracted_links fields). This forces agents to parse unstructured output and risks hallucination.
Parameter 'selector' lacks description. The description says 'Optional CSS selector' but does not explain what happens if the selector fails, whether it's required for certain use cases, or what format is expected (e.g., '.class', '#id', 'div > p'). LLMs cannot reason about when to use it.
Error handling returns raw exception strings ('Error fetching website: {str(e)}') without recovery guidance. LLMs cannot determine if the error is retryable, user-fixable, or fatal. No actionable next steps provided.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). The tool is read-only and idempotent, but these properties are not declared in the schema, forcing LLMs to infer them.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2026-07-28+ | v2 |
Tool description does not explain output format or when to call it. Users expect to know: What fields are in the response? Is it Markdown or HTML? Are links always extracted? What does 'structured Markdown formatting' mean?