MCP server that fetches Wikipedia articles, parses their content, converts to Markdown, and generates summaries using the Ollama model
Single tool with adequate naming and description, but critical gaps in schema documentation and error handling. Tool name 'summarize_wikipedia_article' follows verb_noun convention and is clear. Description (194 chars) explains what the tool does and when to use it. However, input schema lacks explicit type/format constraints, output schema is undocumented (returns string with no structure), and error handling provides McpError responses but lacks recovery guidance for LLMs. No parameter validation constraints (URL format, length limits) documented in schema. Tool is read-only (good), but lacks idempotent/readonly annotations.
Fetch a Wikipedia article at the provided URL, parse its main content, convert it to Markdown, and generate a summary using the Ollama model.
Output schema undocumented. Tool returns a string summary but LLMs have no structured schema to understand the response format, length, or content type. This violates pattern:tool requirement for documented return types.
Input parameter 'url' lacks format constraint in schema. No regex pattern, length limit, or enum documented. Runtime validation exists (startswith 'http' check) but is not reflected in the JSON Schema, forcing LLMs to guess valid formats.
Error responses lack recovery guidance. McpError messages (e.g., 'Could not find main content') tell the LLM what failed but not what to do next. Should suggest alternatives: 'Try a different Wikipedia URL' or 'Verify the article exists and is accessible.'
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | 2026-07-28+ | v2 |
Tool lacks readonly/idempotent annotations. Despite being read-only and safe to retry, no tool annotations (readOnlyHint, idempotentHint) are declared in the schema. This prevents agents from optimizing retry logic.
No timeout or rate-limit guidance documented. Tool calls external services (Wikipedia, Ollama) with 10s timeout but no documentation of expected latency, failure modes, or retry strategy for LLMs.