Skip to content
duxt

/mcp

An MCP server over the same content.

A Model Context Protocol endpoint, so an agent can query the documentation instead of scraping it.

Tools

ToolWhat it does
list_versionsEvery version, with the prefix that scopes it
list_pagesThe table of contents, bounded and scoped
search_docsFind a page by term, with an excerpt around the match
read_pageOne page as Markdown, with duxt frontmatter

Scope is a URL prefix

list_versions hands back the prefix each version is served at — /app, /app/v1, /de/app — and that string is the whole of the scope list_pages and search_docs accept. It also carries the version's label, lifecycle status, which languages it is published in and whether it is the default, so an agent chooses an edition before it searches one.

Omitting the prefix covers every version, in the site's default language. A version nested under another — /app/v1 below the current /app — is never inside its parent's scope.

Bounded answers

Both listings take limit (20 by default, 100 at most) and a cursor. Results are ordered by path, and a nextCursor line names where to resume; a listing without one is complete. The cursor is the last path returned, so it stays stable when the documentation changes between two calls.

What read_page returns

duxt's own YAML frontmatter — path, prefix, version label and ref, locale and lifecycle status — over the authored Markdown with the author's own frontmatter removed. Never the rendered HTML, and never Content's parse tree.

Notes

Same collections as the pages, so the answers cannot drift from what is published. The server name, description and instructions come from the module options.

The server reuses a path-only index for each production collection. A listing reads metadata for the requested results plus one continuation row. Search reads bodies in blocks of at most 64 pages and stops once the answer and continuation are known. Unicode matching and translation precedence are unchanged. A term with no matches still scans the whole scope, but does not retain all bodies in memory.

Was this page helpful?