Skip to main content
Glama
crunchtools

mcp-mediawiki-crunchtools

by crunchtools

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 mcp-mediawiki-crunchtools

pip

pip install mcp-mediawiki-crunchtools
mcp-mediawiki-crunchtools

Container

podman run -e MEDIAWIKI_URL=https://en.wikipedia.org/w/ \
  quay.io/crunchtools/mcp-mediawiki

Related 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-crunchtools

With 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-crunchtools

HTTP 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.0

Claude Code config:

{"type": "http", "url": "http://127.0.0.1:8016/mcp"}

Environment Variables

Variable

Required

Description

MEDIAWIKI_URL

Yes

Wiki base URL (e.g., https://en.wikipedia.org/w/)

MEDIAWIKI_USERNAME

No

Bot/user account for write operations

MEDIAWIKI_PASSWORD

No

Bot/user password

MEDIAWIKI_HTTP_USER

No

HTTP Basic Auth username (.htaccess)

MEDIAWIKI_HTTP_PASS

No

HTTP Basic Auth password

Tools (19)

Category

Tool

Description

Pages

search

Full-text search across wiki

Pages

get_page

Get page wikitext content

Pages

get_page_html

Parse page to HTML

Pages

list_pages

List pages with prefix filter

Pages

create_page

Create a new page

Pages

edit_page

Edit an existing page

Pages

delete_page

Delete a page

Pages

move_page

Move/rename a page

Categories

list_categories

List all categories

Categories

get_category_members

Get pages in a category

Categories

get_page_categories

Get categories for a page

Recent Changes

list_recent_changes

List recent edits

Parsing

parse_wikitext

Parse raw wikitext to HTML

Site Info

get_site_info

Get wiki config and version

Site Info

list_namespaces

List wiki namespaces

Users

get_user_info

Get user details

Users

list_user_contributions

List user edits

Files

get_file_info

Get file/image metadata

Files

list_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 tools
create_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

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
contentYes
summaryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

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.

Conciseness3/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
reasonNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
minorNo
titleYes
contentYes
summaryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
categoryYes
member_typeNo
continue_fromNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters5/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
titleYes
show_hiddenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
prefixNo
from_nameNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
prefixNo
from_nameNo
mime_typeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters5/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
prefixNo
namespaceNo
from_titleNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters5/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
tagNo
limitNo
namespaceNo
change_typeNo
from_timestampNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters5/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
usernameYes
namespaceNo
from_timestampNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters5/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNo
to_titleYes
move_talkNo
from_titleYes
no_redirectNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNo
wikitextYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYes
namespaceNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

  1. 17 tool updatesv0.1.4
    • Changedcreate_page_tool3 fields changed
      • removedInput schema / properties / content / description
        Removed value: -"Page wikitext content"
      • removedInput schema / properties / summary / description
        Removed value: -"Edit summary (default: empty)"
      • removedInput schema / properties / title / description
        Removed value: -"Page title"
    • Changeddelete_page_tool2 fields changed
      • removedInput schema / properties / reason / description
        Removed value: -"Reason for deletion (default: empty)"
      • removedInput schema / properties / title / description
        Removed value: -"Page title to delete"
    • Changededit_page_tool4 fields changed
      • removedInput schema / properties / content / description
        Removed value: -"New page wikitext content"
      • removedInput schema / properties / minor / description
        Removed value: -"Mark as minor edit (default: False)"
      • removedInput schema / properties / summary / description
        Removed value: -"Edit summary (default: empty)"
      • removedInput schema / properties / title / description
        Removed value: -"Page title"
    • Changedget_category_members_tool4 fields changed
      • removedInput schema / properties / category / description
        Removed value: -"Category name (with or without \"Category:\" prefix)"
      • removedInput schema / properties / continue_from / description
        Removed value: -"Continue token for pagination"
      • removedInput schema / properties / limit / description
        Removed value: -"Maximum results (default: 50, max: 500)"
      • removedInput schema / properties / member_type / description
        Removed value: -"Filter by type: page, subcat, file (default: all)"
    • Changedget_file_info_tool1 field changed
      • removedInput schema / properties / filename / description
        Removed value: -"File name (with or without \"File:\" prefix)"
    • Changedget_page_categories_tool3 fields changed
      • removedInput schema / properties / limit / description
        Removed value: -"Maximum categories to return (default: 50, max: 500)"
      • removedInput schema / properties / show_hidden / description
        Removed value: -"Include hidden categories (default: False)"
      • removedInput schema / properties / title / description
        Removed value: -"Page title"
    • Changedget_page_html_tool1 field changed
      • removedInput schema / properties / title / description
        Removed value: -"Page title to parse"
    • Changedget_page_tool1 field changed
      • removedInput schema / properties / title / description
        Removed value: -"Page title (e.g., \"Main Page\")"
    • Changedget_user_info_tool1 field changed
      • removedInput schema / properties / username / description
        Removed value: -"Username to look up"
    • Changedlist_categories_tool3 fields changed
      • removedInput schema / properties / from_name / description
        Removed value: -"Start listing from this category (for pagination)"
      • removedInput schema / properties / limit / description
        Removed value: -"Maximum results (default: 50, max: 500)"
      • removedInput schema / properties / prefix / description
        Removed value: -"Filter categories starting with this prefix"
    • Changedlist_files_tool4 fields changed
      • removedInput schema / properties / from_name / description
        Removed value: -"Start listing from this file (for pagination)"
      • removedInput schema / properties / limit / description
        Removed value: -"Maximum results (default: 50, max: 500)"
      • removedInput schema / properties / mime_type / description
        Removed value: -"Filter by MIME type (e.g., \"image/png\")"
      • removedInput schema / properties / prefix / description
        Removed value: -"Filter files starting with this prefix"
    • Changedlist_pages_tool4 fields changed
      • removedInput schema / properties / from_title / description
        Removed value: -"Start listing from this title (for pagination)"
      • removedInput schema / properties / limit / description
        Removed value: -"Maximum results (default: 50, max: 500)"
      • removedInput schema / properties / namespace / description
        Removed value: -"Namespace to list (0=Main, default: 0)"
      • removedInput schema / properties / prefix / description
        Removed value: -"Filter pages starting with this prefix"
    • Changedlist_recent_changes_tool5 fields changed
      • removedInput schema / properties / change_type / description
        Removed value: -"Filter by type: edit, new, log, categorize, external"
      • removedInput schema / properties / from_timestamp / description
        Removed value: -"Start from this timestamp (ISO 8601)"
      • removedInput schema / properties / limit / description
        Removed value: -"Maximum results (default: 50, max: 500)"
      • removedInput schema / properties / namespace / description
        Removed value: -"Filter by namespace (default: all namespaces)"
      • removedInput schema / properties / tag / description
        Removed value: -"Filter by tag name"
    • Changedlist_user_contributions_tool4 fields changed
      • removedInput schema / properties / from_timestamp / description
        Removed value: -"Start from this timestamp (ISO 8601)"
      • removedInput schema / properties / limit / description
        Removed value: -"Maximum results (default: 50, max: 500)"
      • removedInput schema / properties / namespace / description
        Removed value: -"Filter by namespace (default: all)"
      • removedInput schema / properties / username / description
        Removed value: -"Username whose contributions to list"
    • Changedmove_page_tool5 fields changed
      • removedInput schema / properties / from_title / description
        Removed value: -"Current page title"
      • removedInput schema / properties / move_talk / description
        Removed value: -"Also move the talk page (default: True)"
      • removedInput schema / properties / no_redirect / description
        Removed value: -"Do not create a redirect (default: False)"
      • removedInput schema / properties / reason / description
        Removed value: -"Reason for move (default: empty)"
      • removedInput schema / properties / to_title / description
        Removed value: -"New page title"
    • Changedparse_wikitext_tool2 fields changed
      • removedInput schema / properties / title / description
        Removed value: -"Context page title for template resolution (optional)"
      • removedInput schema / properties / wikitext / description
        Removed value: -"Raw wikitext content to parse"
    • Changedsearch_tool3 fields changed
      • removedInput schema / properties / limit / description
        Removed value: -"Maximum results to return (default: 10, max: 50)"
      • removedInput schema / properties / namespace / description
        Removed value: -"Namespace to search in (0=Main, default: 0)"
      • removedInput schema / properties / query / description
        Removed value: -"Search query string"
  2. 17 tool updates
    • Changedcreate_page_tool3 fields changed
      • addedInput schema / properties / content / description
        Added value: +"Page wikitext content"
      • addedInput schema / properties / summary / description
        Added value: +"Edit summary (default: empty)"
      • addedInput schema / properties / title / description
        Added value: +"Page title"
    • Changeddelete_page_tool2 fields changed
      • addedInput schema / properties / reason / description
        Added value: +"Reason for deletion (default: empty)"
      • addedInput schema / properties / title / description
        Added value: +"Page title to delete"
    • Changededit_page_tool4 fields changed
      • addedInput schema / properties / content / description
        Added value: +"New page wikitext content"
      • addedInput schema / properties / minor / description
        Added value: +"Mark as minor edit (default: False)"
      • addedInput schema / properties / summary / description
        Added value: +"Edit summary (default: empty)"
      • addedInput schema / properties / title / description
        Added value: +"Page title"
    • Changedget_category_members_tool4 fields changed
      • addedInput schema / properties / category / description
        Added value: +"Category name (with or without \"Category:\" prefix)"
      • addedInput schema / properties / continue_from / description
        Added value: +"Continue token for pagination"
      • addedInput schema / properties / limit / description
        Added value: +"Maximum results (default: 50, max: 500)"
      • addedInput schema / properties / member_type / description
        Added value: +"Filter by type: page, subcat, file (default: all)"
    • Changedget_file_info_tool1 field changed
      • addedInput schema / properties / filename / description
        Added value: +"File name (with or without \"File:\" prefix)"
    • Changedget_page_categories_tool3 fields changed
      • addedInput schema / properties / limit / description
        Added value: +"Maximum categories to return (default: 50, max: 500)"
      • addedInput schema / properties / show_hidden / description
        Added value: +"Include hidden categories (default: False)"
      • addedInput schema / properties / title / description
        Added value: +"Page title"
    • Changedget_page_html_tool1 field changed
      • addedInput schema / properties / title / description
        Added value: +"Page title to parse"
    • Changedget_page_tool1 field changed
      • addedInput schema / properties / title / description
        Added value: +"Page title (e.g., \"Main Page\")"
    • Changedget_user_info_tool1 field changed
      • addedInput schema / properties / username / description
        Added value: +"Username to look up"
    • Changedlist_categories_tool3 fields changed
      • addedInput schema / properties / from_name / description
        Added value: +"Start listing from this category (for pagination)"
      • addedInput schema / properties / limit / description
        Added value: +"Maximum results (default: 50, max: 500)"
      • addedInput schema / properties / prefix / description
        Added value: +"Filter categories starting with this prefix"
    • Changedlist_files_tool4 fields changed
      • addedInput schema / properties / from_name / description
        Added value: +"Start listing from this file (for pagination)"
      • addedInput schema / properties / limit / description
        Added value: +"Maximum results (default: 50, max: 500)"
      • addedInput schema / properties / mime_type / description
        Added value: +"Filter by MIME type (e.g., \"image/png\")"
      • addedInput schema / properties / prefix / description
        Added value: +"Filter files starting with this prefix"
    • Changedlist_pages_tool4 fields changed
      • addedInput schema / properties / from_title / description
        Added value: +"Start listing from this title (for pagination)"
      • addedInput schema / properties / limit / description
        Added value: +"Maximum results (default: 50, max: 500)"
      • addedInput schema / properties / namespace / description
        Added value: +"Namespace to list (0=Main, default: 0)"
      • addedInput schema / properties / prefix / description
        Added value: +"Filter pages starting with this prefix"
    • Changedlist_recent_changes_tool5 fields changed
      • addedInput schema / properties / change_type / description
        Added value: +"Filter by type: edit, new, log, categorize, external"
      • addedInput schema / properties / from_timestamp / description
        Added value: +"Start from this timestamp (ISO 8601)"
      • addedInput schema / properties / limit / description
        Added value: +"Maximum results (default: 50, max: 500)"
      • addedInput schema / properties / namespace / description
        Added value: +"Filter by namespace (default: all namespaces)"
      • addedInput schema / properties / tag / description
        Added value: +"Filter by tag name"
    • Changedlist_user_contributions_tool4 fields changed
      • addedInput schema / properties / from_timestamp / description
        Added value: +"Start from this timestamp (ISO 8601)"
      • addedInput schema / properties / limit / description
        Added value: +"Maximum results (default: 50, max: 500)"
      • addedInput schema / properties / namespace / description
        Added value: +"Filter by namespace (default: all)"
      • addedInput schema / properties / username / description
        Added value: +"Username whose contributions to list"
    • Changedmove_page_tool5 fields changed
      • addedInput schema / properties / from_title / description
        Added value: +"Current page title"
      • addedInput schema / properties / move_talk / description
        Added value: +"Also move the talk page (default: True)"
      • addedInput schema / properties / no_redirect / description
        Added value: +"Do not create a redirect (default: False)"
      • addedInput schema / properties / reason / description
        Added value: +"Reason for move (default: empty)"
      • addedInput schema / properties / to_title / description
        Added value: +"New page title"
    • Changedparse_wikitext_tool2 fields changed
      • addedInput schema / properties / title / description
        Added value: +"Context page title for template resolution (optional)"
      • addedInput schema / properties / wikitext / description
        Added value: +"Raw wikitext content to parse"
    • Changedsearch_tool3 fields changed
      • addedInput schema / properties / limit / description
        Added value: +"Maximum results to return (default: 10, max: 50)"
      • addedInput schema / properties / namespace / description
        Added value: +"Namespace to search in (0=Main, default: 0)"
      • addedInput schema / properties / query / description
        Added value: +"Search query string"
  3. 19 tool updatesv0.1.3
    • First observedcreate_page_tool
    • First observeddelete_page_tool
    • First observededit_page_tool
    • First observedget_category_members_tool
    • First observedget_file_info_tool
    • First observedget_page_categories_tool
    • First observedget_page_html_tool
    • First observedget_page_tool
    • First observedget_site_info_tool
    • First observedget_user_info_tool
    • First observedlist_categories_tool
    • First observedlist_files_tool
    • First observedlist_namespaces_tool
    • First observedlist_pages_tool
    • First observedlist_recent_changes_tool
    • First observedlist_user_contributions_tool
    • First observedmove_page_tool
    • First observedparse_wikitext_tool
    • First observedsearch_tool

TDQS

A3.8/5.0

Scored across 19 tools

Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count4/5

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.

Completeness4/5

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

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    An 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.
    -
  • A
    license
    A
    quality
    C
    maintenance
    An 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.
    29
    28 npm
    8
    MIT