Diese Dokumentation bezieht sich immer auf die aktuellste veröffentlichte Version.
Der MCP-Server wikijs-mcp stellt zehn Tools bereit. Sieben davon sprechen mit der Wiki.js-GraphQL-API, drei arbeiten ausschließlich auf der lokalen SQLite-Datenbank.
| Tool | Zweck | Ziel |
|---|---|---|
wikijs_create_page |
Seite anlegen | Wiki.js (schreibend) |
wikijs_update_page |
Seite ändern | Wiki.js (schreibend) |
wikijs_get_page |
Seite lesen | Wiki.js (lesend) |
wikijs_list_pages |
Seiten auflisten | Wiki.js (lesend) |
wikijs_search_pages |
Volltextsuche | Wiki.js (lesend) |
wikijs_delete_page |
Seite löschen | Wiki.js (destruktiv) |
wikijs_move_page |
Seite verschieben | Wiki.js (schreibend) |
wikijs_get_page_history |
Lokale Änderungshistorie lesen | nur lokale DB |
wikijs_mark_verified |
Seite als gegen den Code geprüft markieren | nur lokale DB |
wikijs_get_verified_refs |
Verifizierte Refs lesen | nur lokale DB |
Alle Eingaben werden geprüft, bevor eine Anfrage an Wiki.js geht.
| Feld | Regel |
|---|---|
path |
1 bis 500 Zeichen, nur Buchstaben, Ziffern, -, _ und /, beginnt und endet mit Buchstabe oder Ziffer, kein .. und kein //, kein führender Slash |
locale |
Format de oder en-US (zwei Kleinbuchstaben, optional Bindestrich und zwei Großbuchstaben) |
id |
positive ganze Zahl |
title |
1 bis 200 Zeichen |
description |
1 bis 500 Zeichen |
content |
1 bis 500.000 Zeichen |
tags |
höchstens 50 Tags, jeder 1 bis 100 Zeichen |
Die Datenbank-Spalte der Wiki.js-Beschreibung ist in der Praxis auf 255 Zeichen begrenzt. Halte die Beschreibung unter 250 Zeichen, sonst scheitert das Speichern in Wiki.js, obwohl die Validierung des Tools 500 erlaubt.
Pfade mit Punkt oder Nicht-ASCII-Zeichen lehnt die Validierung ab. Solche Seiten sprichst du über ihre id an.
Fehler kommen als normales Tool-Ergebnis zurück. Typische Meldungen: Page not found at path: ..., Either "id" or "path" must be provided, HTTP error! status: ..., GraphQL request failed: ..., Request timed out. Please try again..
Legt eine neue Seite an. Existiert unter dem Pfad schon eine Seite, schlägt der Aufruf fehl.
| Parameter | Typ | Pflicht | Standard | Beschreibung |
|---|---|---|---|---|
path |
string | Ja | Seitenpfad ohne führenden Slash | |
title |
string | Ja | Titel | |
content |
string | Ja | Inhalt (Markdown oder HTML) | |
description |
string | Ja | Meta-Beschreibung | |
locale |
string | Nein | en |
Sprache |
editor |
string | Nein | markdown |
markdown, code oder ckeditor |
isPublished |
boolean | Nein | true |
Sofort veröffentlichen |
isPrivate |
boolean | Nein | false |
Private Seite |
tags |
string[] | Nein | [] |
Tags |
sourceRepo |
string | Nein | leer | Quellprojekt für die lokale Historie |
sourceRef |
string | Nein | leer | Commit oder Tag für die lokale Historie |
summary |
string | Nein | leer | Ein Satz zur Änderung, nur lokale Historie |
Rückgabe: message (Page created successfully at /<pfad>) und page mit id, path, title.
Ändert eine bestehende Seite. Die Seite wird über id oder über path plus locale bestimmt.
| Parameter | Typ | Pflicht | Standard | Beschreibung |
|---|---|---|---|---|
id |
integer | Nein* | Seiten-ID | |
path |
string | Nein* | Seitenpfad | |
locale |
string | Nein | en |
Sprache, bei Pfad-Zugriff wichtig |
content |
string | Nein | Neuer Inhalt, ersetzt die ganze Seite | |
title |
string | Nein | Neuer Titel | |
description |
string | Nein | Neue Beschreibung | |
isPublished |
boolean | Nein | nicht gesetzt | Veröffentlichungsstatus |
tags |
string[] | Nein | Ersetzt die Tags | |
sourceRepo, sourceRef, summary |
string | Nein | leer | Nur lokale Historie |
confirmContentShrink |
boolean | Nein | false |
Bestätigt eine beabsichtigte starke Kürzung |
*Eine der beiden Angaben id oder path ist Pflicht.
Was nicht mitgeschickt wird, bleibt erhalten: Der Server lädt die Seite und sendet Inhalt, Titel, Beschreibung und Tags unverändert mit. Das gilt nicht für den Veröffentlichungsstatus.
Sende bei jedem Update einer veröffentlichten Seite
isPublished: truemit. Ohne diesen Parameter schickt der Server keinen Status, und Wiki.js speichert die Seite als Entwurf.
content ersetzt den kompletten Seiteninhalt, es gibt kein Patchen. Lade die Seite zuerst mit wikijs_get_page und sende den vollständigen neuen Text.
confirmContentShrink)Ist der alte Inhalt mindestens 200 Zeichen lang und der neue Inhalt kürzer als die Hälfte des alten, lehnt der Server das Update ab. Die Fehlermeldung nennt beide Längen. Ist die Kürzung gewollt (zum Beispiel beim Umbau eines Hubs auf eine Kurzfassung), wiederhole den Aufruf mit confirmContentShrink: true. Der Schutz greift nur, wenn content mitgeschickt wird.
Rückgabe: message (Page <id> updated successfully) und result (Wiki.js-Antwort mit succeeded, errorCode, message).
Nicht änderbar über dieses Tool sind isPrivate und der Editor-Typ.
Liest eine Seite per id oder per path plus locale (Standard en).
Rückgabe: id, path, title, description, content, contentType, isPublished, locale, createdAt, updatedAt.
Inhalte über 100.000 Zeichen werden gekürzt und mit dem Hinweis [Content truncated. Original length: ... chars. ...] abgeschlossen.
Den
updatedAt-Wert brauchst du fürwikijs_mark_verified. Lies ihn nach dem letzten Publish.
| Parameter | Typ | Standard | Beschreibung |
|---|---|---|---|
locale |
string | alle | Nach Sprache filtern |
limit |
integer | 50 |
1 bis 200 |
offset |
integer | 0 |
Anzahl zu überspringender Einträge, mindestens 0 |
Rückgabe: pages (je Seite id, path, title, description, locale, isPublished, tags, updatedAt) und pagination mit limit, offset, total_count, has_more und, solange es weitere Seiten gibt, next_offset. Der Server holt dafür jedes Mal alle Seiten von Wiki.js und filtert und schneidet lokal. total_count gilt nach dem Locale-Filter.
| Parameter | Typ | Pflicht | Beschreibung |
|---|---|---|---|
query |
string | Ja | Suchbegriff, 2 bis 200 Zeichen |
locale |
string | Nein | Ergebnisse nach Sprache filtern |
Rückgabe: totalHits, suggestions und results (je Treffer id, title, path, description, locale). Der Locale-Filter wird erst nach der Suche angewendet.
Löscht eine Seite endgültig. Parameter wie bei wikijs_get_page (id oder path, locale). Rückgabe: message (Page <id> deleted permanently) und result.
Das Löschen ist nicht rückgängig zu machen. Frage vorher nach.
| Parameter | Typ | Pflicht | Standard | Beschreibung |
|---|---|---|---|---|
destinationPath |
string | Ja | Neuer Pfad | |
id |
integer | Nein* | Seiten-ID | |
path |
string | Nein* | Aktueller Pfad | |
locale |
string | Nein | en |
Aktuelle Sprache |
destinationLocale |
string | Nein | en |
Zielsprache |
Rückgabe: message, from, to, destinationLocale, result.
Die URL der Seite ändert sich, Links müssen nachgezogen werden. Historie-Einträge und verified-Marker sind nach dem Pfad abgelegt: Nach einem Verschieben bleiben sie beim alten Pfad, die Seite gilt am neuen Pfad als nie verifiziert.
Liest die lokal geloggte Änderungshistorie. Ruft Wiki.js nicht auf.
| Parameter | Typ | Pflicht | Standard | Beschreibung |
|---|---|---|---|---|
path |
string | Ja | Seitenpfad, wie bei create/update verwendet | |
locale |
string | Nein | alle | Nach Sprache filtern |
limit |
integer | Nein | 20 |
1 bis 200, neueste zuerst |
Rückgabe: path und entries. Jeder Eintrag hat id, page_path, changed_at (UTC), locale, source_repo, source_ref, summary, verified und page_updated_at. verified ist nur bei Einträgen von wikijs_mark_verified gleich 1. Bei Einträgen aus create/update heißt source_ref nur: Die Seite wurde bei diesem Stand geschrieben.
Geloggt werden nur Aufrufe, bei denen mindestens eines von sourceRepo, sourceRef, summary gesetzt war.
Hält fest, dass eine Seite bei einem bestimmten Commit gegen den Quellcode geprüft wurde. Schreibt nur in die lokale Datenbank, ändert die Wiki.js-Seite nicht und prüft weder, ob die Seite existiert, noch, ob der Ref gültig ist.
| Parameter | Typ | Pflicht | Beschreibung |
|---|---|---|---|
path |
string | Ja | Seitenpfad, ein führender / wird ignoriert |
locale |
string | Ja | Sprache |
sourceRepo |
string | Ja | Name des Quellprojekts |
sourceRef |
string | Ja | Commit oder Tag, gegen den geprüft wurde |
pageUpdatedAt |
string | Ja | updatedAt der Seite, nach dem letzten Publish gelesen |
summary |
string | Nein | Kurze Notiz, z. B. baseline claim check |
Leere Werte (nach Entfernen von Leerzeichen und Zeilenumbrüchen) für sourceRepo, sourceRef oder pageUpdatedAt lehnt das Tool ab. Pfade mit .., //, abschließendem Slash oder Leerzeichen werden abgelehnt.
Rückgabe: message (Marked /<pfad> (<locale>) as verified at <ref>).
Liefert je Seite und Sprache den neuesten verifizierten Ref. Seiten, die nie markiert wurden, erscheinen nicht, auch wenn sie einen geschriebenen sourceRef haben. Ruft Wiki.js nicht auf.
| Parameter | Typ | Pflicht | Beschreibung |
|---|---|---|---|
path |
string | Nein | Seitenpfad, ohne Angabe alle verifizierten Seiten |
locale |
string | Nein | Nach Sprache filtern |
Rückgabe: entries mit page_path, locale, source_repo, source_ref, page_updated_at, verified_at.
Der Marker gilt nur, solange
page_updated_atmit dem aktuellenupdatedAtder Seite aus Wiki.js übereinstimmt. Das Tool vergleicht nicht selbst, das übernimmt der Skillsource-check.
| Tool | Lesend | Destruktiv | Idempotent |
|---|---|---|---|
wikijs_get_page, wikijs_list_pages, wikijs_search_pages |
ja | nein | ja |
wikijs_get_page_history, wikijs_get_verified_refs |
ja | nein | ja |
wikijs_create_page, wikijs_move_page, wikijs_mark_verified |
nein | nein | nein |
wikijs_update_page |
nein | nein | ja |
wikijs_delete_page |
nein | ja | nein |
Wie die Tools zusammenspielen, zeigt die Seite Arbeitsabläufe.