Provides tools to query Wikipedia content, including summary, full content, references, categories, images, links, and more.
Wikipedia MCP has a solid foundation with 13 well-defined read-only tools. All tools are registered with explicit descriptions and input schemas using Pydantic models. Naming follows verb_noun conventions (get_*, search_*, check_*). However, descriptions are minimal (averaging ~80 chars, below the baseline 194), parameter descriptions lack guidance on format/constraints, output schemas are not documented in the tool interface, and error handling is generic without recovery guidance. No tool annotations (readOnlyHint, etc.) despite all being safe read-only operations. The server uses proper exception handling but does not guide the LLM on next steps after failures.
Check whether a Wikipedia page exists.
Get disambiguation options for an ambiguous Wikipedia page.
Retrieve the list of categories for a Wikipedia page.
Retrieve the full plain text content of a Wikipedia page.
Retrieve the rendered HTML of a Wikipedia page.
Retrieve a list of image URLs from a Wikipedia page.
Retrieve a list of internal Wikipedia links from a page.
Output schemas not documented. Tools return dicts (e.g. {"summary": ..., "content": ...}) but the tool metadata does not declare what fields LLMs should expect. This forces LLMs to infer structure and may cause failures if they expect different field names.
Minimal parameter descriptions. All tools accept a 'page' parameter described only as 'The title of the Wikipedia page to retrieve.' This lacks guidance on acceptable formats (e.g., handling spaces, special characters, case sensitivity, disambiguation if ambiguous). search_pages 'query' parameter similarly under-documented.
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 | 0 | - | v1 |
Retrieve the internal Wikipedia page ID.
Retrieve external reference URLs cited on a Wikipedia page.
Retrieve the summary of a given Wikipedia page.
Retrieve the title of a Wikipedia page after normalization.
Retrieve the canonical URL of a Wikipedia page.
Search Wikipedia for pages matching a query term.
No tool annotations despite all being read-only. The spec supports readOnlyHint to signal safe tools. This helps LLMs understand execution risk and may enable caching or parallelization.
Generic error handling without recovery guidance. Errors are raised with ToolError(f'{action} error: {str(e)}'), e.g. 'Summary error: <raw exception>'. This provides no actionable next steps, the LLM cannot tell if the error is a typo (try search_pages) or a network failure (retry), making it hard to recover.
Tool descriptions too brief. Average 80 chars vs. baseline 194 chars. Descriptions like 'Retrieve the summary of a given Wikipedia page.' lack context: when to use get_summary vs. get_content? What's the difference in length/detail? Are references included? An LLM cannot confidently select the right tool.
No pagination or result limits documented. search_pages returns wikipedia.search(query) with no limit stated. Large searches could return hundreds of results, blowing the context window. No mention of max results or how to handle pagination.
Inconsistent error handling between similar tools. check_page_exists catches wikipedia.exceptions.PageError and returns {"exists": false}, while other tools raise ToolError on exception. This inconsistency may confuse LLMs about whether missing pages are errors or expected outcomes.