mcp-mediawiki-crunchtools
Enables searching, reading, creating, and editing wiki pages, categories, and files on Wikipedia and other MediaWiki-based platforms.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-mediawiki-crunchtoolsFind the 'DevOps' page and summarize the introduction."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-mediawiki-crunchtools
Secure MCP server for MediaWiki wikis. Search, read, create, edit, and manage wiki pages, categories, files, and more. Works with any MediaWiki instance — public or private.
Installation
uvx (recommended)
uvx mcp-mediawiki-crunchtoolspip
pip install mcp-mediawiki-crunchtools
mcp-mediawiki-crunchtoolsContainer
podman run -e MEDIAWIKI_URL=https://en.wikipedia.org/w/ \
quay.io/crunchtools/mcp-mediawikiRelated MCP server: mediawiki-mcp-server
Usage with Claude Code
Read-only (public wiki, no auth needed)
claude mcp add mcp-mediawiki-crunchtools \
--env MEDIAWIKI_URL=https://en.wikipedia.org/w/ \
-- uvx mcp-mediawiki-crunchtoolsWith authentication (for write operations)
claude mcp add mcp-mediawiki-crunchtools \
--env MEDIAWIKI_URL=https://your-wiki.com/w/ \
--env MEDIAWIKI_USERNAME=BotUser \
--env MEDIAWIKI_PASSWORD=BotPassword \
-- uvx mcp-mediawiki-crunchtoolsHTTP transport (systemd / container)
podman run -d --name mcp-mediawiki \
-p 127.0.0.1:8016:8016 \
-e MEDIAWIKI_URL=https://your-wiki.com/w/ \
quay.io/crunchtools/mcp-mediawiki \
--transport streamable-http --host 0.0.0.0Claude Code config:
{"type": "http", "url": "http://127.0.0.1:8016/mcp"}Environment Variables
Variable | Required | Description |
| Yes | Wiki base URL (e.g., |
| No | Bot/user account for write operations |
| No | Bot/user password |
| No | HTTP Basic Auth username (.htaccess) |
| No | HTTP Basic Auth password |
Tools (19)
Category | Tool | Description |
Pages |
| Full-text search across wiki |
Pages |
| Get page wikitext content |
Pages |
| Parse page to HTML |
Pages |
| List pages with prefix filter |
Pages |
| Create a new page |
Pages |
| Edit an existing page |
Pages |
| Delete a page |
Pages |
| Move/rename a page |
Categories |
| List all categories |
Categories |
| Get pages in a category |
Categories |
| Get categories for a page |
Recent Changes |
| List recent edits |
Parsing |
| Parse raw wikitext to HTML |
Site Info |
| Get wiki config and version |
Site Info |
| List wiki namespaces |
Users |
| Get user details |
Users |
| List user edits |
Files |
| Get file/image metadata |
Files |
| List files on the wiki |
Development
# Install dev dependencies
uv sync --all-extras
# Quality gates
uv run ruff check src tests
uv run mypy src
uv run pytest -v
gourmand --full .
podman build -f Containerfile .License
AGPL-3.0-or-later
Available Tools
19 toolscreate_page_toolB
Create a new wiki page. Requires authentication.
Args: title: Page title content: Page wikitext content summary: Edit summary (default: empty)
Returns: Creation result with page info
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| content | Yes | ||
| summary | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses authentication requirement and return type ('Creation result with page info'). However, lacks disclosure of error conditions (e.g., collision handling if page exists), idempotency, or permission requirements beyond basic auth. No annotations provided to supplement this.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and auth requirement. Uses Args/Returns pseudo-structure which is readable but slightly awkward in a description field. No wasted words, though the Returns section is redundant given the presence of an output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for basic invocation given output schema exists—parameters are documented and return type is mentioned. However, fails to address error handling, collision behavior with existing pages, or relationship to the edit tool, leaving operational gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Compensates effectively for 0% schema description coverage by documenting all 3 parameters. Crucially specifies that content expects 'wikitext' format and that summary is an 'Edit summary' with a default value—semantic details not inferable from the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States specific verb (Create) and resource (wiki page). The phrase 'new wiki page' distinguishes from sibling edit_page_tool and delete_page_tool, though it could clarify the uniqueness constraint (what happens if page exists).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Mentions 'Requires authentication' as a prerequisite, but provides no guidance on when to use this versus edit_page_tool, nor what happens if the page already exists. No alternatives or exclusions stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_page_toolA
Delete a wiki page. Requires admin authentication.
Args: title: Page title to delete reason: Reason for deletion (default: empty)
Returns: Deletion result
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| reason | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full disclosure burden. It successfully identifies the admin authentication requirement and acknowledges a return value ('Deletion result'), but omits critical behavioral details like whether deletion is permanent, if history is preserved, or what specific result structure is returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description uses a structured docstring format (Args/Returns) that is front-loaded with the essential action and constraint. It is appropriately concise, though 'Deletion result' is minimally descriptive (acceptable given the existence of an output schema).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has only 2 simple parameters and an output schema exists (per context signals), the description provides sufficient context. The auth requirement is the critical contextual piece for a deletion operation, though additional notes on permanence would achieve a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning no parameter descriptions exist in the structured schema. The description fully compensates by documenting both 'title' ('Page title to delete') and 'reason' ('Reason for deletion (default: empty)') with clear semantics and default value information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence 'Delete a wiki page' provides a specific verb and resource. It distinguishes from siblings like edit_page_tool or move_page_tool by explicitly stating 'Requires admin authentication,' signaling this is a privileged operation compared to standard editing tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Requires admin authentication' provides clear prerequisite guidance on when to use (and implicitly when not to use) the tool. However, it lacks explicit guidance on alternatives such as move_page_tool for renaming vs. deletion, or warnings about permanent data loss.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edit_page_toolA
Edit an existing wiki page. Requires authentication.
Args: title: Page title content: New page wikitext content summary: Edit summary (default: empty) minor: Mark as minor edit (default: False)
Returns: Edit result with revision info
| Name | Required | Description | Default |
|---|---|---|---|
| minor | No | ||
| title | Yes | ||
| content | Yes | ||
| summary | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses authentication requirements and return value structure ('Edit result with revision info'), but fails to mention critical mutation behaviors: that it overwrites content completely, error handling for missing pages, or conflict detection.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose statement followed by structured Args and Returns sections. While slightly verbose due to the need to document parameters inline (compensating for schema gaps), every sentence serves a necessary function with minimal redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for basic operation with parameter documentation and return type mentioned (output schema exists). However, as a destructive mutation tool without annotations, it lacks completeness regarding error states, permissions, and content overwrite warnings that would be necessary for safe agent operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the Args section fully compensates by documenting all 4 parameters (title, content, summary, minor) including their semantics (e.g., 'New page wikitext content', 'Mark as minor edit') and default values ('default: empty', 'default: False').
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Edit an existing wiki page' providing a specific verb (Edit) and resource (existing wiki page). It clearly distinguishes from siblings like create_page_tool (creates new) and get_page_tool (reads only) by emphasizing 'existing' and the editing action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States 'Requires authentication' indicating a prerequisite, but lacks explicit guidance on when to use this versus create_page_tool (e.g., what happens if the page doesn't exist) or warnings about overwrite behavior. Usage is implied but not rigorously constrained.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_category_members_toolA
Get pages in a category.
Args: category: Category name (with or without "Category:" prefix) member_type: Filter by type: page, subcat, file (default: all) limit: Maximum results (default: 50, max: 500) continue_from: Continue token for pagination
Returns: List of category members with titles and types
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| category | Yes | ||
| member_type | No | ||
| continue_from | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It successfully documents the pagination mechanism (continue_from) and return structure, but omits error handling (e.g., behavior for non-existent categories), rate limits, and sorting behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Uses a clear docstring structure (description, Args, Returns) with efficient formatting. All content earns its place, though the Returns section is technically redundant given the presence of an output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists, the description appropriately focuses on parameter semantics and high-level return description. Covers the critical pagination pattern for a list operation, though error case documentation would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The Args section fully compensates for 0% schema description coverage by documenting all 4 parameters: category (with prefix note), member_type (valid values: page/subcat/file), limit (default 50, max 500), and continue_from (pagination token).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening line 'Get pages in a category' provides a specific verb and resource. While the name makes the distinction from siblings like get_page_categories_tool and list_categories_tool reasonably clear, the description itself does not explicitly differentiate these inverse operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance provided on when to use this tool versus alternatives like list_pages_tool or get_page_categories_tool. No mention of prerequisites (e.g., category existence) or when pagination is necessary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_file_info_toolA
Get file/image metadata from the wiki.
Args: filename: File name (with or without "File:" prefix)
Returns: File metadata including URL, size, dimensions, and MIME type
| Name | Required | Description | Default |
|---|---|---|---|
| filename | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full disclosure burden. It documents return values (URL, size, dimensions, MIME type) but omits safety traits (read-only status), error handling (file not found behavior), and authentication requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Uses efficient docstring format (Args/Returns) with zero filler. The opening sentence states purpose immediately, followed by precise parameter and return documentation. Every line provides essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Appropriately complete for a single-parameter metadata tool with output schema. The description documents return values comprehensively, though mentioning error cases (e.g., non-existent files) would strengthen completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, leaving the filename parameter undocumented in structured fields. The description fully compensates by clarifying it accepts 'File name (with or without "File:" prefix)', providing critical syntax semantics absent from the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') with clear resource ('file/image metadata') and scope ('from the wiki'). It effectively distinguishes from siblings like get_page_tool (content vs. metadata) and list_files_tool (retrieval vs. enumeration).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides implicit usage guidance by noting the filename accepts 'File:' prefix variations, but lacks explicit when-to-use guidance or comparison to alternatives like list_files_tool for discovery scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_page_categories_toolA
Get categories that a page belongs to.
Args: title: Page title limit: Maximum categories to return (default: 50, max: 500) show_hidden: Include hidden categories (default: False)
Returns: List of categories the page belongs to
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| title | Yes | ||
| show_hidden | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It successfully documents default values (50, false) and constraints (max: 500), and explains the domain-specific concept of 'hidden categories.' However, it lacks critical safety disclosure (read-only vs. destructive), error handling behavior (e.g., what happens if the page doesn't exist), and rate limiting information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description uses a structured Args/Returns format that efficiently conveys information without redundancy. The core purpose is front-loaded in the first sentence, followed by structured parameter documentation. The format is appropriate for the technical content, though the Returns section could specify the data structure format beyond 'List.'
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (3 parameters, simple return type), the description adequately covers the input parameters and return value despite the empty schema. It explains domain-specific concepts (hidden categories) and pagination constraints. However, it could improve by mentioning error cases (e.g., page not found) and explicitly confirming the read-only nature of the operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage (no property descriptions in the JSON schema), but the description fully compensates by documenting all three parameters: title is described as 'Page title,' limit includes default and maximum values (50, 500), and show_hidden explains the domain concept of hidden categories. This completely bridges the gap left by the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with the specific action 'Get categories that a page belongs to,' clearly defining the verb (Get), resource (categories), and scope (for a specific page). This distinctly differentiates it from sibling tools like get_category_members_tool (which would retrieve pages for a category, the inverse relationship) and list_categories_tool (which lists all categories globally).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It fails to mention that get_category_members_tool performs the inverse operation (category→pages), or clarify prerequisites such as whether the page must exist first. No 'when-not-to-use' or error conditions are described.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_page_html_toolB
Parse a wiki page to HTML.
Args: title: Page title to parse
Returns: Parsed HTML content, categories, links, and sections
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It usefully specifies that the return value includes not just HTML but also categories, links, and sections. However, it lacks operational context such as authentication requirements, rate limits, caching behavior, or whether this is a read-only operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description uses a clean docstring format with clear 'Args' and 'Returns' sections. It is appropriately front-loaded with the core action statement, and every line conveys essential information without redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (single parameter) and the existence of an output schema, the description provides a minimally complete picture by summarizing return values. However, for a tool with zero annotations and zero schema coverage, it should ideally include operational constraints or error handling guidance to be fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage. The description compensates by documenting the single 'title' parameter as 'Page title to parse', which provides basic semantics. However, it lacks detail on expected format (e.g., whether namespace prefixes are required, URL encoding, case sensitivity) given the lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool parses a wiki page to HTML, providing a specific verb, resource, and output format. However, it does not explicitly differentiate from sibling tools like 'get_page_tool' (likely raw content) or 'parse_wikitext_tool' (potentially different input/output), which could cause selection uncertainty.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'get_page_tool' or 'parse_wikitext_tool'. There are no prerequisites, error conditions, or explicit 'when-not-to-use' statements to aid agent selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_page_toolB
Get page wikitext content by title.
Args: title: Page title (e.g., "Main Page")
Returns: Page content, revision info, and metadata
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It adequately describes the return structure (content, revision info, metadata) but lacks operational details such as caching behavior, rate limits, permissions required, or what happens when a page doesn't exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately brief with three efficient lines. The Args/Returns structure is slightly redundant given the input schema and output schema exist, but it effectively front-loads the purpose and wastes no words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given this is a simple single-parameter read operation with an output schema present, the description is sufficiently complete. It confirms the return payload types without needing to elaborate on output schema details, though mentioning error handling would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage (title lacks a description field). The description compensates effectively by providing an example value ('Main Page') and clarifying that this refers to the page title, giving the agent sufficient context to construct valid inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action (Get) and resource (page wikitext content), and implicitly distinguishes from get_page_html_tool by specifying 'wikitext' rather than HTML. However, it does not explicitly contrast with siblings like search_tool or list_pages_tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like get_page_html_tool (for rendered content), search_tool (for finding pages), or list_pages_tool (for browsing). No prerequisites or error conditions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_site_info_toolA
Get wiki configuration and version info.
Returns: Site info including wiki name, version, base URL, and features
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description honestly states it returns site info including specific fields. No annotations exist, but it covers the basic behavior. Could mention read-only nature explicitly, but it's implied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no redundancy. Perfectly concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and presence of output schema, description is complete. It states what the tool does and the nature of the return data.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters, so baseline 4. Schema coverage is 100%, and description adds no extra parameter info as none needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool gets wiki configuration and version info, with a specific verb and resource. It distinctively differs from sibling tools which handle pages, files, users, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or alternatives mentioned, but the simple purpose implies usage for retrieving basic site info. Sibling context provides differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_user_info_toolA
Get user details from the wiki.
Args: username: Username to look up
Returns: User details including edit count, registration date, and groups
| Name | Required | Description | Default |
|---|---|---|---|
| username | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It successfully discloses return value structure ('edit count, registration date, and groups') which substitutes for the unseen output schema. However, missing error handling behavior (e.g., what happens if username doesn't exist) and auth requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Uses structured docstring format (Args/Returns) which is clear but slightly heavy for a single-parameter tool. Content is front-loaded with the main purpose in the first sentence. No redundant or wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Appropriate for a simple lookup tool with one required parameter. Since output schema exists (per context signals), the description's explanation of return values provides adequate completeness without over-specifying. Minor gap on error case handling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% (username property lacks description), but the description fully compensates by documenting the single parameter in the Args section ('Username to look up'). Complete semantic coverage for the input.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb-resource combination ('Get user details from the wiki') that clearly distinguishes this from sibling page/file/category tools like get_page_tool or get_file_info_tool. Scope is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Lacks explicit guidance on when to use this versus list_user_contributions_tool (which also returns user activity data) or search_tool. Usage is implied by the name and description but no alternatives or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_categories_toolB
List all categories on the wiki.
Args: prefix: Filter categories starting with this prefix limit: Maximum results (default: 50, max: 500) from_name: Start listing from this category (for pagination)
Returns: List of category names with metadata
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| prefix | No | ||
| from_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses pagination behavior (from_name) and default/max limits for the parameter. However, it lacks details on sorting order (alphabetical?), rate limits, or what specific 'metadata' is returned beyond the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Uses a structured Args/Returns format that is efficiently organized. No wasted words, though the docstring-style formatting is slightly mechanical rather than conversational. Front-loads the core purpose in the first sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the brief mention of 'metadata' in the return description is sufficient. Covers essential filtering and pagination parameters adequately for a list operation, though annotations would have provided additional safety context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates effectively by documenting all 3 parameters: prefix (filter logic), limit (with constraints default:50, max:500), and from_name (pagination purpose). This provides the semantic meaning entirely missing from the structured schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States 'List all categories on the wiki' with clear verb and resource. However, it does not explicitly distinguish from siblings like get_category_members_tool (which gets pages in a category) or get_page_categories_tool (which gets categories for a specific page), though the tool name helps clarify.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus get_category_members_tool or get_page_categories_tool. No mention of pagination strategy (e.g., 'use from_name when you need to fetch more than 500 results'). No prerequisites or constraints mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_files_toolA
List files on the wiki.
Args: prefix: Filter files starting with this prefix limit: Maximum results (default: 50, max: 500) mime_type: Filter by MIME type (e.g., "image/png") from_name: Start listing from this file (for pagination)
Returns: List of files with metadata
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| prefix | No | ||
| from_name | No | ||
| mime_type | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses pagination behavior via 'from_name' and return structure ('List of files with metadata'), but omits safety characteristics, rate limits, or what specific metadata is returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Uses structured Args/Returns format that is front-loaded and scannable. Slightly mechanical docstring style but zero redundancy; every line conveys parameter semantics or return type that the schema fails to provide.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists (per context signals) and all 4 parameters are documented in the description, the tool is sufficiently specified for invocation. Missing only behavioral edge cases (error conditions, permission failures) which would elevate it to completeness tier.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fully compensates by documenting all 4 parameters: 'prefix' (filter logic), 'limit' (default/max values), 'mime_type' (with example), and 'from_name' (pagination purpose). Excellent coverage given schema deficiency.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States clear verb-resource pair ('List files on the wiki') and distinguishes from page/category siblings by specifying 'files'. However, it fails to clarify when to use this versus 'get_file_info_tool' for retrieving specific file details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no guidance on when to prefer this tool over 'get_file_info_tool' or 'search_tool', nor does it mention prerequisites like authentication requirements or visibility permissions for wiki files.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_namespaces_toolA
List all namespaces on the wiki.
Returns: List of namespaces with IDs, names, and canonical names
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits beyond the return format (IDs, names, canonical names). It omits potential details like permission requirements, caching, or inclusion of custom namespaces.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the primary action, and contains no unnecessary information. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, list operation) and the presence of an output schema, the description sufficiently covers the return structure. It is complete for an AI agent to understand usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameters, and the description correctly reflects this. Per guidelines, with 0 parameters, baseline is 4, and no additional param info is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List all namespaces on the wiki', using a specific verb and resource. It distinguishes from sibling list tools (e.g., list_pages_tool, list_categories_tool) by targeting a unique resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. While the tool's purpose is self-explanatory among siblings, the description lacks explicit context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_pages_toolA
List wiki pages with optional prefix filter.
Args: prefix: Filter pages starting with this prefix namespace: Namespace to list (0=Main, default: 0) limit: Maximum results (default: 50, max: 500) from_title: Start listing from this title (for pagination)
Returns: List of page titles with metadata
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| prefix | No | ||
| namespace | No | ||
| from_title | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but description compensates by documenting pagination behavior ('from_title' for pagination) and return structure ('List of page titles with metadata'). Includes constraint documentation (limit max: 500) which provides behavioral boundaries.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Uses structured docstring format (Args/Returns) with zero redundancy. Each sentence earns its place: first line states purpose, Args clarify semantics, Returns clarify output. Appropriate length for parameter complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 parameters with 0% schema coverage, the description successfully documents all inputs. Output schema exists (per context signals), so minimal return value description ('List of page titles with metadata') is sufficient. Missing only sorting order or rate limit details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the Args section comprehensively documents all 4 parameters: prefix semantics ('starting with'), namespace encoding ('0=Main'), limit constraints ('default: 50, max: 500'), and pagination purpose ('Start listing from this title'). Fully compensates for schema gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'List' and resource 'wiki pages' with scope 'optional prefix filter'. Distinguishes from singular 'get_page_tool' but does not explicitly differentiate from 'search_tool' or 'get_category_members_tool' which also return page lists.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this versus 'search_tool' (full-text search) or 'get_category_members_tool' (category-based listing). No mention of prerequisites or workflow integration despite pagination support being documented.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_recent_changes_toolA
List recent edits on the wiki.
Args: namespace: Filter by namespace (default: all namespaces) limit: Maximum results (default: 50, max: 500) tag: Filter by tag name change_type: Filter by type: edit, new, log, categorize, external from_timestamp: Start from this timestamp (ISO 8601)
Returns: List of recent changes with user, title, timestamp, and comment
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | ||
| limit | No | ||
| namespace | No | ||
| change_type | No | ||
| from_timestamp | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the return structure ('List of recent changes with user, title, timestamp, and comment') but fails to state that this is a read-only operation, safe to call, or whether results are cached/real-time.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with clear Args and Returns sections. Information is front-loaded with the purpose statement. The formatting is slightly formal but efficient, with no redundant sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the 0% schema coverage and lack of annotations, the description adequately covers all parameters and return values. For a read-only listing tool, this is reasonably complete, though it could benefit from a note on pagination behavior or result ordering.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fully compensates by documenting all 5 parameters. It provides crucial constraints missing from the schema: limit max (500) and default (50), change_type enum values (edit, new, log, categorize, external), and timestamp format (ISO 8601).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List recent edits on the wiki' with a specific verb and resource. It implicitly distinguishes from siblings like list_pages_tool (static pages) and list_user_contributions_tool (user-scoped), though it could explicitly clarify when to use this versus those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance provided on when to use this tool versus siblings like list_user_contributions_tool or get_page_tool (for page history). No prerequisites, rate limit warnings, or filtering recommendations are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_user_contributions_toolA
List edits by a user.
Args: username: Username whose contributions to list namespace: Filter by namespace (default: all) limit: Maximum results (default: 50, max: 500) from_timestamp: Start from this timestamp (ISO 8601)
Returns: List of user contributions with titles, timestamps, and comments
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| username | Yes | ||
| namespace | No | ||
| from_timestamp | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It successfully documents the return structure (titles, timestamps, comments) and timestamp format (ISO 8601). However, it fails to disclose safety characteristics (read-only status), pagination behavior beyond the limit parameter, or error handling for invalid usernames.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description uses a clear Args/Returns structure that front-loads the purpose. While the docstring-style format is slightly verbose, every line earns its place by compensating for the empty schema. No redundant or filler content is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite zero schema annotations and no readOnlyHint annotations, the description provides sufficient context for invocation. It documents all parameters and summarizes the output structure (noting that an output schema exists per context signals). It adequately covers the tool's functionality without significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Given 0% schema description coverage, the Args section fully compensates by documenting all four parameters. It provides meaningful descriptions including defaults (namespace: all, limit: 50), constraints (max: 500), and format specifications (ISO 8601) that are absent from the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence 'List edits by a user' provides a clear verb (List) and resource (edits/contributions). It effectively distinguishes from siblings like list_recent_changes_tool (time-based) and get_user_info_tool (metadata), though it doesn't explicitly name these alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like list_recent_changes_tool (for recent wiki activity) or get_page_tool (for specific page history). It lacks prerequisites or conditions that would help an agent decide between these related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_page_toolB
Move (rename) a wiki page. Requires authentication.
Args: from_title: Current page title to_title: New page title reason: Reason for move (default: empty) move_talk: Also move the talk page (default: True) no_redirect: Do not create a redirect (default: False)
Returns: Move result with old and new titles
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | ||
| to_title | Yes | ||
| move_talk | No | ||
| from_title | Yes | ||
| no_redirect | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses authentication requirements, side effects (moving talk pages), and redirect behavior. However, it fails to mention destructive implications (the move permanently changes URLs), idempotency, error conditions (e.g., target exists), or rate limiting.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description uses a clear structured format with explicit 'Args:' and 'Returns:' sections. While the Args list is lengthy due to 5 parameters needing documentation, every element serves a necessary purpose given the lack of schema descriptions. No redundant or filler text is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the brief return value description is sufficient. The description covers the essential authentication and functional parameters for a move operation. However, for a mutation tool with no annotations, it should disclose error handling, permission requirements beyond basic auth, or collision behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates adequately by documenting all 5 parameters in the Args section: from_title, to_title, reason, move_talk, and no_redirect. Each includes semantic meaning and default values, effectively bridging the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'Move (rename) a wiki page' with specific verb and resource. The parenthetical '(rename)' helpfully clarifies wiki terminology, implicitly distinguishing it from content editing (edit_page_tool) or deletion (delete_page_tool). However, it lacks explicit differentiation from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions 'Requires authentication' as a prerequisite but provides no guidance on when to use this tool versus alternatives like edit_page_tool or delete_page_tool. It does not describe prerequisites (e.g., page must exist) or when moving is preferred over other operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
parse_wikitext_toolA
Parse raw wikitext to HTML.
Args: wikitext: Raw wikitext content to parse title: Context page title for template resolution (optional)
Returns: Parsed HTML output
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | ||
| wikitext | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It adds valuable context that templates are resolved during parsing (mentioned in the title parameter description) and identifies the output format as HTML, but omits whether the operation is read-only, idempotent, or has side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The Args/Returns structure is appropriate given the lack of schema descriptions, though slightly formal. Information is front-loaded with the core purpose in the first sentence, and there is no extraneous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a straightforward transformation tool with two simple parameters and an output schema (implied by the Returns documentation), the description adequately covers the necessary information. The explanation of template resolution adds necessary domain context for wiki operations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description effectively compensates by documenting both parameters: it explains that 'wikitext' is the raw content to parse and that 'title' provides context for template resolution, including the optional nature of the latter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Parse') and resource ('raw wikitext') with the output format ('HTML'), effectively distinguishing it from sibling get_page_html_tool which retrieves existing rendered pages rather than parsing raw content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
While the description implies this tool transforms raw wikitext rather than fetching existing pages, it lacks explicit guidance on when to use this versus get_page_html_tool or whether this is appropriate for previewing content before saving with create_page_tool/edit_page_tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_toolA
Full-text search across the wiki.
Args: query: Search query string namespace: Namespace to search in (0=Main, default: 0) limit: Maximum results to return (default: 10, max: 50)
Returns: Search results with titles, snippets, and metadata
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | ||
| namespace | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It usefully describes return contents (titles, snippets, metadata) but omits safety declarations (read-only status), rate limits, or search index freshness that would help an agent understand operational constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose statement followed by structured Args and Returns sections. Zero waste — every line provides essential information about parameters or output shape that is missing from the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complete documentation for a 3-parameter search tool with simple types. Acknowledges output schema existence by summarizing return structure. Slight gap on behavioral edge cases, but adequate given the tool's straightforward read-only nature.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the Args section fully compensates by documenting all three parameters: query semantics, namespace mapping (0=Main), and limit constraints (default: 10, max: 50). Excellent compensation for schema deficiencies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States 'Full-text search across the wiki' — specific verb (search), clear resource (wiki), and 'full-text' distinguishes it from sibling get_page_tool (direct retrieval) and list_pages_tool (enumeration).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The term 'Full-text search' implies keyword-based lookup versus exact page retrieval, but there is no explicit guidance on when to choose this over get_page_tool or list_pages_tool, nor any mention of prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
17 tool updates
v0.1.4- Changed
create_page_tool3 fields changed- removed
Input schema / properties / content / descriptionRemoved value: -"Page wikitext content" - removed
Input schema / properties / summary / descriptionRemoved value: -"Edit summary (default: empty)" - removed
Input schema / properties / title / descriptionRemoved value: -"Page title"
- Changed
delete_page_tool2 fields changed- removed
Input schema / properties / reason / descriptionRemoved value: -"Reason for deletion (default: empty)" - removed
Input schema / properties / title / descriptionRemoved value: -"Page title to delete"
- Changed
edit_page_tool4 fields changed- removed
Input schema / properties / content / descriptionRemoved value: -"New page wikitext content" - removed
Input schema / properties / minor / descriptionRemoved value: -"Mark as minor edit (default: False)" - removed
Input schema / properties / summary / descriptionRemoved value: -"Edit summary (default: empty)" - removed
Input schema / properties / title / descriptionRemoved value: -"Page title"
- Changed
get_category_members_tool4 fields changed- removed
Input schema / properties / category / descriptionRemoved value: -"Category name (with or without \"Category:\" prefix)" - removed
Input schema / properties / continue_from / descriptionRemoved value: -"Continue token for pagination" - removed
Input schema / properties / limit / descriptionRemoved value: -"Maximum results (default: 50, max: 500)" - removed
Input schema / properties / member_type / descriptionRemoved value: -"Filter by type: page, subcat, file (default: all)"
- Changed
get_file_info_tool1 field changed- removed
Input schema / properties / filename / descriptionRemoved value: -"File name (with or without \"File:\" prefix)"
- Changed
get_page_categories_tool3 fields changed- removed
Input schema / properties / limit / descriptionRemoved value: -"Maximum categories to return (default: 50, max: 500)" - removed
Input schema / properties / show_hidden / descriptionRemoved value: -"Include hidden categories (default: False)" - removed
Input schema / properties / title / descriptionRemoved value: -"Page title"
- Changed
get_page_html_tool1 field changed- removed
Input schema / properties / title / descriptionRemoved value: -"Page title to parse"
- Changed
get_page_tool1 field changed- removed
Input schema / properties / title / descriptionRemoved value: -"Page title (e.g., \"Main Page\")"
- Changed
get_user_info_tool1 field changed- removed
Input schema / properties / username / descriptionRemoved value: -"Username to look up"
- Changed
list_categories_tool3 fields changed- removed
Input schema / properties / from_name / descriptionRemoved value: -"Start listing from this category (for pagination)" - removed
Input schema / properties / limit / descriptionRemoved value: -"Maximum results (default: 50, max: 500)" - removed
Input schema / properties / prefix / descriptionRemoved value: -"Filter categories starting with this prefix"
- Changed
list_files_tool4 fields changed- removed
Input schema / properties / from_name / descriptionRemoved value: -"Start listing from this file (for pagination)" - removed
Input schema / properties / limit / descriptionRemoved value: -"Maximum results (default: 50, max: 500)" - removed
Input schema / properties / mime_type / descriptionRemoved value: -"Filter by MIME type (e.g., \"image/png\")" - removed
Input schema / properties / prefix / descriptionRemoved value: -"Filter files starting with this prefix"
- Changed
list_pages_tool4 fields changed- removed
Input schema / properties / from_title / descriptionRemoved value: -"Start listing from this title (for pagination)" - removed
Input schema / properties / limit / descriptionRemoved value: -"Maximum results (default: 50, max: 500)" - removed
Input schema / properties / namespace / descriptionRemoved value: -"Namespace to list (0=Main, default: 0)" - removed
Input schema / properties / prefix / descriptionRemoved value: -"Filter pages starting with this prefix"
- Changed
list_recent_changes_tool5 fields changed- removed
Input schema / properties / change_type / descriptionRemoved value: -"Filter by type: edit, new, log, categorize, external" - removed
Input schema / properties / from_timestamp / descriptionRemoved value: -"Start from this timestamp (ISO 8601)" - removed
Input schema / properties / limit / descriptionRemoved value: -"Maximum results (default: 50, max: 500)" - removed
Input schema / properties / namespace / descriptionRemoved value: -"Filter by namespace (default: all namespaces)" - removed
Input schema / properties / tag / descriptionRemoved value: -"Filter by tag name"
- Changed
list_user_contributions_tool4 fields changed- removed
Input schema / properties / from_timestamp / descriptionRemoved value: -"Start from this timestamp (ISO 8601)" - removed
Input schema / properties / limit / descriptionRemoved value: -"Maximum results (default: 50, max: 500)" - removed
Input schema / properties / namespace / descriptionRemoved value: -"Filter by namespace (default: all)" - removed
Input schema / properties / username / descriptionRemoved value: -"Username whose contributions to list"
- Changed
move_page_tool5 fields changed- removed
Input schema / properties / from_title / descriptionRemoved value: -"Current page title" - removed
Input schema / properties / move_talk / descriptionRemoved value: -"Also move the talk page (default: True)" - removed
Input schema / properties / no_redirect / descriptionRemoved value: -"Do not create a redirect (default: False)" - removed
Input schema / properties / reason / descriptionRemoved value: -"Reason for move (default: empty)" - removed
Input schema / properties / to_title / descriptionRemoved value: -"New page title"
- Changed
parse_wikitext_tool2 fields changed- removed
Input schema / properties / title / descriptionRemoved value: -"Context page title for template resolution (optional)" - removed
Input schema / properties / wikitext / descriptionRemoved value: -"Raw wikitext content to parse"
- Changed
search_tool3 fields changed- removed
Input schema / properties / limit / descriptionRemoved value: -"Maximum results to return (default: 10, max: 50)" - removed
Input schema / properties / namespace / descriptionRemoved value: -"Namespace to search in (0=Main, default: 0)" - removed
Input schema / properties / query / descriptionRemoved value: -"Search query string"
17 tool updates
- Changed
create_page_tool3 fields changed- added
Input schema / properties / content / descriptionAdded value: +"Page wikitext content" - added
Input schema / properties / summary / descriptionAdded value: +"Edit summary (default: empty)" - added
Input schema / properties / title / descriptionAdded value: +"Page title"
- Changed
delete_page_tool2 fields changed- added
Input schema / properties / reason / descriptionAdded value: +"Reason for deletion (default: empty)" - added
Input schema / properties / title / descriptionAdded value: +"Page title to delete"
- Changed
edit_page_tool4 fields changed- added
Input schema / properties / content / descriptionAdded value: +"New page wikitext content" - added
Input schema / properties / minor / descriptionAdded value: +"Mark as minor edit (default: False)" - added
Input schema / properties / summary / descriptionAdded value: +"Edit summary (default: empty)" - added
Input schema / properties / title / descriptionAdded value: +"Page title"
- Changed
get_category_members_tool4 fields changed- added
Input schema / properties / category / descriptionAdded value: +"Category name (with or without \"Category:\" prefix)" - added
Input schema / properties / continue_from / descriptionAdded value: +"Continue token for pagination" - added
Input schema / properties / limit / descriptionAdded value: +"Maximum results (default: 50, max: 500)" - added
Input schema / properties / member_type / descriptionAdded value: +"Filter by type: page, subcat, file (default: all)"
- Changed
get_file_info_tool1 field changed- added
Input schema / properties / filename / descriptionAdded value: +"File name (with or without \"File:\" prefix)"
- Changed
get_page_categories_tool3 fields changed- added
Input schema / properties / limit / descriptionAdded value: +"Maximum categories to return (default: 50, max: 500)" - added
Input schema / properties / show_hidden / descriptionAdded value: +"Include hidden categories (default: False)" - added
Input schema / properties / title / descriptionAdded value: +"Page title"
- Changed
get_page_html_tool1 field changed- added
Input schema / properties / title / descriptionAdded value: +"Page title to parse"
- Changed
get_page_tool1 field changed- added
Input schema / properties / title / descriptionAdded value: +"Page title (e.g., \"Main Page\")"
- Changed
get_user_info_tool1 field changed- added
Input schema / properties / username / descriptionAdded value: +"Username to look up"
- Changed
list_categories_tool3 fields changed- added
Input schema / properties / from_name / descriptionAdded value: +"Start listing from this category (for pagination)" - added
Input schema / properties / limit / descriptionAdded value: +"Maximum results (default: 50, max: 500)" - added
Input schema / properties / prefix / descriptionAdded value: +"Filter categories starting with this prefix"
- Changed
list_files_tool4 fields changed- added
Input schema / properties / from_name / descriptionAdded value: +"Start listing from this file (for pagination)" - added
Input schema / properties / limit / descriptionAdded value: +"Maximum results (default: 50, max: 500)" - added
Input schema / properties / mime_type / descriptionAdded value: +"Filter by MIME type (e.g., \"image/png\")" - added
Input schema / properties / prefix / descriptionAdded value: +"Filter files starting with this prefix"
- Changed
list_pages_tool4 fields changed- added
Input schema / properties / from_title / descriptionAdded value: +"Start listing from this title (for pagination)" - added
Input schema / properties / limit / descriptionAdded value: +"Maximum results (default: 50, max: 500)" - added
Input schema / properties / namespace / descriptionAdded value: +"Namespace to list (0=Main, default: 0)" - added
Input schema / properties / prefix / descriptionAdded value: +"Filter pages starting with this prefix"
- Changed
list_recent_changes_tool5 fields changed- added
Input schema / properties / change_type / descriptionAdded value: +"Filter by type: edit, new, log, categorize, external" - added
Input schema / properties / from_timestamp / descriptionAdded value: +"Start from this timestamp (ISO 8601)" - added
Input schema / properties / limit / descriptionAdded value: +"Maximum results (default: 50, max: 500)" - added
Input schema / properties / namespace / descriptionAdded value: +"Filter by namespace (default: all namespaces)" - added
Input schema / properties / tag / descriptionAdded value: +"Filter by tag name"
- Changed
list_user_contributions_tool4 fields changed- added
Input schema / properties / from_timestamp / descriptionAdded value: +"Start from this timestamp (ISO 8601)" - added
Input schema / properties / limit / descriptionAdded value: +"Maximum results (default: 50, max: 500)" - added
Input schema / properties / namespace / descriptionAdded value: +"Filter by namespace (default: all)" - added
Input schema / properties / username / descriptionAdded value: +"Username whose contributions to list"
- Changed
move_page_tool5 fields changed- added
Input schema / properties / from_title / descriptionAdded value: +"Current page title" - added
Input schema / properties / move_talk / descriptionAdded value: +"Also move the talk page (default: True)" - added
Input schema / properties / no_redirect / descriptionAdded value: +"Do not create a redirect (default: False)" - added
Input schema / properties / reason / descriptionAdded value: +"Reason for move (default: empty)" - added
Input schema / properties / to_title / descriptionAdded value: +"New page title"
- Changed
parse_wikitext_tool2 fields changed- added
Input schema / properties / title / descriptionAdded value: +"Context page title for template resolution (optional)" - added
Input schema / properties / wikitext / descriptionAdded value: +"Raw wikitext content to parse"
- Changed
search_tool3 fields changed- added
Input schema / properties / limit / descriptionAdded value: +"Maximum results to return (default: 10, max: 50)" - added
Input schema / properties / namespace / descriptionAdded value: +"Namespace to search in (0=Main, default: 0)" - added
Input schema / properties / query / descriptionAdded value: +"Search query string"
19 tool updates
v0.1.3- First observed
create_page_tool - First observed
delete_page_tool - First observed
edit_page_tool - First observed
get_category_members_tool - First observed
get_file_info_tool - First observed
get_page_categories_tool - First observed
get_page_html_tool - First observed
get_page_tool - First observed
get_site_info_tool - First observed
get_user_info_tool - First observed
list_categories_tool - First observed
list_files_tool - First observed
list_namespaces_tool - First observed
list_pages_tool - First observed
list_recent_changes_tool - First observed
list_user_contributions_tool - First observed
move_page_tool - First observed
parse_wikitext_tool - First observed
search_tool
TDQS
Scored across 19 tools
The tool set cleanly separates page retrieval, HTML parsing, wikitext parsing, category traversal, user queries, file queries, and site metadata. Even similar-sounding page/HTML tools have clearly different inputs and outputs.
All 19 tools use snake_case with a uniform _tool suffix and mostly verb_noun construction (list_pages_tool, create_page_tool, get_user_info_tool). Minor deviation is search_tool, but it remains readable and consistent with the suffix convention.
At 19 tools, the server is slightly above the ideal 3–15 range but not excessive given MediaWiki's breadth; each tool maps to a meaningful read/write operation. It could be trimmed by folding some read variants, but it remains manageable.
The set covers page CRUD and move, search, categories, recent changes, users, files, namespaces, and site info. Minor gaps include page revision/history retrieval and file upload/delete, but core read/write workflows are well supported.
Maintenance
Related MCP Connectors
Read-only MCP for the Eco game wiki: search, Markdown pages, and wiki_* lookups. No keys, no writes.
Connect to your MediaWiki using simple credentials and manage content without OAuth. Search, read,…
- FlowdexOAuthdk.flowdex
Read and write your team's shared, AI-readable wiki from any MCP client.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceAn MCP server for Wiki.js projects that enables full-text search, page retrieval, and page management capabilities. It allows LLMs to interact with wiki content through specialized tools for searching, listing, and creating pages.-
- AlicenseAqualityAmaintenanceMCP server for MediaWiki wikis. Search, read, edit, and manage wiki content from AI assistants. Includes formatting, link checking, revision history, and markdown conversion.4319MIT
- AlicenseAqualityCmaintenanceAn MCP server that enables AI agents to interact with Wiki.js as a knowledge base through a comprehensive set of 29 tools for content retrieval and management. It supports full-text search, page versioning, and asset browsing with optional write operations secured by safety gates.2928 npm8MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that enables full management of WikiJS instances, supporting operations like page creation, searching, and updating. It also provides tools for knowledge graph exploration, content summarization, and retrieval of wiki statistics.24 npmMIT