A FastAPI-based MCP server that uses Google's ADK (Agent Development Kit) to provide Wikipedia lookup functionality through an MCP tool interface.
Single tool with minimal definition quality. Tool name 'wikipedia_mcp_tool' lacks action verb (should be 'search_wikipedia' or 'get_wikipedia_article'). Description is present but generic and exceeds 1024 chars (violates baseline). Input schema exists with 'topic' parameter but lacks proper type constraints, enums, or format guidance. No output schema documented. Error handling returns unstructured dicts without recovery guidance. Tool is read-only but lacks explicit readOnlyHint annotation. No pagination, no result limits documented despite Wikipedia API returning variable-length summaries.
MCP Tool: Retrieve factual information about any topic from Wikipedia. Use this whenever the user asks about a person, place, concept, or event. Args: topic: The subject to look up. Returns: A dict with title, summary, url.
Tool name lacks action verb. 'wikipedia_mcp_tool' is generic and non-descriptive. Should be 'search_wikipedia' or 'get_wikipedia_article' to signal intent.
No output schema documented. LLM cannot predict response structure (title, summary, url, found fields). Undocumented outputs force LLMs to guess field names.
Input parameter 'topic' lacks constraints. No enum, pattern, length limits, or format guidance. Description should specify: 'A Wikipedia article title or search term (1-200 chars, alphanumeric + spaces).'
Error handling returns unstructured dicts with 'found: false' and exception strings. No recovery guidance. Should return: 'Article not found for "<topic>". Try a more specific term or check spelling.'
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 33 | <=2025-11-25 | v2 |
No result limits or pagination. Wikipedia summaries are truncated to 500 chars in code but not documented in tool description. Should state: 'Returns summary limited to 500 characters. For full article, use the returned URL.'