Aller au contenu
duxt

Lecteurs machines

Ce qu’obtient un modèle — llms.txt, le Markdown brut de n’importe quelle page et un vrai serveur MCP.

La documentation est lue autant par des modèles que par des personnes, et les quatre réponses ci-dessous sont générées à partir des mêmes collections que celles dont les pages sont issues — aucune ne peut donc diverger de ce qui est publié.

CheminCe que c’est
/llms.txtUn index : nom du site, résumé, puis le lien .md de chaque page
/llms-full.txtUne extension duxt : les mêmes pages dans un fichier Markdown
<page>.mdLa source Markdown de n’importe quelle page
/mcpUn serveur MCP — quatre outils, de list_versions à read_page

Du Markdown, pas du HTML

Tout ici transmet le Markdown tel qu’il a été écrit, et c’est pourquoi le schéma de la collection demande à Content de stocker rawbody. Un modèle à qui l’on donne du HTML rendu doit défaire une mise en page pour trouver un titre ; celui à qui l’on donne la source lit ce que l’auteur a écrit, les blocs de code toujours des blocs et un bloc MDC toujours un appel de composant.

<page>.md est servi par un middleware plutôt que par une route, car .md est un suffixe du dernier segment du chemin et non un segment à part — il n’existe pas de motif de route Nitro signifiant « tout chemin se terminant par .md ».

Comment une page s’annonce

Rien de tout cela n’a besoin d’être deviné. Chaque page de documentation porte deux relations de lien dans son head — la première nomme son propre Markdown, la seconde l’index qui la couvre :

<link rel="alternate" type="text/markdown" href="/duxt/getting-started.md" />
<link rel="describedby" href="/llms.txt" />

L’alternative pointe vers la page en cours de rendu et non vers son canonique, si bien qu’une ancienne version livre sa propre source plutôt que celle de la version courante. Les deux sont des éléments <link> et non des en-têtes HTTP Link, délibérément : une page prérendue les conserve lorsqu’un edge la sert comme fichier statique, sans aucune configuration d’en-têtes dans le déploiement.

Pourquoi les deux fichiers llms

La convention de llmstxt.org définit l’index. duxt ajoute /llms-full.txt pour un modèle qui ne peut pas récupérer les liens .md page par page et a besoin d’un coup de la même documentation de la version par défaut.

Pourquoi un vrai serveur MCP

/mcp parle le protocole via le SDK officiel plutôt que d’être un point de terminaison JSON de la conception propre de duxt. Un client s’y connecte comme il se connecte à n’importe quoi d’autre, au lieu que quelqu’un écrive un adaptateur autour d’une forme que seul ce thème possède.

Le serveur expose quatre outils bornés : list_versions, list_pages, search_docs et read_page. La recherche couvre les titres, les descriptions et le corps Markdown rédigé ; la source, la version et le préfixe de chemin permettent de la restreindre. Elle ne réutilise volontairement pas l’index du navigateur : l’outil dispose de la base Content déployée et renvoie des pages de résultats adaptées au protocole. Les arguments et résultats sont décrits dans Point de terminaison MCP.

Cette page vous a-t-elle été utile ?