An MCP server that provides tools to search Wikipedia, list article sections, and retrieve section content. Integrates with LangGraph and LangChain for agent-based Wikipedia exploration.
The WikipediaSearch server has 3 tools with adequate verb-based naming (fetch_, list_, get_). All tools have basic descriptions and visible input schemas. However, definitions lack depth across critical areas: descriptions are below the 194-char production baseline and lack context about WHEN to use each tool; parameter descriptions are minimal (under 20 chars in several cases); output schemas are not formally documented, responses are inferred from the code rather than explicitly declared; error handling provides generic messages without recovery guidance; no parameter validation rules or constraints are stated. The tools are simple READ_ONLY operations that work in isolation, but composition between them is not optimized (e.g., fetch_wikipedia_info returns a URL but list_wikipedia_sections requires a 'topic' string, the agent must infer the mapping). Responses dump raw Wikipedia page objects without pagination support or field trimming, increasing token cost. Overall definition quality is functional but falls short of production standards.
Search Wikipedia for a topic and return title, summary, and URL of the best match.
Return the content of a specific section in a Wikipedia article.
Return a list of section titles from the Wikipedia page of a given topic.
Output schemas not formally documented. Tool responses are inferred from code logic rather than explicitly declared in the tool definition. This forces LLMs to guess at response structure, preventing reliable field extraction for downstream tool calls.
Descriptions below production baseline (54-64 chars vs 194-char average). All three tools lack WHEN context, no guidance on tool selection order, interdependencies, or when to prefer one tool over another. Descriptions do not answer 'What does it return?' or 'What are the prerequisites?'
Parameter descriptions lack specificity and validation rules. 'The Wikipedia article topic or title' does not clarify whether it accepts search terms or requires exact page titles. No min/max length, regex patterns, or constraints stated in descriptions.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 56 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 31 | - | v1 |
Error handling is generic and unhelpful. All tools catch exceptions as str(e), which produces stack traces or cryptic messages. Errors do not guide recovery (e.g., 'No Wikipedia page could be loaded' should suggest 'Try a different search term or verify the article exists').
No pagination or result limiting. get_section_content can return arbitrarily large section content, wasting tokens. Tools should cap results or support pagination (limit, offset, next_cursor) for large responses.
Tool interdependencies not documented. fetch_wikipedia_info returns a 'title' field, but list_wikipedia_sections expects 'topic', no guidance that 'topic' should be the returned 'title'. Agents must infer this mapping.