Zum Inhalt springen

Konzepte

Die folgenden Begriffe sind für das Verständnis des DokuWiki MCP-Servers und seiner Architektur relevant.

Das Model Context Protocol ist ein offener Standard, der KI-Assistenten den sicheren Zugriff auf externe Werkzeuge und Datenquellen ermöglicht. Es definiert, wie ein KI-Modell Werkzeuge aufruft, Eingaben übergibt und Ergebnisse erhält - ohne dass der Benutzer Code schreiben muss.

Aspekt Bedeutung für diesen Server
Rolle Der DokuWiki MCP-Server stellt 48 Werkzeuge über MCP bereit
Version Wird beim Verbindungsaufbau ausgehandelt (LATEST: 2025-11-25)
Spezifikation modelcontextprotocol.io

Der KI-Assistent (z.B. in TypingMind) verbindet sich mit dem MCP-Server, erhält die Liste der verfügbaren Werkzeuge und kann diese per Natursprache-Prompt aufrufen.

JSON-RPC (Remote Procedure Call) ist das Protokoll, das für die Kommunikation zwischen KI-Assistent und MCP-Server verwendet wird. Der Assistent sendet eine JSON-Anfrage mit einem Werkzeugnamen und Parametern; der Server antwortet mit einem JSON-Ergebnis.

{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "dokuwiki_get_page",
"arguments": { "page": "start" }
}
}

Auf der Serverseite wird dieselbe JSON-RPC-Schnittstelle genutzt, um mit der DokuWiki-Instanz zu kommunizieren (lib/exe/jsonrpc.php).

stdio (Standard Input/Output) ist der Transportmodus des MCP-Servers. Der Server liest JSON-RPC-Anfragen von stdin und schreibt Antworten auf stdout.

Stream Verwendung
stdout MCP JSON-RPC Protokoll (niemals Logs)
stderr Strukturierte JSON-Logs (logger.js)

JWT ist der Authentifizierungsmechanismus für die DokuWiki-API. Der Token wird als Bearer-Token im Authorization-Header gesendet:

Authorization: Bearer <jwt-token>

DokuWiki 2024-02-06b “Kaos” hat integrierte JWT-Unterstützung. Der Token wird im DokuWiki-Container generiert und in den TypingMind-userSettings als DOKUWIKI_TOKEN gespeichert.

Ein Namensraum ist DokuWikis Konzept zur Organisation von Seiten. Er fungiert wie ein Verzeichnis, verwendet aber Doppelpunkte (:) als Trennzeichen statt Schrägstriche (/).

Beispiel Bedeutung
projekt:alpha Seite “alpha” im Namensraum “projekt”
projekt:client:beta Verschachtelt: “beta” in “projekt:client”
start Seite im Root-Namensraum

Alle 48 Werkzeuge folgen dem gleichen Factory-Pattern:

export function toolName(dokuwikiClient, config) {
return {
name: 'dokuwiki_tool_name',
description: '...',
inputSchema: { type: 'object', properties: {...} },
handler: async (args) => { ... }
};
}

Jede Factory erhält den DokuWikiClient und die Server-Konfiguration. Werkzeuge werden in src/tools/index.js registriert.

11 der 48 Werkzeuge sind als destruktiv markiert (destructiveHint: true). Das MCP-Protokoll kennzeichnet diese Werkzeuge so, dass der KI-Assistent vor der Ausführung eine Bestätigung anfordern kann.

Beispiele: delete_media, delete_user, save_page (mode=replace), rename_page, rename_media.