Skip to main content
Glama

mcp-wikijs

MCP server that connects Claude to your Wiki.js instance.

Tools

Tool

Description

search_pages

Search pages by keyword

get_page

Get full page content by path

list_pages

List all pages

create_page

Create a new markdown page

Related MCP server: WikiJS MCP Server

Setup

1. Get your Wiki.js API key

In Wiki.js admin panel → Administration → API Access → create a key.

2. Configure environment

cp .env.example .env
# Fill in WIKIJS_URL and WIKIJS_API_KEY

3. Install and run

npm install
node index.js

4. Connect to Claude Code

Add to ~/.claude/claude_mcp_config.json:

{
  "mcpServers": {
    "wikijs": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-wikijs/index.js"],
      "env": {
        "WIKIJS_URL": "https://your-wiki.railway.app",
        "WIKIJS_API_KEY": "your-api-key"
      }
    }
  }
}

Deploy to Railway

  1. Push this repo to GitHub

  2. New Project on Railway → Deploy from GitHub

  3. Add WIKIJS_URL and WIKIJS_API_KEY as environment variables

Available Tools

4 tools
create_pageC

Create a new page in Wiki.js

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesPage title
pathYesPage path e.g. docs/new-page
contentYesPage content in Markdown
descriptionNoShort page description

TDQS

C2.9/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 disclose behavioral traits. It only states 'Create', which implies a write operation, but lacks details on side effects (e.g., whether it overrides existing content), error handling, or permission requirements.

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

Conciseness4/5

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

The description is a single concise sentence. It is front-loaded with the action and resource, but it lacks any structure or additional context that might be helpful. It is not excessively verbose, but could be slightly more informative.

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 is minimal but adequate for a simple create operation given that the schema fully describes the parameters. However, without behavioral details or output schema, an agent may lack sufficient context for full correct 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?

The input schema covers all four parameters with descriptions, achieving 100% coverage. The tool description adds no additional meaning beyond what is in 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.

Purpose4/5

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

The description clearly states the action ('Create') and the resource ('new page in Wiki.js'). It is straightforward and distinguishes from sibling tools which are read-only operations, though it lacks explicit differentiation.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus the sibling tools (e.g., when to create vs. update an existing page). The description does not mention any conditions or prerequisites.

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

get_pageB

Get the full content of a Wiki.js page by its path

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPage path e.g. /home or /docs/setup

TDQS

B3.3/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 does not mention that the tool is read-only, what happens on missing paths, authentication needs, 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?

Single sentence, no redundancy, front-loaded with key information. Every word is necessary.

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 single-parameter tool, the description covers the core functionality. However, it lacks details on return format, error behavior, or performance considerations, which is noticeable given no output schema.

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 100% (path documented). Description adds no additional meaning beyond restating the parameter purpose; it is adequate but not enriched.

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 ('full content of a Wiki.js page'), and the method ('by its path'). It distinguishes from sibling tools (create, list, search) by focusing on retrieval.

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 search_pages or list_pages. The description does not mention prerequisites or context for usage.

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

list_pagesC

List all pages in Wiki.js

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax pages to return (default 20)

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are present, and the description does not disclose behavioral traits such as return format, pagination behavior, or limits. Only the schema indicates pagination via the 'limit' parameter.

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

Conciseness3/5

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

The description is a single sentence, which is concise, but it lacks substance and could be considered underspecified. It does not fully earn its place by adding sufficient value.

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 lack of output schema and annotations, the description should provide more context about the operation (e.g., pagination, ordering, what data is returned). It does not fully compensate for the missing structured information.

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% (limit parameter fully described). The description adds no additional meaning beyond the schema, but per guidelines, baseline is 3 when coverage is high.

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

Purpose4/5

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

The description clearly states the verb 'List' and the resource 'pages in Wiki.js', but does not differentiate from sibling tools like search_pages or get_page, which could cause confusion.

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 (search_pages, get_page) or when not to use it. The description is too terse to provide context.

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

search_pagesB

Search for pages in Wiki.js by keyword

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch keyword

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description must fully convey behavior. It states 'search by keyword' but does not indicate whether the search is read-only, what fields are searched (title, content, etc.), or if there are any side effects or limitations like pagination or scope.

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 unnecessary words. Every part contributes to clarity, making it highly 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?

Given the simplicity (1 parameter, no output schema, no annotations), the description is minimally adequate but lacks details about the result format, search scope, or any constraints. It covers the core function but not fully.

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 one parameter 'query' described as 'Search keyword'. The description repeats this ('by keyword') but adds no additional 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 uses a specific verb 'Search' and identifies the resource 'pages in Wiki.js' with the method 'by keyword'. It clearly distinguishes from sibling tools like create_page, get_page, and list_pages, which have different actions.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as list_pages (for all pages) or get_page (for a specific page). There are no usage exclusions or best practices mentioned.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updatesv1.0.0
    • First observedcreate_page
    • First observedget_page
    • First observedlist_pages
    • First observedsearch_pages

TDQS

B3.4/5.0

Scored across 4 tools

Disambiguation5/5

Each tool targets a unique operation on pages: create, get by path, list all, and search. No overlap in functionality.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with snake_case (create_page, get_page, list_pages, search_pages).

Tool Count5/5

With 4 tools, the set is well-scoped for basic page operations and within the ideal range of 3-15 tools.

Completeness2/5

Missing critical operations like update and delete pages, which are essential for a wiki. Agents cannot modify or remove pages, leading to workflow failures.

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