Skip to main content
Glama

requarks-wiki-mcp

MCP server for a Wiki.js instance that lets agents use it like a knowledge base.

Features:

  • 29 tools (19 read + 10 write) covering pages, comments, tags, assets, users, navigation, and system info.

  • Search, list, and browse pages for retrieval workflows (RAG-like usage).

  • Fetch page content by path or page ID, view version history and restore previous versions.

  • Browse site hierarchy with page tree, page links graph, and navigation structure.

  • Full comment system: list, read, create, update, and delete comments on pages.

  • Asset and folder browsing for media file discovery.

  • User context: current user profile and user search.

  • System diagnostics: version info, site config, and navigation tree.

  • Tag management: list, search, update, and delete tags.

  • Optional page create/update/delete/move/restore tools with explicit safety gates.

  • Built-in resources: markdown syntax guide, Mermaid diagram guide, and API permissions guide.

  • Typed error taxonomy with LLM-friendly error messages.

  • GraphQL client with timeout, exponential-backoff retry, and request correlation.

  • Security hardening: sensitive field filtering, URL validation, input length limits.

Requirements

  • Node.js 20+

  • A reachable Wiki.js hostname

  • Wiki.js API key (JWT) with proper permissions

Related MCP server: WikiJS MCP Server

Setup

cp .env.example .env
npm install

Configure .env:

WIKI_BASE_URL=https://your-wiki-hostname
WIKI_API_TOKEN=your_wikijs_api_key_jwt
WIKI_GRAPHQL_PATH=/graphql
WIKI_DEFAULT_LOCALE=en
WIKI_DEFAULT_EDITOR=markdown

# Mutating operations are disabled by default
WIKI_MUTATIONS_ENABLED=false
# Optional extra safety gate for writes. If set, write tools must pass matching confirm.
WIKI_MUTATION_CONFIRM_TOKEN=
WIKI_MUTATION_DRY_RUN=true
# Comma-separated path prefixes without leading slash (empty = no prefix restriction)
WIKI_ALLOWED_MUTATION_PATH_PREFIXES=

# HTTP resilience
WIKI_HTTP_TIMEOUT_MS=15000
WIKI_HTTP_MAX_RETRIES=2

Environment variable reference:

Variable

Required

Default

Description

WIKI_BASE_URL

Yes

-

Base Wiki.js URL (for example, https://wiki.example.com).

WIKI_API_TOKEN

Yes

-

Wiki.js API key JWT used in Authorization: Bearer ....

WIKI_GRAPHQL_PATH

No

/graphql

GraphQL endpoint path appended to WIKI_BASE_URL.

WIKI_DEFAULT_LOCALE

No

en

Default locale used when tool input does not provide locale.

WIKI_DEFAULT_EDITOR

No

markdown

Default editor used for page creation when not specified.

WIKI_MUTATIONS_ENABLED

No

false

Enables all write tools (page, comment, and tag mutations) when set to true.

WIKI_MUTATION_CONFIRM_TOKEN

No

`` (empty)

Optional extra safety gate. When set, write tool calls must provide matching confirm.

WIKI_MUTATION_DRY_RUN

No

true

When true, mutation tools return preview only and do not write to Wiki.js.

WIKI_ALLOWED_MUTATION_PATH_PREFIXES

No

`` (empty)

Comma-separated path prefixes (without leading slash) allowed for mutations. Empty means no prefix restriction.

WIKI_HTTP_TIMEOUT_MS

No

15000

HTTP request timeout in milliseconds (including body reads). Minimum 1.

WIKI_HTTP_MAX_RETRIES

No

2

Max retries for transient read failures (408, 502-504). Mutations are never retried. Minimum 0.

Wiki.js prerequisite (GraphQL + API key):

  • This MCP uses Wiki.js GraphQL internally.

  • In Wiki.js admin, go to Administration -> API and enable API access.

  • Create an API key and set it as WIKI_API_TOKEN.

MCP Client Config Example (~/.mcp.json)

{
  "mcpServers": {
    "requarks-wiki": {
      "command": "npx",
      "args": ["-y", "@yowu-dev/requarks-wiki-mcp@latest"],
      "env": {
        "WIKI_BASE_URL": "https://wiki.your-domain.dev",
        "WIKI_API_TOKEN": "your_wikijs_api_key_jwt",
        "WIKI_GRAPHQL_PATH": "/graphql",
        "WIKI_DEFAULT_LOCALE": "en",
        "WIKI_DEFAULT_EDITOR": "markdown",
        "WIKI_MUTATIONS_ENABLED": "true",
        "WIKI_MUTATION_CONFIRM_TOKEN": "CONFIRM_UPDATE",
        "WIKI_MUTATION_DRY_RUN": "false",
        "WIKI_ALLOWED_MUTATION_PATH_PREFIXES": "",
        "WIKI_HTTP_TIMEOUT_MS": "15000",
        "WIKI_HTTP_MAX_RETRIES": "2"
      }
    }
  }
}

Register MCP Via Local Path (Without npm Publish)

You can register this MCP server directly from your local project path without publishing/installing from npm.

  1. Build in this repository

npm install
npm run build
  1. Register local absolute path in ~/.mcp.json

{
  "mcpServers": {
    "requarks-wiki-local": {
      "command": "node",
      "args": ["/absolute/path/to/requarks-wiki-mcp/dist/index.js"],
      "env": {
        "WIKI_BASE_URL": "https://wiki.your-domain.dev",
        "WIKI_API_TOKEN": "your_wikijs_api_key_jwt",
        "WIKI_GRAPHQL_PATH": "/graphql",
        "WIKI_DEFAULT_LOCALE": "en",
        "WIKI_DEFAULT_EDITOR": "markdown",
        "WIKI_MUTATIONS_ENABLED": "true",
        "WIKI_MUTATION_CONFIRM_TOKEN": "",
        "WIKI_MUTATION_DRY_RUN": "false",
        "WIKI_ALLOWED_MUTATION_PATH_PREFIXES": "",
        "WIKI_HTTP_TIMEOUT_MS": "15000",
        "WIKI_HTTP_MAX_RETRIES": "2"
      }
    }
  }
}

Notes:

  • Always use an absolute path.

  • Re-run npm run build after code changes so dist/index.js stays up to date.

Run

Development:

npm run dev

Build + run:

npm run build
npm start

MCP Tools

Read Tools (19)

Pages:

Tool

Description

wikijs_search_pages

Full-text search across wiki pages.

wikijs_list_pages

List pages with optional locale filter and limit.

wikijs_get_page_by_path

Get full page content by path + locale.

wikijs_get_page_by_id

Get full page content by numeric ID.

wikijs_get_page_tree

Browse site hierarchy (folders, pages, or both).

wikijs_get_page_history

View edit history trail for a page.

wikijs_get_page_version

Get a specific version's full content.

wikijs_get_page_links

Get page link relationships (knowledge graph).

Tags:

Tool

Description

wikijs_list_tags

List all tags for content taxonomy discovery.

wikijs_search_tags

Search for tags matching a query string.

Comments:

Tool

Description

wikijs_list_comments

List all comments for a page by path and locale.

wikijs_get_comment

Get a single comment by ID.

System & Navigation:

Tool

Description

wikijs_get_system_info

Wiki.js version, database type, and usage statistics.

wikijs_get_navigation

Navigation tree structure.

wikijs_get_site_config

Site configuration (non-sensitive fields).

Assets:

Tool

Description

wikijs_list_assets

List assets with optional folder and kind filter.

wikijs_list_asset_folders

List asset folders.

Users:

Tool

Description

wikijs_get_current_user

Get the currently authenticated API user's profile.

wikijs_search_users

Search users by name or email.

Write Tools (10, disabled unless WIKI_MUTATIONS_ENABLED=true)

Page Mutations:

Tool

Description

wikijs_create_page

Create a new page with content, tags, and metadata.

wikijs_update_page

Update an existing page by ID.

wikijs_delete_page

Delete a page by ID. May need manage:pages or delete:pages.

wikijs_move_page

Move/rename a page to a new path or locale.

wikijs_restore_page

Restore a page to a previous version.

Comment Mutations:

Tool

Description

wikijs_create_comment

Create a comment on a page.

wikijs_update_comment

Update an existing comment by ID.

wikijs_delete_comment

Delete a comment by ID.

Tag Mutations:

Tool

Description

wikijs_update_tag

Update a tag's slug and title.

wikijs_delete_tag

Delete a tag from all pages.

Mutation Safety

  • When WIKI_MUTATION_CONFIRM_TOKEN is set, mutation tools require a matching confirm argument.

  • When WIKI_MUTATION_DRY_RUN=true, write tools return a preview and do not mutate Wiki.js.

  • If WIKI_ALLOWED_MUTATION_PATH_PREFIXES is set, page and comment-create mutations are limited to those path prefixes.

  • All mutation attempts write a structured audit line to stderr.

MCP Resources

Resource URI

Description

wikijs://markdown-guide

Wiki.js markdown syntax guide (CommonMark/GFM + Wiki.js-specific extensions) intended for page authoring and updates.

wikijs://mermaid-guide

Mermaid 8.8.2 diagram syntax guide for Wiki.js (9 supported diagram types, unsupported feature warnings, version restrictions).

wikijs://api-permissions-guide

Wiki.js API permission model, error codes, and API key configuration guide for self-diagnosing permission errors.

Permission Notes (Wiki.js)

Wiki.js permission behavior can be surprising for API keys. In particular:

  • Some operations may require manage:pages/delete:pages rules at page-rule level.

  • Reading content may require read:source depending on schema/field-level checks.

  • Comment operations require read:comments, write:comments, or manage:comments.

  • System info and navigation require admin-level API key permissions.

Common error codes:

Code

Meaning

6013

PageViewForbidden — check group permissions + page rules for read:pages/read:source

6003

Page does not exist

8002

CommentPostForbidden

8003

CommentNotFound

8004

CommentViewForbidden

8005

CommentManageForbidden

For more details, read the wikijs://api-permissions-guide resource.

Suggested Minimum API Key Permissions

For read-heavy KB use:

  • read:pages, read:source

  • read:comments (for comment browsing)

  • Page rules allowing those permissions for intended paths/locales

For write workflows:

  • write:pages (create and update)

  • manage:pages or delete:pages (for delete/move operations)

  • write:comments, manage:comments (for comment mutations)

  • manage:system (for tag management)

Security Guidance

  • Keep API token server-side only.

  • Start with read-only permissions.

  • Keep WIKI_MUTATIONS_ENABLED=false unless updates are needed.

  • Optional hardening: set a strong random WIKI_MUTATION_CONFIRM_TOKEN and pass matching confirm for write calls.

  • Keep WIKI_MUTATION_DRY_RUN=true until you are ready for real writes.

  • Use WIKI_ALLOWED_MUTATION_PATH_PREFIXES to constrain write scope.

  • wikijs_get_system_info filters sensitive infrastructure fields (dbHost, configFile, etc.) by default.

  • scriptJs/scriptCss fields in page create/update are length-limited (10,000 chars) and include browser execution warnings.

Available Tools

29 tools
wikijs_create_commentA

Create a new comment on a page. Requires WIKI_MUTATIONS_ENABLED=true and may need comment posting permissions. confirm is only checked when WIKI_MUTATION_CONFIRM_TOKEN is set.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNoMust match WIKI_MUTATION_CONFIRM_TOKEN if set. Optional when token is not configured.
pageIdYesPage ID to comment on.
contentYesComment content.
replyToNoOptional comment ID to reply to.
guestNameNoGuest name (if posting as guest).
guestEmailNoGuest email (if posting as guest).

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavior. It explains the required environment setting and permission needs, and clarifies that confirm is only checked when the token is set. This adds transparency beyond the schema.

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?

Three sentences: first states purpose, second gives prerequisites, third clarifies a parameter condition. No wasted words, front-loaded with the action.

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 no output schema and 6 parameters, the description covers prerequisites and key behavioral nuance (confirm). It lacks mention of response format or error scenarios, but is satisfactory for a creation tool with good schema parameter descriptions.

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?

Schema description coverage is 100%, so baseline 3. The description adds value by explaining the conditional behavior of 'confirm' (only checked when token is set), which goes beyond the schema's 'if set' phrasing. Other parameters are well-documented in 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 clearly states 'Create a new comment on a page', which is a specific verb-resource combination. It distinguishes this tool from siblings like wikijs_delete_comment and wikijs_update_comment by focusing on creation.

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 description provides usage prerequisites (WIKI_MUTATIONS_ENABLED, comment permissions) and explains the confirm parameter's role. It does not explicitly contrast with siblings but implies its use case.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wikijs_create_pageB

Create a new page. Requires WIKI_MUTATIONS_ENABLED=true. confirm is only checked when WIKI_MUTATION_CONFIRM_TOKEN is set.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNoMust match WIKI_MUTATION_CONFIRM_TOKEN if set. Optional when token is not configured.
pathYesTarget page path.
titleYesPage title.
contentYesPage content in Wiki.js-flavored Markdown (when editor is "markdown"). Supports CommonMark + GFM plus Wiki.js extensions: BLOCKQUOTE STYLES — colored callout boxes: > Note text {.is-info} (blue) {.is-success} (green) {.is-warning} (yellow) {.is-danger} (red) CONTENT TABS — {.tabset} on parent heading, child headings become tabs: ## Tabs {.tabset} ### First Tab Content... ### Second Tab Content... IMAGE DIMENSIONS — append =WIDTHxHEIGHT after URL: ![alt](/img.jpg =300x200) ![alt](/img.jpg =100%x) DIAGRAMS — mermaid or plantuml fenced code blocks. For Mermaid 8.8.2 syntax details, read the wikijs://mermaid-guide resource. TABLE STYLE — {.dense} after table for compact rendering. LIST STYLES — {.grid-list} or {.links-list} after list. TEXT — ~sub~ ^super^ <kbd>Key</kbd> ~~strike~~ FOOTNOTES — [^1] inline, [^1]: definition at bottom. DECORATE — <!-- {element:.class} --> for ambiguous targets. For the full syntax reference, read the wikijs://markdown-guide resource.
descriptionNoShort page description.
localeNoLocale code.
editorNoEditor key (markdown, asciidoc, html, etc).
tagsNoOptional string tags.
isPublishedNoDefaults true.
isPrivateNoDefaults false.
publishStartDateNoPublication start date (ISO 8601 format).
publishEndDateNoPublication end date (ISO 8601 format).
scriptCssNoCustom CSS for the page. Max 10,000 chars.
scriptJsNoCustom JavaScript for the page. WARNING: executes in every visitor's browser. Only use trusted code. Max 10,000 chars.

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavioral traits. It adds context about the 'confirm' parameter being conditional on WIKI_MUTATION_CONFIRM_TOKEN, which is helpful. However, it lacks details on mutation safety, idempotency, or side effects, leaving significant behavioral gaps.

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 consists of two concise sentences with no redundant information. It is front-loaded with the core purpose and then a critical requirement and parameter behavior, which is efficient for an agent to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite the high schema coverage, the description fails to provide a complete picture for a tool with 14 parameters and no output schema. It omits information on return values, error handling, and guidance on optional parameters. The minimal description does not adequately support the tool's complexity.

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?

Schema coverage is 100%, so the baseline is 3. The description adds only a small extra semantic for the 'confirm' parameter. The rest of the parameters are not elaborated beyond the schema, thus meeting the baseline without significant added value.

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 'Create a new page' with a specific verb and resource. It distinguishes itself from sibling tools like wikijs_create_comment or wikijs_update_page, leaving no ambiguity about the tool's purpose.

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 a prerequisite (WIKI_MUTATIONS_ENABLED=true) but provides no explicit guidance on when to use this tool versus alternatives like wikijs_update_page. No reasoning for selecting this tool over siblings is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wikijs_delete_commentA

Delete a comment by ID. Requires WIKI_MUTATIONS_ENABLED=true and comment management permissions. confirm is only checked when WIKI_MUTATION_CONFIRM_TOKEN is set.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNoMust match WIKI_MUTATION_CONFIRM_TOKEN if set. Optional when token is not configured.
idYesComment ID to delete.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry full behavioral disclosure. It mentions destructive action, environment variable requirement, and conditional confirm check. It does not cover irreversibility or return behavior, which is adequate but not exhaustive.

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, front-loaded with the main purpose, second sentence adds necessary details. No wasted words, perfectly sized for the tool's simplicity.

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 simple delete tool with 2 parameters and no output schema, the description covers action, requirements, and conditional logic. Could mention what happens on success/failure but is largely complete given context.

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?

Schema coverage is 100%, so baseline is 3. The description adds context for confirm (conditionally checked) but repeats the schema for id. Minimal extra value, meets baseline.

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 'Delete a comment by ID', specifying the action (delete) and resource (comment). It is specific and distinguishes from sibling tools like wikijs_update_comment or wikijs_create_comment.

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 description provides prerequisites (WIKI_MUTATIONS_ENABLED=true and permissions) and conditional behavior for confirm. However, it does not explicitly guide when to use this tool versus alternatives like update or list comments, but the context is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wikijs_delete_pageA

Delete a page by ID. Requires WIKI_MUTATIONS_ENABLED=true and may need manage:pages or delete:pages permission. confirm is only checked when WIKI_MUTATION_CONFIRM_TOKEN is set.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNoMust match WIKI_MUTATION_CONFIRM_TOKEN if set. Optional when token is not configured.
idYesPage ID to delete.

TDQS

A4/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 required env vars and permissions, and confirm parameter behavior. Missing details on permanence or side effects of deletion.

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 concise sentences with no waste. Front-loaded with the main action. Efficient.

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 simple tool (2 params, no output schema), the description covers prerequisites and confirm behavior. Could note whether deletion is permanent, but mostly 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?

Schema coverage is 100%, and the description adds no extra meaning beyond the schema; it only reiterates the confirm condition. Baseline 3 is appropriate.

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 'Delete a page by ID' with a specific verb and resource. It distinguishes from sibling tools like wikijs_move_page and wikijs_restore_page.

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 description mentions prerequisites (WIKI_MUTATIONS_ENABLED, permissions) but does not explicitly state when not to use or compare to alternatives. However, the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wikijs_delete_tagA

Delete a tag by ID. Removes the tag from all pages and the tag registry. Requires WIKI_MUTATIONS_ENABLED=true and may need manage:system permission. confirm is only checked when WIKI_MUTATION_CONFIRM_TOKEN is set.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNoMust match WIKI_MUTATION_CONFIRM_TOKEN if set. Optional when token is not configured.
idYesTag ID to delete.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description adequately discloses that the deletion cascades to all pages and the tag registry, and notes the required environment variables and permissions. It is transparent about the destructive nature of the 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?

Two concise sentences, no filler. The first sentence states purpose and effect, the second provides prerequisites and parameter behavior. Efficient and front-loaded.

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 simple two-parameter tool with no output schema, the description covers action, effect, prerequisites, and conditional parameter. It does not mention error handling (e.g., if tag not found), but that is acceptable for a delete operation.

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?

Schema coverage is 100%, baseline 3. The description adds value by explaining that 'confirm is only checked when WIKI_MUTATION_CONFIRM_TOKEN is set', clarifying the conditional logic beyond the schema's static description.

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 action 'Delete a tag by ID' and the effect 'Removes the tag from all pages and the tag registry'. This distinguishes it from sibling tools like wikijs_delete_comment and wikijs_delete_page.

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 description explains prerequisites (WIKI_MUTATIONS_ENABLED=true, manage:system permission) and the conditional behavior of the confirm parameter. However, it does not explicitly state when not to use this tool versus alternatives like update_tag or list_tags.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wikijs_get_commentA

Get a single comment by ID. Returns full comment details including content and author information.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesComment ID.

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It accurately indicates a read operation ('Get') with no destructive hints, but it does not disclose potential permissions needed, error handling, or any side effects, which is acceptable for a simple getter.

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, front-loaded with the core action, no unnecessary words. Every sentence provides 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?

For a simple retrieval tool with one parameter and no output schema, the description is complete. It covers what the tool does, what it returns (full comment details), and the required input. No gaps.

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 100% coverage with a single 'id' parameter described as 'Comment ID.' The description adds little beyond this, only stating 'by ID.' Baseline 3 is appropriate as the description does not enrich the parameter meaning.

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 verb ('Get'), resource ('single comment'), and the action of retrieving by ID. It distinguishes from sibling tools like wikijs_list_comments and wikijs_create_comment by specifying a single comment retrieval.

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 description implies use when a comment ID is available, and the presence of sibling tools like wikijs_list_comments for listing and wikijs_update_comment for updates provides context. However, it does not explicitly state when not to use or mention alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wikijs_get_current_userA

Get the profile of the currently authenticated API user. Returns identity, permissions context, and activity info.

ParametersJSON Schema
NameRequiredDescriptionDefault

No 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, so the description carries the full burden. It mentions 'authenticated API user' implying auth requirements, but does not disclose potential errors, side effects, or rate limits. The description adds some behavioral context (returns identity, permissions, activity) but insufficient detail.

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 a single sentence of 14 words. It is front-loaded with the verb and resource, and every word contributes value. No extraneous information.

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 no output schema, the description provides high-level return info (identity, permissions, activity) but lacks detail on structure or fields. For a simple tool with no params, this is adequate but not maximally complete.

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 zero parameters, so schema description coverage is 100%. With no parameters to document, the description adds no param semantics, but the baseline score of 4 is appropriate given no need for additional param info.

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 verb 'Get' and the resource 'profile of the currently authenticated API user', and lists what it returns (identity, permissions context, activity info). This distinguishes it from sibling tools that access other entities.

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 guidance on when to use this tool versus alternatives, such as wikijs_search_users. The implied usage is for retrieving the current user's profile, but without exclusions or context, the agent must infer.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wikijs_get_navigationA

Retrieve the navigation tree for all locales. Returns configured navigation items including links, headers, and dividers with their visibility settings.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It explains the return content but lacks details on side effects, authentication requirements, or performance implications. Adequate for a simple read operation but not fully transparent.

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, no redundancy, front-loaded with the core purpose. Every word adds value.

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 zero parameters and no output schema, the description could elaborate on the return structure (e.g., whether it's nested, format of items). It covers the main elements but leaves some return format ambiguity.

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 exist and schema coverage is 100%. The description adds no parameter info, but none is needed. Baseline of 4 is appropriate as the schema already documents everything.

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 tool retrieves the navigation tree for all locales, and specifies the items returned (links, headers, dividers with visibility settings). This distinguishes it from sibling tools like 'get_page_by_id' or 'get_site_config'.

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 tool versus alternatives. Sibling tools exist for other retrieval operations, but the description doesn't contrast them or specify when not to use this one.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wikijs_get_page_by_idA

Get a single page body/content by numeric page ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesWiki page ID.

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided; description only states it performs a read operation. Does not disclose side effects, authentication requirements, error behavior, or response format. Minimal transparency beyond basic purpose.

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?

Single sentence, front-loaded with verb and object. Every word earns its place. No unnecessary elaboration.

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 simple single-parameter retrieval tool, the description covers the key information. However, lacking output schema means agents miss what the response contains; slight gap in completeness. Still sufficient for basic usage.

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?

Schema already describes the 'id' parameter as 'Wiki page ID.' Description adds 'numeric' but this is redundant since schema type is 'number'. Schema coverage is 100%, so baseline 3 is appropriate; description adds no significant extra meaning.

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 'Get a single page body/content by numeric page ID.' It identifies the specific verb, resource, and method of identification, distinguishing it from sibling tool wikijs_get_page_by_path which uses a path.

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 guidance on when to use this tool versus alternatives like wikijs_get_page_by_path. The context of numeric ID is implied but not contrasted with other retrieval methods. Adequate but lacks explicit usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wikijs_get_page_by_pathA

Get a single page body/content using path + locale.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesWiki page path, without leading slash.
localeNoLocale code.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must bear full burden. It accurately states the tool gets page content, but does not disclose error behavior (e.g., missing path or invalid locale), pagination, or if any side effects occur. Minimal but not misleading.

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?

Single sentence, no filler, front-loaded with verb and resource. Every word earns its place.

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?

For a simple getter with no output schema and no annotations, the description is minimally adequate but lacks details on return format, error conditions, and locale handling. Could note that it returns the full page object or just body.

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?

Schema coverage is 100% with descriptions for both path and locale. The description merely echoes 'path + locale', adding no new meaning beyond the schema. Baseline 3 is appropriate.

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 action (Get), the resource (single page body/content), and the method (using path + locale). It distinguishes from siblings like wikijs_get_page_by_id which uses ID instead of path. No tautology.

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 tool versus alternatives like wikijs_get_page_by_id or wikijs_search_pages. Does not mention prerequisites or scenarios where path vs ID is preferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wikijs_get_page_historyA

Get edit history trail for a page by ID. Returns version dates, authors, and change types.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesWiki page ID.
offsetNoPage offset for pagination. Default 0.
limitNoNumber of history entries. Default 25, max 100.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, description carries full burden. It discloses that it returns version dates, authors, and change types, but does not mention that it is read-only, pagination behavior, or auth requirements. Adequate but not rich.

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 succinct sentences: first states action and resource, second enumerates return values. No fluff or redundancy.

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 simple history listing tool with 3 params and no output schema, the description provides key return info and relies on schema for params. Missing usage guidance, but otherwise 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?

Schema coverage is 100%, so the description adds no extra meaning beyond what the schema already provides. Baseline 3 is appropriate.

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?

Clearly states the action (get), resource (edit history trail by ID), and what is returned (version dates, authors, change types). Distinct from siblings like wikijs_get_page_by_id or wikijs_get_page_version.

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 tool vs alternatives (e.g., wikijs_get_page_version, wikijs_get_page_by_id). No exclusions or prerequisites mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wikijs_get_page_treeA

Get the page tree hierarchy for site navigation and structure discovery. Returns folders and/or pages with depth info.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoOptional path prefix to scope the tree.
parentIdNoOptional parent page ID to get children of.
modeNoTree mode. Default ALL.
localeNoLocale code. Defaults to WIKI_DEFAULT_LOCALE.
includeAncestorsNoInclude ancestor pages. Default false.

TDQS

A3.7/5.0
Behavior2/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 disclosure. It mentions returning folders/pages with depth info but does not state that the operation is read-only, nor does it address any performance implications or authentication needs. The lack of behavioral context is a gap.

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 consists of two concise sentences, front-loading the purpose and key output details. No superfluous information 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 lack of output schema and the complexity of representing a tree structure, the description is somewhat complete but fails to specify the exact shape of the output or how depth info is represented. Additionally, it does not differentiate from wikijs_get_navigation, which may also provide hierarchical information.

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 covers all 5 parameters with clear descriptions, achieving 100% schema coverage. The description adds value by noting the output includes depth info, which is not in the schema. This complements the parameter definitions.

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 tool retrieves the page tree hierarchy for site navigation and structure discovery. It mentions returning folders and/or pages with depth info, which distinguishes it from sibling tools like get_page_by_id or list_pages that serve different purposes.

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 implies use for navigation and structure discovery but does not explicitly guide when to use this tool versus related siblings like wikijs_get_navigation or wikijs_list_pages. No exclusions or alternatives are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wikijs_get_page_versionB

Get a specific version of a page by page ID and version ID. Returns full page content and metadata for that version.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPage ID.
versionIdYesVersion ID from page history.

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full burden of behavioral disclosure. It states the operation and return value but does not mention read-only status, permissions needed, or any side effects. For a retrieval operation, basic safety guarantees are left implicit.

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-loads the purpose and parameters, and contains no redundant or extraneous information. Every word adds value.

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?

The tool has only two required parameters and no output schema. The description adequately states what it does and what it returns. For a simple retrieval tool, this is nearly complete, though it could hint at the relationship between versionId and page history more explicitly.

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?

Schema coverage is 100% and both parameters have clear descriptions in the schema ('Page ID', 'Version ID from page history'). The description restates these IDs without adding additional format, constraints, or context beyond 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 clearly states the verb 'Get' and the specific resource 'a specific version of a page' by page ID and version ID. It also explicitly mentions the return value 'full page content and metadata', distinguishing it from sibling tools like get_page_by_id (current version) and get_page_history (list of versions).

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 such as wikijs_get_page_by_id or wikijs_get_page_history. It does not mention prerequisites, exclusions, or context for use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wikijs_get_site_configA

Retrieve safe (non-sensitive) site configuration including title, description, feature flags, and upload limits. Does not expose secrets or authentication keys.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided; description adds safety context (non-sensitive, no secrets) but lacks details on auth requirements or rate limits.

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?

Single sentence with clear, efficient wording, no redundancy.

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?

Adequate for a zero-parameter, read-only tool; could mention return format but not essential.

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?

No parameters exist; schema coverage is 100%, so description adds no param info but is not 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 retrieves safe (non-sensitive) site configuration and lists specific examples (title, description, feature flags, upload limits), distinguishing it from sensitive operations.

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?

Implies usage when needing non-sensitive site config. Does not explicitly mention alternatives or when not to use, but sibling tools like wikijs_get_system_info provide contrast.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wikijs_get_system_infoA

Retrieve Wiki.js system information including version, database type, and usage statistics. Useful for diagnostics. Sensitive fields (dbHost, configFile, workingDirectory, hostname) are filtered out.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/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 that sensitive fields (dbHost, configFile, workingDirectory, hostname) are filtered out, which is important behavioral info. However, it does not explicitly state that the operation is read-only, but the action 'Retrieve' implies reading. Still, a slight gap exists.

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 action and resource, and every word adds value. No unnecessary wording.

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 no output schema, the description compensates by listing included information types (version, database type, usage statistics) and noting filtered fields. This is sufficient for a simple read-only tool, though it could briefly mention the return format (e.g., JSON).

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 tool has zero parameters, and the input schema is empty with 100% schema coverage. Per rubric, a baseline of 4 applies since no additional parameter information is needed. The description adds nothing beyond the schema, which is acceptable.

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 tool retrieves 'Wiki.js system information including version, database type, and usage statistics' and notes it is 'useful for diagnostics.' This specific verb+resource combination distinguishes it from sibling tools that focus on CRUD operations for pages, comments, and tags.

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 description explicitly labels the tool as 'useful for diagnostics,' providing clear context for when to use it. While it does not mention when not to use or alternatives, the sibling tools are all different operations (creating, updating, deleting content), so the usage guidance is adequate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wikijs_list_asset_foldersB

List asset folders within a parent folder. Returns folder structure for navigating the asset hierarchy.

ParametersJSON Schema
NameRequiredDescriptionDefault
parentFolderIdNoParent folder ID. Default 0 (root level).

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description must fully disclose behavior. It states the tool returns a 'folder structure' but does not clarify depth (recursive or flat), pagination, or required permissions.

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 with no wasted words. It is front-loaded with the core purpose and concise.

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?

For a simple listing tool with one optional parameter and no output schema, the description is minimally adequate. However, it lacks details about the output format and does not differentiate from wikijs_list_assets.

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?

Schema coverage is 100% with parameter descriptions. The tool description does not add significant meaning beyond the schema. The default value for parentFolderId is mentioned in the schema, so the description adds no extra value.

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 specifies the exact action ('List') and resource ('asset folders'), and implies the context of navigating a hierarchy. It effectively distinguishes from siblings like wikijs_list_assets.

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 when-to-use or when-not-to-use guidance is provided. No alternatives or exclusions are mentioned. The description only states what the tool does.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wikijs_list_assetsA

List assets (files, images) in a specific folder. Returns asset metadata including filename, type, size, and upload date.

ParametersJSON Schema
NameRequiredDescriptionDefault
folderIdNoFolder ID to list assets from. Default 0 (root folder).
kindNoAsset type filter. Default ALL.

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, placing full burden on description. While the verb 'List' implies a read-only operation, the description does not explicitly confirm lack of side effects, authentication needs, or rate limits, which is insufficient for a tool with no annotation support.

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 a single sentence that efficiently conveys purpose and return information, with no unnecessary 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?

For a simple list tool with no output schema, the description adequately explains what is returned. However, it omits details on pagination, ordering, or error handling, which are minor gaps.

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?

Schema coverage is 100% with clear parameter descriptions. The description adds minimal extra meaning beyond the schema, so the baseline score of 3 is appropriate.

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 action 'List' and the resource 'assets (files, images)', and specifies the scope 'in a specific folder'. It also lists the metadata returned. The name and description differentiate it from sibling tools like wikijs_list_asset_folders.

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 implies usage for listing assets in a folder, but does not explicitly state when to use this tool versus alternatives, nor does it mention prerequisites or contextual conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wikijs_list_commentsA

List all comments for a specific page by path and locale. Returns comment details including author info and timestamps.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPage path to get comments for.
localeNoLocale code (e.g., "en", "fr"). Defaults to WIKI_DEFAULT_LOCALE.

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. It states that it returns comments but does not mention pagination, ordering, or whether it is read-only (though implied). The word 'all' could be misleading if comments are paginated. No mention of authentication requirements or rate limits.

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, no waste, front-loaded with the main action and parameters. Every sentence provides value.

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 no output schema, the description partially explains return values (author info, timestamps). However, it omits details like pagination, limit, or structure of the comment objects. For a list tool, these are important for an agent to know. Adequate but not 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?

Schema coverage is 100% with descriptions for both parameters. The description adds that locale defaults to WIKI_DEFAULT_LOCALE, which is already in the schema. It does not add additional meaning beyond the schema, so baseline 3 is appropriate.

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 verb 'list' and the resource 'comments for a specific page by path and locale', and mentions return details (author info, timestamps). This distinguishes it from siblings like wikijs_get_comment (single comment) and wikijs_create_comment.

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 implies usage context (listing comments for a page) but does not explicitly state when to use this tool vs alternatives like wikijs_get_comment or wikijs_search_comments (if it existed). No guidance on when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wikijs_list_pagesA

List pages for crawling/indexing with optional locale and limit.

ParametersJSON Schema
NameRequiredDescriptionDefault
localeNoOptional locale code.
limitNoOptional item limit. Default 50, max 200.
orderByNoField to order by. Default UPDATED.
orderByDirectionNoSort direction. Default DESC.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description must carry the full burden of behavioral disclosure. It indicates a read operation ('List pages') and mentions limit and locale, but does not disclose whether pagination, ordering behavior (beyond schema), or rate limits apply. The behavioral traits are partially transparent but incomplete.

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 a single, short sentence that conveys the essential purpose. Every word earns its place, with no redundancy or filler. It is optimally concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description should explain what is returned (e.g., page metadata, content). It does not, leaving the agent uncertain about the response format. Given the presence of multiple sibling list tools, this gap is significant.

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 100% description coverage, so the parameters are well-documented in the schema. The description adds contextual purpose ('for crawling/indexing') but does not provide additional semantics beyond what the schema already offers. Baseline 3 is appropriate.

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 that the tool lists pages for crawling/indexing, which is a specific verb and resource. It distinguishes from siblings like wikijs_search_pages (search) and wikijs_get_page_by_id (single page retrieval). The mention of optional locale and limit further clarifies the scope.

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 implies usage for crawling/indexing but does not explicitly compare to alternatives like wikijs_search_pages or wikijs_get_page_tree. No guidance on when not to use this tool is provided, leaving the agent to infer from context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wikijs_list_tagsA

List all tags used across wiki pages. Useful for discovering content categories and taxonomy.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, description must carry burden. It correctly implies a read operation with no side effects. However, it does not mention whether results are paginated or how tags are structured (e.g., name, count). Basic but adequate.

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, front-loaded with the key action. No wasted words; every sentence adds value.

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?

For a zero-parameter tool with no output schema, the description should explain what the output contains (e.g., tag names, IDs). It does not, leaving ambiguity about the return format.

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 exist in the schema, so the baseline is 4. The description does not need to add parameter info, and it does not repeat schema details.

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?

Clearly states 'list all tags' with a specific resource and action, and the description 'discovering content categories and taxonomy' adds context. It distinguishes from sibling tools like wikijs_search_tags and wikijs_delete_tag.

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?

Explicitly says 'useful for discovering content categories and taxonomy,' implying when to use. However, it does not explicitly state when not to use or name alternatives like wikijs_search_tags for filtered searches.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wikijs_move_pageA

Move a page to a new path or locale. Requires WIKI_MUTATIONS_ENABLED=true and may need manage:pages permission. confirm is only checked when WIKI_MUTATION_CONFIRM_TOKEN is set.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNoMust match WIKI_MUTATION_CONFIRM_TOKEN if set. Optional when token is not configured.
idYesPage ID to move.
destinationPathYesNew path for the page.
destinationLocaleNoNew locale. Defaults to current locale.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description discloses mutation behavior and prerequisites. It explains the confirm parameter condition. However, it does not detail side effects (e.g., redirects, broken links), leaving some behavioral gaps.

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: first states the core purpose, second lists requirements and confirm condition. No superfluous words, well-structured and efficient.

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?

The description covers purpose, requirements, and the confirm mechanism. With 4 params and no output schema, it is mostly complete. Missing details about post-move behavior (e.g., redirects) would be nice but not critical.

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?

Schema coverage is 100%, but the description adds meaning to the confirm parameter (explains its conditional use) and implies default behavior for destinationLocale. This adds value beyond the schema for these parameters.

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 action 'Move a page' and the resource 'page', specifying what can be changed (path or locale). This distinguishes it from siblings like create_page or delete_page.

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?

It mentions prerequisites (WIKI_MUTATIONS_ENABLED=true) and permission requirements (manage:pages), guiding when to use. However, it does not contrast with similar tools like update_page, so guidance on alternatives is implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wikijs_restore_pageA

Restore a page to a previous version. Requires WIKI_MUTATIONS_ENABLED=true and may need manage:pages permission. confirm is only checked when WIKI_MUTATION_CONFIRM_TOKEN is set.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNoMust match WIKI_MUTATION_CONFIRM_TOKEN if set. Optional when token is not configured.
idYesPage ID to restore.
versionIdYesVersion ID to restore to (from page history).

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 must disclose behavioral traits. It correctly indicates this is a mutation operation requiring specific configurations. However, it does not mention if the restore is reversible, what happens to the current page version, or any 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences: the first states the core function, the second adds key usage conditions. No extraneous information, fully front-loaded.

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 absence of an output schema, the description should indicate what the tool returns (e.g., success object or nothing). It does not cover the return value or confirmation step. However, it sufficiently covers the input requirements for a mutation tool.

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 description adds meaning beyond the input schema: it explains that versionId should come from page history and clarifies the confirm parameter's conditionality. Since schema coverage is 100%, the description supplements it effectively.

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 action ('Restore a page to a previous version') and the resource ('page'), making the purpose unambiguous. It distinguishes from sibling tools like wikijs_get_page_version (read-only) and wikijs_update_page (edit current content).

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 description explicitly mentions required environment variable (WIKI_MUTATIONS_ENABLED=true) and optional permission (manage:pages), and explains the confirm parameter's role. However, it does not explicitly state when to avoid using this tool (e.g., if mutations are disabled).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wikijs_search_pagesC

Search pages by keyword and return path/title summary for knowledge lookup.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch keyword.
localeNoOptional locale code. Defaults to WIKI_DEFAULT_LOCALE.
pathNoOptional path prefix to scope search.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided; description only says 'return path/title summary'. Missing behavioral details: read-only nature, case sensitivity, fuzzy search, pagination, error handling, or what happens with empty results.

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?

Single sentence front-loads purpose and output. Efficient but could use slight structure for parameters. No wasted words.

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 no output schema, description partially explains return format (path/title summary). Lacks details on result array structure, empty results, or performance. Adequate for simple search.

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?

Schema descriptions cover all 3 parameters (100% coverage). Description adds no extra parameter meaning; it focuses on output. Baseline 3 applies.

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?

Clearly states verb 'search', resource 'pages', method 'by keyword', and output 'path/title summary'. Differentiates from sibling list and get tools but doesn't explicitly contrast with list_pages or search_tags.

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 vs alternatives (e.g., list_pages for browsing, search_tags for tags). Only implies purpose for knowledge lookup, but no when-not-to-use or context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wikijs_search_tagsA

Search for tags matching a query string. Returns an array of matching tag name strings.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query for tag names.

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. It states the return type (array of tag name strings) but does not disclose matching behavior (e.g., exact, partial, case sensitivity) or any limitations. Basic but sufficient for a simple tool.

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 a single, clear sentence with no unnecessary words. It is front-loaded and efficient.

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 no output schema, the description explains the return value (array of matching tag name strings). This is complete for a simple search tool, though it could optionally specify matching behavior. Still adequate.

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?

Schema coverage is 100% with a single parameter 'query' described in the schema. The description adds no further parameter details beyond the schema, so it meets the baseline for high coverage.

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 action (Search for tags) and the resource (tags) with a specific query string. It distinguishes from sibling tools like 'wikijs_list_tags' which likely lists all tags, and 'wikijs_delete_tag' which deletes.

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 implies usage for searching tags by query but does not explicitly state when to use this tool versus alternatives like 'wikijs_list_tags'. No guidance on when not to use or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wikijs_search_usersA

Search for users by name or email. Returns matching user profiles for collaboration context.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query for user name or email.

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. It mentions 'Returns matching user profiles' but lacks details on pagination, case sensitivity, exact vs fuzzy matching, or rate limits. This leaves significant behavioral gaps for an AI agent.

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 fluff, directly stating the action and what is returned. Every word adds value.

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 no output schema, the description should clarify the return structure. It mentions 'matching user profiles' but not fields or pagination. For a simple search with one required parameter, it is minimally adequate but lacks completeness.

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?

Schema coverage is 100% with parameter description 'Search query for user name or email.' The description adds 'Returns matching user profiles for collaboration context,' which provides output context but does not enhance parameter meaning beyond the schema. Baseline score of 3 is appropriate.

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 explicitly states the tool searches for users by name or email, distinguishing it from sibling tools like wikijs_search_pages and wikijs_search_tags. The specific verb 'Search for users' and resource 'users' make the purpose unambiguous.

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 description clearly indicates the tool's use case: finding users for collaboration context. While it doesn't explicitly state when not to use it or list alternatives, the context is clear enough for an agent to decide. Among siblings, no other tool searches users, so the usage is implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wikijs_update_commentA

Update an existing comment by ID. Requires WIKI_MUTATIONS_ENABLED=true and comment management permissions. confirm is only checked when WIKI_MUTATION_CONFIRM_TOKEN is set.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNoMust match WIKI_MUTATION_CONFIRM_TOKEN if set. Optional when token is not configured.
idYesComment ID to update.
contentYesNew comment content.

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden for behavioral disclosure. It mentions the confirm parameter behavior but omits important details like whether the update is partial or full replacement, error behavior on missing ID, success response, or any side effects. For a mutation tool, this is insufficient.

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 fluff. Front-loaded with purpose and requirements, then a clear explanation of confirm behavior. Every sentence adds value.

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?

The description covers prerequisites and confirm behavior, but with no output schema, it fails to explain what the tool returns (e.g., updated comment object). It is adequate but not complete for a mutation tool without annotations.

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?

Schema coverage is 100%, so baseline is 3. The description adds context for the confirm parameter ('confirm is only checked when WIKI_MUTATION_CONFIRM_TOKEN is set'), but this largely echoes the schema description. It does not add meaningful new information for other parameters.

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 'Update an existing comment by ID', which is a specific verb-resource combination. It distinguishes from sibling tools like wikijs_create_comment, wikijs_delete_comment, and wikijs_get_comment by specifying the update action on an existing comment.

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 description provides important usage prerequisites: 'Requires WIKI_MUTATIONS_ENABLED=true and comment management permissions'. However, it does not explicitly state when to use this tool versus alternatives or when not to use it, lacking exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wikijs_update_pageA

Update an existing page by ID. Requires WIKI_MUTATIONS_ENABLED=true. confirm is only checked when WIKI_MUTATION_CONFIRM_TOKEN is set.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNoMust match WIKI_MUTATION_CONFIRM_TOKEN if set. Optional when token is not configured.
idYesPage ID to update.
titleNo
contentNoPage content in Wiki.js-flavored Markdown (when editor is "markdown"). Supports CommonMark + GFM plus Wiki.js extensions: BLOCKQUOTE STYLES — colored callout boxes: > Note text {.is-info} (blue) {.is-success} (green) {.is-warning} (yellow) {.is-danger} (red) CONTENT TABS — {.tabset} on parent heading, child headings become tabs: ## Tabs {.tabset} ### First Tab Content... ### Second Tab Content... IMAGE DIMENSIONS — append =WIDTHxHEIGHT after URL: ![alt](/img.jpg =300x200) ![alt](/img.jpg =100%x) DIAGRAMS — mermaid or plantuml fenced code blocks. For Mermaid 8.8.2 syntax details, read the wikijs://mermaid-guide resource. TABLE STYLE — {.dense} after table for compact rendering. LIST STYLES — {.grid-list} or {.links-list} after list. TEXT — ~sub~ ^super^ <kbd>Key</kbd> ~~strike~~ FOOTNOTES — [^1] inline, [^1]: definition at bottom. DECORATE — <!-- {element:.class} --> for ambiguous targets. For the full syntax reference, read the wikijs://markdown-guide resource.
descriptionNo
pathNo
localeNo
editorNo
tagsNo
isPublishedNo
isPrivateNo
publishStartDateNoPublication start date (ISO 8601 format).
publishEndDateNoPublication end date (ISO 8601 format).
scriptCssNoCustom CSS for the page. Max 10,000 chars.
scriptJsNoCustom JavaScript for the page. WARNING: executes in every visitor's browser. Only use trusted code. Max 10,000 chars.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must bear the full burden. It discloses the mutation prerequisite and confirmation token, and includes a warning for scriptJs. However, it does not specify whether updates are partial or full replacements.

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 three concise sentences, front-loading the core purpose and prerequisites without extraneous text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (15 parameters, no output schema, no annotations), the description lacks details on return values, error handling, and partial update behavior, making it insufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds no new information about parameters beyond the input schema. With schema description coverage at 47%, the description should compensate but does not.

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 verb 'Update', the resource 'existing page', and the identifier method 'by ID'. It distinguishes from create and delete options among siblings.

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?

It explicitly mentions prerequisites (WIKI_MUTATIONS_ENABLED=true) and confirmation token behavior, providing clear context for when to use. However, it does not compare to alternative update tools like wikijs_move_page.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wikijs_update_tagA

Update an existing tag by ID. Changes the tag slug and/or title. Requires WIKI_MUTATIONS_ENABLED=true and may need manage:system permission. confirm is only checked when WIKI_MUTATION_CONFIRM_TOKEN is set.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNoMust match WIKI_MUTATION_CONFIRM_TOKEN if set. Optional when token is not configured.
idYesTag ID to update.
tagYesNew tag slug (e.g., "backend").
titleYesNew tag title (e.g., "Backend Development").

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully bears the burden of disclosure, explaining mutation requirements and a conditional confirmation mechanism; this is adequate for an update tool.

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: the first states purpose, the second adds prerequisites and special token behavior. No redundant words, front-loaded with 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?

Given no output schema and no annotations, the description covers purpose, prerequisites, and parameter context adequately for an update operation. Minor omission: no guidance on error cases or return values, but that is common for such tools.

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 100% description coverage, and the description adds useful context about the 'confirm' parameter behavior and example values for 'tag' and 'title', going beyond 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 clearly states the action ('Update an existing tag by ID') and what is changed ('slug and/or title'), which is specific and distinguishes from siblings like create or delete.

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 description explicitly mentions prerequisites (WIKI_MUTATIONS_ENABLED, manage:system permission) and explains the confirm token behavior, but does not provide comparative guidance against alternatives like creating or deleting tags.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A3.7/5.0
Disambiguation5/5

Each tool targets a distinct resource-action pair (e.g., create_page, delete_comment, list_tags). There is no overlap or ambiguity; an agent can clearly differentiate between them.

Naming Consistency5/5

All tools follow the consistent pattern wikijs_verb_noun in snake_case. The naming is uniform and predictable, making it easy to infer tool functionality.

Tool Count4/5

With 29 tools, the set is slightly large but well-scoped for a full wiki system covering pages, comments, tags, assets, navigation, search, and configuration. It avoids bloat and each tool serves a clear purpose.

Completeness4/5

The toolset provides comprehensive CRUD for pages, comments, and tags, plus search and system info. However, asset and navigation mutations (create/update/delete) are missing, which represents a minor gap.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/uyu423/requarks-wiki-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server