Single tool 'web_content_extractor' has a basic description (56 chars, within 10-1024 range) but critical gaps in schema documentation, parameter descriptions, and error handling. Input schema visible in decorator but lacks formal JSON Schema structure with type/description pairs. No output schema documented. Error handling returns None silently or prints to stdout, no actionable recovery guidance for LLM. Tool name is verb_noun compliant but description is generic. No pagination, no result limits, no structured output documented.
Extracts the content of a web page
No output schema documented. LLM cannot infer what fields to expect from the response (string vs structured object with metadata like title, author, word_count, language).
Parameter 'url' lacks description in the tool definition. While the docstring mentions it, the @mcp.tool decorator has no description field for the parameter, LLM cannot see it.
Error handling returns None or prints to stdout. No actionable error messages for LLM recovery (e.g., 'URL unreachable. Check the domain and try again.' or 'Timeout after 10s, try a simpler page.').
No result limits or pagination. Tool can return unbounded text (entire webpage content), risking context window exhaustion. No documented max length or truncation strategy.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 38 | 2026-07-28+ | v2 |
Tool description is generic (56 chars). Does not explain WHEN to use it vs alternatives, what format it returns, or prerequisites (e.g., 'Requires public internet access; returns plaintext stripped of HTML/CSS').