Quick start Features Configuration Install Licensing GitHub Get started

Your docs have two audiences now.

gomddoc turns a folder of Markdown into a fast, searchable documentation site for your readers, and an MCP server for their AI agents. One binary, no build step, no config file to write first.

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

No Homebrew? Use the install script, go install or the Docker image.


Humans browse. Agents query.

Open a page in a browser and you get a themed site with navigation, search and a table of contents. Ask the same URL for Markdown and you get the source back, with a frontmatter block listing the page's metadata, related pages and its neighbours in the navigation. That is context a model can use directly, with no HTML to strip.

curl -H "Accept: text/markdown" https://docs.example.com/guides/deploy

For deeper access, connect an MCP client. Claude, Cursor, Copilot and any other client that speaks the Model Context Protocol get six read-only tools: search the docs, read a page or a single section, list pages, walk the table of contents and find related pages.

{
  "mcpServers": {
    "docs": {
      "command": "gomddoc",
      "args": ["mcp", "./docs"]
    }
  }
}

A running gomddoc serve exposes the same tools over HTTP at /_mcp/, behind the same authentication as the site itself.


Serve any Git repository

Pass a Git URL wherever you would pass a folder. gomddoc makes a shallow clone at startup and serves it straight from memory.

gomddoc serve "git+https://github.com/your-org/your-project.git"

Pin a branch and a subdirectory in the URL fragment. This serves the docs/ folder of the release-2.1 branch:

gomddoc serve "git+https://github.com/your-org/monorepo.git#release-2.1:docs"

Private repositories work over SSH with a deploy key and strict host-key checking. The same URLs work with preview, build and mcp, so you can hand an agent the docs of a project you have never cloned.


Edit, refresh, publish

Pages render on request, so there is nothing to rebuild while you write. Edit a page, refresh the browser and the change is there. preview picks a free port and opens the browser for you.

gomddoc preview --open ./docs

Reviewing a draft an agent wrote? Select a passage, click the pen in the margin and type a note. The Annotations button collects every note on the page as Markdown that names the source file and quotes each passage, so you paste one block back into your agent and it revises the right lines. Notes stay in your browser.

When you want static files for GitHub Pages, S3 or Netlify, gomddoc build runs the same renderer and writes a complete site, with sitemap, feed, tag pages and a 404 page. Search, Markdown negotiation and MCP need the live server; everything else works from a bucket.


Your folders are the navigation

gomddoc reads the directory tree and builds the sidebar from it. There is no routing table to maintain and no sidebar file to keep in sync.

docs/
  README.md             → /
  getting-started.md    → /getting-started
  api/
    README.md           → /api/
    endpoints.md        → /api/endpoints
  guides/
    deployment.md       → /guides/deployment

Breadcrumbs, a table of contents, heading anchors, dark mode, syntax highlighting and copy buttons come with every page. Old .md links redirect to the clean URL, and redirect_from in frontmatter keeps moved pages reachable.


Production ready on day one

serve is the command you deploy. It ships with the operational basics a docs site needs behind a load balancer.

Observability

Performance

Security

SEO

Deployment


Your agent can configure it too

gomddoc ships its own manual. gomddoc help reads the full guide in the terminal, gomddoc schema prints the JSON Schema for the config file, and gomddoc doctor checks a site and reports every problem with its file, line and fix.

$ gomddoc doctor ./docs
error    .gomddoc/config.yml:3  config.unknown-key  unknown key `hightlighting` at the top level
         fix: did you mean `highlighting`?
1 error, 0 warnings (1 info hidden, use -v)

Over MCP, the same guide, schema and doctor are available to the agent editing your docs, so it can set up gomddoc and check its own work before you review it. doctor --strict fails CI on warnings.


Search with tags built in

Full-text search is ready as soon as the server starts, with no plugin and no hosted index. Press Ctrl+K or Cmd+K on any page. Results rank by relevance, with titles weighted above body text.

tag:kubernetes rollback

Tags from frontmatter work as filters. The same query syntax works in the search box, in GET /api/search and in the search_docs tool your agent calls.


One folder per language

Add a directory named with a language tag, such as fr-FR or zh-Hans, and gomddoc serves it as a translation. Each language gets its own routes, search, sitemap, feed and tag pages, and every page links to its translations with hreflang.

docs/
  README.md          → /
  fr-FR/README.md    → /fr-FR/
  zh-Hans/README.md  → /zh-Hans/

A language switcher appears automatically. The interface ships in English, and a small locale file translates it.


Eight themes, or your own

The default theme is built in. Seven more, including Material, Nord and Midnight, install from gomddoc-themes by copying a folder. All of them support light and dark mode and every feature above.

For a look of your own, put Go templates in .gomddoc/assets/themes/ and they override the built-in ones. Your theme lives next to your content, versioned in the same repository. This site runs on a custom theme, served by gomddoc.


Markdown, with the extras you expect

gomddoc reads CommonMark and GitHub Flavored Markdown, so your files still render correctly on GitHub.


Free for your projects, licensed for your company

Personal projects, community open source, research, teaching and nonprofits are free under the PolyForm Noncommercial License. The source is public on GitHub.

Running gomddoc for a business needs a commercial licence. It is priced per deployment, so readers, writers and traffic never change the price. Write to contact@monolithiclab.fr with what you are running and we will send terms.


Try it on your docs

Install gomddoc and point it at any folder of Markdown. Your site opens in the browser a few seconds later.

curl -fsSL https://raw.githubusercontent.com/monolithiclab/gomddoc/main/scripts/install.sh | sh
gomddoc preview --open ./docs

Read the quick start · Browse the features · Star it on GitHub