/mcp
Ein MCP-Server über denselben Inhalten.
Ein Model-Context-Protocol-Endpunkt, damit ein Agent die Dokumentation abfragen kann, statt sie zu scrapen.
Werkzeuge
| Werkzeug | Was es tut |
|---|---|
list_versions | Jede Version, mit dem Prefix, das sie eingrenzt |
list_pages | Das Inhaltsverzeichnis, begrenzt und eingegrenzt |
search_docs | Eine Seite nach Begriff finden, mit Textausschnitt |
read_page | Eine Seite als Markdown, mit duxt-Frontmatter |
Der Scope ist ein URL-Prefix
list_versions liefert das Prefix, unter dem jede Version ausgeliefert wird —
/app, /app/v1, /de/app — und genau dieser String ist der gesamte Scope,
den list_pages und search_docs annehmen. Dazu kommen Label, Lebenszyklus-
Status, die Sprachen der Version und ob sie die Standardversion ist: So wählt
ein Agent eine Ausgabe, bevor er darin sucht.
Ohne Prefix sind alle Versionen abgedeckt, in der Standardsprache der Seite.
Eine Version, die unter einer anderen liegt — /app/v1 unterhalb des aktuellen
/app — gehört nie zum Scope der übergeordneten.
Begrenzte Antworten
Beide Auflistungen nehmen limit (Standard 20, höchstens 100) und einen
cursor. Ergebnisse sind nach Pfad sortiert, und eine nextCursor-Zeile nennt
die Fortsetzung; fehlt sie, ist die Liste vollständig. Der Cursor ist der zuletzt
gelieferte Pfad und bleibt damit stabil, wenn sich die Dokumentation zwischen
zwei Aufrufen ändert.
Was read_page zurückgibt
duxts eigenes YAML-Frontmatter — Pfad, Prefix, Version-Label und Ref, Sprache und Lebenszyklus-Status — über dem geschriebenen Markdown, dessen ursprüngliches Frontmatter entfernt ist. Nie das gerenderte HTML und nie Contents Parse-Baum.
Anmerkungen
Dieselben Collections wie die Seiten, die Antworten können also nicht von dem abweichen, was veröffentlicht ist. Name, Beschreibung und Instruktionen des Servers kommen aus den Optionen des Moduls.
Der Server verwendet pro Produktions-Collection einen wiederverwendeten Pfadindex. Eine Liste liest Metadaten für die gewünschten Ergebnisse und eine Fortsetzungszeile. Die Suche liest Inhalte in Blöcken von höchstens 64 Seiten und stoppt, sobald Antwort und Fortsetzung feststehen. Unicode-Abgleich und Übersetzungspriorität bleiben erhalten. Ohne Treffer wird der ganze Bereich durchsucht, ohne alle Inhalte gleichzeitig zu speichern.