MCP server for searching and retrieving content from Grokipedia, a wiki-style knowledge base.
Grokipedia MCP server demonstrates solid definition quality with well-structured tool schemas, comprehensive parameter descriptions, and proper error handling patterns. All three tools have explicit input schemas with type constraints, range limits, and field descriptions. Tool naming follows verb_noun convention (search, get_page, get_page_content) and is clear and unambiguous. Descriptions are substantial (90-180 chars each), exceeding the 10-char minimum and within the productive 50-200 char range. All parameters have type definitions and descriptions, with appropriate constraints (ge/le for numeric ranges, nullable for optional fields). Error handling includes recovery guidance (search suggestions on not-found, categorized exception types). The primary weaknesses are: (1) output schemas are partially documented through structuredContent but lack explicit field descriptions in tool docstrings; (2) three tools sharing similar functionality (search, get_page, get_page_content) could benefit from clearer decision guidance in descriptions; (3) no batch or multi-resource variants despite agents potentially needing to fetch multiple pages. Tool annotations (readOnlyHint, destructiveHint, idempotentHint) are correctly applied to all tools.
Get complete page information including metadata, content preview, and citations summary.
Get only the article content without citations or metadata.
Search for articles in Grokipedia with optional filtering and sorting.
Output schemas lack explicit field documentation in tool descriptions. The structuredContent returns model_dump() of SDK objects, but the LLM cannot see field names, types, or which fields are essential for downstream tool chaining. This forces LLMs to infer structure and risks extracting wrong fields.
Three similar tools (search, get_page, get_page_content) lack decision guidance in descriptions. The LLM cannot easily determine: when to call search vs get_page? When is get_page_content preferred to get_page? Descriptions should include a 'When to use' clause to prevent tool selection confusion.
The get_page tool returns both text content and structuredContent, but only the text content is truncated by max_content_length. The structuredContent (derived linked pages, citations) is not size-constrained, risking context window exhaustion for large pages with many links.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 68 | 2025-06-18+ | v2 |
| 2026-03-09 | F | 21 | - | v1 |
Error handling for GrokipediaBadRequestError is generic ('Invalid search parameters') and does not guide which parameter was invalid or why. For search, this means an LLM retrying with the same parameters gets the same error with no self-correction path.
The search tool multiplies the user-requested limit by 2 (limit * 2) before filtering by min_views, then truncates to the original limit. This is undocumented and unintuitive, the LLM and user have no way to predict how many results will actually be returned if min_views is applied.