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
Navigation follows your folders
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
- You are writing a book with a deliberate chapter order and want
SUMMARY.mdto control it. - You like the reading experience of the Rust book and want exactly that layout.
- You depend on mdBook preprocessors or renderers, such as PDF or EPUB output through third-party backends.
- You publish to a static host and want search to work there. mdBook's search runs in the browser; gomddoc's
buildoutput has no search backend, content negotiation, MCP endpoint or metrics, because those need the server. - You need a permissive licence for commercial use at no cost. mdBook is MPL-2.0.
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.