Quick start Features Configuration Install Licensing GitHub Get started

gomddoc vs mdBook

mdBook is a Rust tool that turns Markdown into an online book, best known as the engine behind The Rust Programming Language. It is excellent at long-form, chapter-ordered reading. gomddoc targets documentation sites instead: navigation comes from the directory tree, pages are served live, and the same content is available to MCP clients.


At a glance

gomddoc mdBook
Runtime Single Go binary Single Rust binary
Model HTTP server, plus gomddoc build for static output Static generator, plus mdbook serve for development
Build before publishing Not needed with serve mdbook build
Navigation Generated from the directory tree Defined by hand in SUMMARY.md
Config file Optional (.gomddoc/config.yml) book.toml, created by mdbook init
Serve a Git URL Built in, with #branch:subdir Files must be on disk
MCP server Built in: stdio and HTTP at /_mcp/ Not built in
Markdown via Accept header Built in Not built in
Search Server-side TF-IDF with tag: filters Client-side (elasticlunr.js), works on static hosts
Themes 8 distinct layouts, each with light and dark mode One layout with five colour schemes
Syntax highlighting Server-side (Chroma) Client-side (highlight.js)
Math and diagrams KaTeX and Mermaid built in MathJax opt-in; Mermaid via preprocessor
Multiple languages Language directories detected automatically Third-party tooling (mdbook-i18n-helpers)
SEO output Sitemap, robots.txt, Atom feed, Open Graph, JSON-LD No built-in sitemap
Metrics and health checks Prometheus /metrics, /health/live, /health/ready Left to your web server
Licence PolyForm Noncommercial 1.0.0 + commercial licence (per deployment) MPL-2.0

mdBook is free for any use. gomddoc is free for noncommercial use and needs a commercial licence for business use; see licensing.


Where gomddoc differs

mdBook builds its sidebar from SUMMARY.md, and a chapter missing from that file is not rendered. That gives authors precise control over reading order, and it means every new page needs a second edit. gomddoc builds navigation from the directory tree, so adding a file adds a page.

The server is the deployment

mdBook writes HTML to book/, which you then host. gomddoc's serve command runs in production, with gzip, ETags, security headers and optional Basic Auth against a bcrypt htpasswd file:

gomddoc serve ./docs --basic-auth-file ./.htpasswd

Page edits show on the next request. New pages join the navigation and search index when the server restarts.

Eight themes

mdBook offers one layout in five colour schemes. gomddoc has eight themes with their own typography and layout: default is compiled into the binary, and academic, gitbook, material, midnight, minimal, nord and ocean come from the gomddoc-themes repository. Every theme supports light and dark mode, a table of contents, breadcrumbs, admonitions, KaTeX and Mermaid.

Your docs are available to MCP clients

gomddoc includes an MCP server with six tools, four resources and three prompts. Clients can search, read a page or a single section, list pages, get a table of contents and find related pages. Local clients launch gomddoc mcp ./docs over stdio; remote clients connect to /_mcp/ on a running server.

Any page URL also answers in Markdown, with a generated frontmatter block holding the page's metadata, related pages and previous/next links:

curl -H "Accept: text/markdown" https://docs.example.com/ch01/intro

Search accepts tag: filters, such as tag:rust tag:async, in the search dialog, at /api/search and in the search_docs MCP tool.


When mdBook is the better choice


Get started

brew install monolithiclab/tap/gomddoc
gomddoc preview --open ./docs

The getting started guide covers the other install options and the first configuration steps.