Skip to main content
Glama

Server Quality Checklist

67%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v0.1.0

  • Disambiguation5/5

    Each tool targets a distinct resource and action: pages vs tags vs assets, and within pages there are clear separations between listing, searching, fetching, creating, updating, moving, deleting, and history operations. Potential confusions (list_pages vs search_pages, get_page vs get_page_version) are resolved by clear descriptions.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern with lowercase snake_case. The verbs (list, search, get, create, update, move, delete, restore) are uniformly used, and nouns clearly indicate the target resource (pages, tags, assets, page_tree, page_history).

    Tool Count5/5

    13 tools is a well-scoped number for a Wiki.js content management server. The count covers core page lifecycle, search/navigation, history/restore, and auxiliary tag/asset listing without being excessive or too sparse.

    Completeness4/5

    The page lifecycle is fully covered (create, read, update, delete, move, list, search, tree, history, restore). The only notable gap is asset management, where only listing is provided (no upload/download/delete), but this is likely outside the tool's primary content-focused purpose.

  • Average 3.9/5 across 13 of 13 tools scored. Lowest: 2.8/5.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 1 commit in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI is passing
  • This repository is licensed under MIT License.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • 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 of behavioral disclosure. It only says 'List Wiki.js pages' and mentions filters, but does not disclose defaults, pagination behavior, or how filters interact. It adds little 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?

    The description is a single sentence of 10 words, extremely concise and to the point. Every word contributes meaning, with no repetition or filler.

    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 5 parameters, no annotations, and 40% schema coverage, the description is insufficiently complete. It omits key behavioral details like default ordering, pagination limits, and how filters combine. An output schema exists, so return values are covered, but usage context is lacking.

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

    Parameters2/5

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

    Schema description coverage is only 40%, so the description should compensate. It mentions ordering, tag, and locale filters, but does not explain the meaning of specific enum values or locale semantics. Thus it adds minimal value beyond what is already in the schema.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description states a clear action ('List') on a specific resource ('Wiki.js pages') and mentions optional filters, which makes its main function clear. However, it does not explicitly differentiate from the sibling tool 'search_pages', though the verb 'list' vs 'search' implies a distinction.

    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?

    There is no guidance on when to use this tool versus alternatives like search_pages, get_page_tree, or get_page. The description only states what it does without any contextual when-to-use or exclusions.

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

  • 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 behavioral disclosure. It notes the permission requirement but omits potential side effects like link updates, handling of child pages, or conflict behavior. This is a significant gap for a move operation.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

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

    The description is concise, using two sentences with no wasted words. The most important information (move action, path, optional locale, permission) is front-loaded.

    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?

    Although an output schema exists, the description is incomplete for a mutating tool with no annotations. It does not mention expected return values, error conditions, or whether the operation is reversible. The permission note is helpful but not sufficient for full 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 description coverage is only 33%, so the description must clarify parameters. It adds meaning by identifying 'destinationPath' as the new path and 'destinationLocale' as an optional locale, but does not explain path format or constraints beyond schema basics.

    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 moves a page to a new path, optionally to another locale. This is a specific verb-resource combination that distinguishes it from siblings like update_page and 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 Guidelines2/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    No guidance is given on when to use this tool versus alternatives such as update_page or create_page. It only mentions a permission requirement, with no context on typical scenarios or comparisons to other page operations.

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

  • 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 burden of disclosing side effects and constraints. It only mentions a path convention, but does not state what happens on duplicate paths, whether authentication is needed, whether parent folders are auto-created, or any error behavior. For a mutation tool, this is a significant 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 is concise and front-loaded: two sentences that state the key purpose and a critical constraint. Every word earns its place, with no filler or redundancy.

    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 9 parameters, low schema coverage, and no annotations, a richer description is needed. The description only addresses the path parameter and ignores other important aspects like editor types, locale defaults, publication/private flags, and content format. Although an output schema exists, its content is not shown, so the description should have explained more about the operation's outcome and caveats.

    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 description coverage is only 44%, so the description should compensate. It adds meaningful semantics for the 'path' parameter by explaining the locale rule, which is not in the schema. However, it provides no added value for other parameters like tags, editor, isPrivate, or isPublished, leaving many options under-documented.

    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's verb ('Create') and resource ('Wiki.js page'), which is a specific and unambiguous action. It distinguishes from sibling tools like update_page, delete_page, and move_page by indicating creation of a new 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 provides clear context for when to use this tool: creating a new page. It also gives a practical formatting guideline about not prefixing the path with locale. However, it does not explicitly mention alternatives or exclusions (e.g., when to use update_page instead), but the purpose is self-evident.

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

  • Behavior3/5

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

    No annotations are provided, so the description is the only source of behavioral disclosure. It does communicate two traits: newest-first ordering and pagination, adding value beyond the schema. However, it does not mention whether the response includes full content or metadata only, nor any limits or caveats.

    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, front-loaded sentence with no filler. It states the action, resource, and key attributes (newest first, paginated) efficiently.

    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 an output schema and complete parameter descriptions, the description covers the core purpose, ordering, and pagination. It could explicitly contrast with get_page_version, but given sibling context and structured data, the gap is minor.

    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%: all three parameters (id, offsetPage, offsetSize) are already described. The description's mention of pagination aligns with offsetPage/offsetSize but does not add new meaning. Baseline of 3 is appropriate since the schema carries the parameter documentation burden.

    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 specifically names the verb ('List') and the resource ('version history trail of a page'), including the useful detail that results are ordered newest first. This clearly distinguishes it from sibling tools like get_page (current page) and get_page_version (specific version).

    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 when to use the tool (when a paginated version history is needed), but it does not explicitly state alternatives or exclusions, such as 'for a single version, use get_page_version instead.' Sibling names provide context, but the description itself offers no direct guidance.

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

  • 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 discloses the one-level-at-a-time behavior and that parent must be a folder item id, which is useful. However, it does not mention other behavioral aspects such as mode filtering, the effect of includeAncestors, or pagination, leaving 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 is two concise sentences, front-loaded with the core action and key behavior. Every word earns its place, with no redundancy or fluff.

    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?

    An output schema exists, so return values need not be explained. The description covers the core hierarchical browsing concept and the parent behavior, but it leaves mode and includeAncestors unexplained. For a 4-parameter tool, this is a noticeable gap, making it adequate but not complete.

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

    Parameters2/5

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

    Schema coverage is only 25% (only parent has a description). The tool description adds the meaning that parent must be a folder item id, but it does not explain mode, locale, or includeAncestors. Since the description must compensate for low schema coverage, it is insufficient.

    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 browses the page/folder hierarchy one level at a time, using the specific verb 'browse' and identifying the resource. It distinguishes itself from sibling tools like list_pages by emphasizing the hierarchical, level-by-level navigation.

    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 gives clear usage context: omit parent for the root level, pass a folder item id to descend. This implies when to use the tool, but it does not explicitly exclude or compare to alternatives like list_pages or search_pages, so it is clear but lacks direct exclusions.

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

  • Behavior3/5

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

    No annotations are provided, so the description must carry the behavioral disclosure burden. The verbs 'List' and 'search' imply a read-only operation, but the description does not explicitly state safety, pagination, or case-sensitivity behavior.

    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, front-loaded sentence that covers the core functionality in under 15 words. No wasted 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?

    The tool is simple with one optional parameter and an output schema, so the description is mostly adequate. However, it lacks details on result ordering or search semantics, though the output schema may cover return values.

    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 schema already documents the only parameter with a description, and the tool description essentially restates that behavior ('search tags matching a query string'). No additional semantic detail is added 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 uses the specific verb 'List' with resource 'page tags' and clearly states both modes: listing all tags and searching by query. This distinguishes it from sibling tools focused on pages or assets.

    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 by offering two modes (list all vs search) but does not explicitly discuss when to prefer this tool over siblings like search_pages. It provides no exclusions or alternative tool guidance.

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

  • Behavior4/5

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

    With no annotations, the description carries the transparency burden. It discloses a key safety behavior: the current state is preserved as a new history entry, indicating the operation is non-destructive. However, it does not mention permission 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?

    Two sentences, no filler. The first sentence front-loads the purpose and the second adds the critical preservation detail.

    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 the core purpose and a key side effect, but given the tool's mutation nature and lack of annotations, it omits usage guidelines and parameter context, leaving it somewhat incomplete.

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

    Parameters2/5

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

    The description does not add meaning to the parameters. The input schema already describes versionId as 'Version to restore, from get_page_history', but pageId lacks description and the description does not compensate for this gap.

    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?

    One sentence clearly states the action: restoring a page to a previous version from history. The verb 'restore' and resource 'page' are specific, and it implicitly distinguishes from read-only sibling tools like get_page_version and get_page_history.

    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 restoring versions) but does not explicitly state when to use it versus alternatives, nor mention any exclusions or prerequisites. It would benefit from a note that read-only alternatives exist.

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

  • Behavior3/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure. It adds the key detail that 'only the provided fields change,' clarifying that updates are partial rather than full replacements. However, it does not mention permissions, reversibility, side effects, or failure conditions, leaving notable gaps for a mutation 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 three short sentences that immediately state the core action, clarify the partial-update behavior, and provide a critical prerequisite. Every sentence serves a purpose with no redundancy or filler.

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

    Completeness3/5

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

    The description covers the core operation and the unique partial-update behavior, and the presence of an output schema handles return-value details. However, for a tool with 7 parameters and no annotations, it lacks explanations of field semantics and potential side effects, making it only moderately complete for AI decision-making.

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

    Parameters2/5

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

    Schema description coverage is only 29% (only 'id' has a description). The description does not compensate by explaining the other parameters (tags, title, content, isPrivate, description, isPublished). It merely states that provided fields change, but does not define their meaning or constraints, so it fails to add sufficient value for the majority of 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 begins with 'Update an existing page by id,' which clearly specifies the verb (update) and resource (page). It distinguishes itself from sibling tools like create_page, delete_page, and move_page by focusing on modifying an existing page rather than creating, removing, or relocating it.

    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 clear context by instructing users to 'Get the id from get_page, list_pages or search_pages first,' which is a useful prerequisite. However, it does not explicitly state when not to use this tool or directly compare it to alternatives (e.g., when to use create_page instead), so it stops short of full guidance.

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

  • Behavior3/5

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

    With no annotations, the description carries the full burden of disclosure. It states the basic read-only behavior and the root folder convention, but it does not discuss pagination, return structure, or whether the list is recursive into subfolders. This is 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?

    The description is two short sentences with no wasted words. It is front-loaded with the main purpose and then a specific detail about folderId, making it easy to scan.

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

    Completeness4/5

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

    Given the tool's simplicity (2 parameters, output schema available), the description covers the essential operation and adds a valuable root-folder note. It doesn't need to explain return values because an output schema exists. Missing details like pagination are minor for a list tool.

    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 description coverage is 0%, so the description must add meaning. It explicitly clarifies folderId 0 as root, but it does not explain the 'kind' parameter beyond the self-explanatory enum values in the schema. This partial compensation warrants a mid-range score.

    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 and resource: 'List uploaded assets (images/files) and subfolders in an asset folder.' It distinguishes this tool from sibling page/tag tools by focusing on assets, and even clarifies the root folder identifier.

    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 clear context for use (listing assets by folder) and explains the meaning of folderId 0 as root, but it does not explicitly mention when not to use this tool or name alternatives. This is acceptable for a simple list tool.

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

  • Behavior3/5

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

    No annotations are provided, so the description carries the burden of behavioral disclosure. It mentions that matching pages are returned with certain fields, but does not disclose pagination, ordering, authentication needs, or rate limits. The description adds some context but is not rich in behavioral details.

    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, front-loaded with the core purpose, and includes a useful pointer to get_page. There is no wasted wording or redundant 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 that there is an output schema, the description does not need to detail return structures. It covers the tool's purpose and gives a relevant follow-up action. It is complete enough for a straightforward search tool, though minor aspects like result limits are not mentioned.

    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% parameter description coverage, so the baseline is 3. The description does not add any additional parameter semantics beyond what the schema already provides, such as examples or formatting rules.

    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 'search' and the resource 'Wiki.js pages', specifying it does full-text search. It also lists the return fields (id, title, path, locale), which distinguishes it from sibling tools like list_pages (which lists all pages) and get_page (which fetches 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 provides clear context for using search_pages (full-text search) and explicitly suggests using get_page to fetch content, which is a helpful downstream instruction. However, it does not explicitly compare to list_pages or state when to use search over listing, so it lacks explicit exclusions.

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

  • 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 of behavioral disclosure. It provides detailed semantics for line slicing (0-based, inclusive, negative indexing, default whole page) which goes beyond the schema. It does not mention behaviors like id/path conflict resolution or error handling, but the core behavior is well covered.

    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 sentences, front-loaded with the primary purpose. Each sentence adds necessary detail (identification, line-range mechanics, default semantics) with no wasted 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 retrieval tool with an output schema and no annotations, the description covers the essential semantics: how to identify a page, how to slice lines, and defaults. It leaves minor gaps such as behavior when both id and path are supplied or when neither is given, but overall it is sufficient for effective use.

    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%, so the baseline is 3. The description adds value by clarifying the combined default (0..-1 returns whole page) and reinforcing the Python-style negative indexing, which is not fully assembled in the schema. This elevates the score to 4.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description uses a specific verb ('Fetch') and resource ('one page'), and clearly states the two identification methods (numeric id OR path). This distinguishes it from sibling tools like get_page_tree and get_page_history, which target different 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?

    The description clearly establishes when to use this tool: when fetching a single page by id or path. However, it does not explicitly mention alternatives or exclusions (e.g., when to use list_pages instead), which would earn a 5.

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

  • Behavior4/5

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

    With no annotations provided, the description carries the burden. It explains important behavioral details: default whole-content range, inclusive 0-based bounds, and Python-style negative indexing. It does not mention error handling or side effects, but the verb 'Fetch' implies a read-only operation, and no side effects are expected.

    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, front-loaded with the primary purpose, then compact yet complete explanation of the optional slicing behavior. No redundant or unnecessary text.

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

    Completeness4/5

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

    The tool has an output schema, so the return structure need not be described. The description covers the core behavior and the non-obvious line-range semantics thoroughly. It lacks explicit error cases or a note that versionId should come from get_page_history, but the schema partly covers that, making it sufficiently 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 description significantly adds meaning to startLine and endLine by explaining the 0-based inclusive ranges, default (0..-1), and negative index semantics beyond the schema's field descriptions. It does not elaborate on pageId/versionId beyond the schema, but versionId already has a useful reference in the schema ('From get_page_history trail').

    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 ('Fetch'), resource ('content of a specific historical version of a page'), and scope, distinguishing it from siblings like get_page (current content) and restore_page_version (mutation).

    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 conveys clear context for use (historical content, optional line slicing) but does not explicitly mention alternatives or when not to use this tool. It relies on the distinct purpose rather than an explicit comparison, which is acceptable but not maximally instructive.

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

  • Behavior5/5

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

    With no annotations provided, the description fully carries the behavioral disclosure burden. It clearly states that the action is permanent and irreversible, which is critical context for a deletion tool and goes beyond the basic 'delete' name.

    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 one sentence, front-loaded with the destructive warning after a clear main action. It is concise and every word earns its place.

    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?

    This simple delete tool has full parameter coverage and an output schema, so the description need not explain return values. The description covers the essential behavior (permanent deletion, irreversibility) and adds a usage requirement, making it complete for its 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?

    The input schema already describes the 'id' parameter with 'Page id to delete' and coverage is 100%. The description adds no further parameter semantics beyond the schema, so the baseline score of 3 applies.

    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: 'Permanently delete a page by id' with a specific verb, resource, and method. It distinguishes from siblings like get_page or update_page by emphasizing deletion and permanence.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines5/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description explicitly warns that the operation is destructive and irreversible, and instructs to 'confirm with the user before calling this'. This provides a clear when-not guideline, establishing appropriate usage conditions.

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

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

wikijs-mcp MCP server

Copy to your README.md:

Score Badge

wikijs-mcp MCP server

Copy to your README.md:

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/sondt2709/wikijs-mcp'

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