Markus Michalski FAQ

Wiki.js MCP Server: Anwendung und Beispiele

Typische Abläufe mit dem Wiki.js MCP Server: Seiten anlegen, sicher aktualisieren, Tags lesen, suchen, blättern, verschieben und mehrsprachig pflegen.

English version

Zurück zur Übersicht

Anwendung und Beispiele

Die Beispiele zeigen die Tool-Argumente als JSON. Wie du sie formulierst, hängt von deinem MCP-Client ab; in der Regel beschreibst du die Aufgabe, und das Modell wählt Tool und Argumente.

Seite anlegen

{
  "path": "projekte/mein-plugin",
  "title": "Mein Plugin",
  "content": "# Mein Plugin\n\nBeschreibung ...",
  "description": "Kurzbeschreibung für die Meta-Angabe",
  "locale": "de",
  "tags": ["plugin", "dokumentation"]
}

Ohne locale entsteht die Seite in der Sprache en. Existiert der Pfad in dieser Sprache schon, schlägt der Aufruf mit Failed to create page: ... fehl.

Bestehende Seite ändern

Der sichere Ablauf bei Inhaltsänderungen:

  1. Seite mit wikijs_get_page lesen.
  2. Den gesamten neuen Inhalt zusammenstellen.
  3. Mit wikijs_update_page den vollständigen Inhalt senden und isPublished: true mitgeben.
{
  "path": "projekte/mein-plugin",
  "locale": "de",
  "content": "# Mein Plugin\n\nNeuer, vollständiger Inhalt ...",
  "isPublished": true
}

Nur die Beschreibung oder den Titel ändern (Inhalt und Tags bleiben erhalten):

{ "id": 42, "description": "Neue Kurzbeschreibung", "isPublished": true }

Bei Seiten über 100.000 Zeichen immer den vollständigen content mitsenden, siehe Tools-Referenz.

Tags einer Seite lesen und setzen

wikijs_get_page liefert keine Tags. Lies sie über wikijs_list_pages (Eintrag mit passender id oder path). Zum Setzen sendest du das vollständige Array in tags; es ersetzt die bisherigen Tags.

{ "id": 42, "tags": ["mcp", "wikijs"], "isPublished": true }

Suchen

{ "query": "Plugin", "locale": "de" }

Die Antwort enthält results mit id, title, path, description und locale sowie suggestions von Wiki.js.

Durch die Seitenliste blättern

{ "locale": "de", "limit": 100, "offset": 0 }

Setze den nächsten Aufruf mit offset = pagination.next_offset fort, solange has_more true ist. Beachte die Besonderheit von total_count bei gesetztem locale in der Tools-Referenz.

Seite verschieben

{
  "path": "alt/mein-plugin",
  "locale": "de",
  "destinationPath": "archiv/mein-plugin",
  "destinationLocale": "de"
}

destinationLocale immer mitgeben, sonst wird en verwendet.

Mehrsprachige Seiten

Wiki.js führt jede Sprache als eigene Seite unter demselben Pfad. Lege deshalb pro Sprache einen eigenen wikijs_create_page-Aufruf mit dem passenden locale an und aktualisiere beide Seiten getrennt.

Seite löschen

{ "path": "entwuerfe/idee", "locale": "de" }

Das Löschen ist endgültig und wird vom Server nicht abgefragt. Kläre die Rückfrage im Client oder lass dir die Seite vorher mit wikijs_get_page anzeigen.