Concepts
The following terms are relevant for understanding the DokuWiki MCP server and its architecture.
Model Context Protocol (MCP)
Section titled “Model Context Protocol (MCP)”The Model Context Protocol is an open standard that enables AI assistants to securely access external tools and data sources. It defines how an AI model invokes tools, passes inputs, and receives results - without the user writing code.
| Aspect | Relevance for this server |
|---|---|
| Role | The DokuWiki MCP server provides 48 tools via MCP |
| Version | Negotiated at handshake (LATEST: 2025-11-25) |
| Specification | modelcontextprotocol.io |
The AI assistant (e.g. in TypingMind) connects to the MCP server, receives the list of available tools, and can invoke them via natural language prompts.
JSON-RPC
Section titled “JSON-RPC”JSON-RPC (Remote Procedure Call) is the protocol used for communication between the AI assistant and the MCP server. The assistant sends a JSON request with a tool name and parameters; the server responds with a JSON result.
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "dokuwiki_get_page", "arguments": { "page": "start" } }}On the server side, the same JSON-RPC interface is used to communicate with
the DokuWiki instance (lib/exe/jsonrpc.php).
stdio Transport
Section titled “stdio Transport”stdio (Standard Input/Output) is the transport mode of the MCP server.
The server reads JSON-RPC requests from stdin and writes responses to
stdout.
| Stream | Usage |
|---|---|
stdout |
MCP JSON-RPC protocol (never logs) |
stderr |
Structured JSON logs (logger.js) |
JWT (JSON Web Token)
Section titled “JWT (JSON Web Token)”JWT is the authentication mechanism for the DokuWiki API. The token
is sent as a Bearer token in the Authorization header:
Authorization: Bearer <jwt-token>DokuWiki 2024-02-06b “Kaos” has built-in JWT support. The token is
generated inside the DokuWiki container and stored in the TypingMind
userSettings as DOKUWIKI_TOKEN.
Namespace
Section titled “Namespace”A namespace is DokuWiki’s concept for organizing pages. It acts like
a directory, but uses colons (:) as separators instead of slashes (/).
| Example | Meaning |
|---|---|
project:alpha |
Page “alpha” in namespace “project” |
project:client:beta |
Nested: “beta” in “project:client” |
start |
Page in the root namespace |
Tool Factory Pattern
Section titled “Tool Factory Pattern”All 48 tools follow the same factory pattern:
export function toolName(dokuwikiClient, config) { return { name: 'dokuwiki_tool_name', description: '...', inputSchema: { type: 'object', properties: {...} }, handler: async (args) => { ... } };}Each factory receives the DokuWikiClient and server configuration. Tools
are registered in src/tools/index.js.
destructiveHint
Section titled “destructiveHint”11 of the 48 tools are marked as destructive
(destructiveHint: true). The MCP protocol flags these tools so the AI
assistant can request confirmation before execution.
Examples: delete_media, delete_user, save_page (mode=replace),
rename_page, rename_media.
Related Pages
Section titled “Related Pages”- Architecture - System design and components
- Installation - Docker image setup
- Quickstart - Getting started
- API Reference - All 48 tools