gomddoc MCP server
Commit Nov 9, 2026Allows AI agents to search and read Markdown documentation including pages, sections, and table of contents.
Also known as monolithiclab/gomddoc
- Stars
- 0
- Tools
- —
- Downloads, 30 days
- —
- Latest version
- 0.5.1
- Last commit
- Nov 9, 2026
- License
- —
What is gomddoc MCP?
gomddoc allows AI agents to search and read Markdown documentation including pages, sections, and table of contents.
Summary generated from the project's README
About gomddoc MCP server
Searching and reading Markdown documentation through an AI agent is what gomddoc enables. This tool provides a specialized interface for LLMs to interact with documentation sites by exposing read-only tools for searching, reading pages, accessing specific sections, and navigating through a table of contents. It functions as both a production-ready HTTP server and a static site generator for Markdown content.
Developers can deploy this via stdio using the gomddoc mcp command or through a Streamable HTTP connection at the /_mcp/ endpoint. The server supports content sourced from local directories or Git repositories via HTTPS or SSH. It uses a TF-IDF inverted index to provide full-text search capabilities, allowing agents to find specific information within the documentation structure. The system is designed to be production-ready with built-in security features like path jailing and optional htpasswd authentication.
What you can do with it
- 1Search documentation contentAsk an AI agent to find specific information within a documentation site using full-text search.
- 2Navigate documentation structuresHave an AI agent explore the table of contents or site navigation to understand the documentation hierarchy.
- 3Read specific documentation sectionsInstruct an AI to retrieve and read a particular section of a Markdown page.
- 4Sync documentation from GitSet up a documentation server that automatically pulls content from a remote Git repository.
Written from the project's README. Every use case is checked against a quote from it.
How to install gomddoc MCP
Formats verified 10 Nov 2026Add to CursorAdd to GooseInstall gomddoc MCP in Claude Code
$ claude mcp add gomddoc -- docker run -i --rm ghcr.io/monolithiclab/gomddoc:0.5.1Install gomddoc MCP in Cursor
~/.cursor/mcp.json
{
"mcpServers": {
"gomddoc": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/monolithiclab/gomddoc:0.5.1"
]
}
}
}Install gomddoc MCP in VS Code
.vscode/mcp.json
{
"servers": {
"gomddoc": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/monolithiclab/gomddoc:0.5.1"
]
}
}
}Install gomddoc MCP in VS Code CLI
$ code --add-mcp '{"name":"gomddoc","type":"stdio","command":"docker","args":["run","-i","--rm","ghcr.io/monolithiclab/gomddoc:0.5.1"]}'Install gomddoc MCP in Claude Desktop
claude_desktop_config.json
{
"mcpServers": {
"gomddoc": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/monolithiclab/gomddoc:0.5.1"
]
}
}
}Install gomddoc MCP in Codex
$ codex mcp add gomddoc -- docker run -i --rm ghcr.io/monolithiclab/gomddoc:0.5.1Install gomddoc MCP in Codex config.toml
~/.codex/config.toml
[mcp_servers.gomddoc] command = "docker" args = ["run", "-i", "--rm", "ghcr.io/monolithiclab/gomddoc:0.5.1"]
Install gomddoc MCP in Gemini CLI
$ gemini mcp add -s user gomddoc docker -- run -i --rm ghcr.io/monolithiclab/gomddoc:0.5.1Install gomddoc MCP in Gemini settings.json
~/.gemini/settings.json
{
"mcpServers": {
"gomddoc": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/monolithiclab/gomddoc:0.5.1"
]
}
}
}Automated checks
Ran Nov 15, 2026Full report →Not verified yet. A server needs a score of 80, no serious finding, and enough data for us to check. How checks work · What to fix for more points
- Source repository linked and reachablemonolithiclab/gomddoc is public and reachablegithub.com/monolithiclab/gomddoc ↗Pass
- Package names this repository as its sourceNot checked
- Build provenance (Sigstore attestation)Not checked
- Open source license (OSI)No licenseFinding
- Commit or release in the last yearLast commit or release 2026-11-09github.com/monolithiclab/gomddoc ↗Pass
- OpenSSF ScorecardNot checked
- Package name not close to a popular packageNot checked
- No critical advisory in the package or its dependenciesNot checked
- No hidden instructions to the model0 tool descriptions and the README read; no override phrases, credential paths or hidden charactersPass
- Destructive tools are labelledNot checked
- Remote endpoint answers the MCP handshakeNot checked
README
View on GitHubGomddoc
A production-ready HTTP server and static site generator for Markdown documentation, with content negotiation, full-text search, SEO output and a built-in MCP server.
Status
Released and in use: v0.5.1 (2026-11-05) is on GitHub Releases, the Homebrew tap (monolithiclab/tap) and
ghcr.io/monolithiclab/gomddoc, and it publishes Monolithic Lab's own sites. Pre-1.0: configuration keys can still
change between minor versions (since v0.1.2 an unknown key in .gomddoc/config.yml is a load error, so check a site
with gomddoc doctor before bumping a pinned version). Open bugs and the ranked backlog are in ROADMAP.md.
Features
- Universal Content Serving: Renders Markdown to HTML inside a theme; serves HTML, CSS, JS, images and every other file type with its detected MIME type
- Content Negotiation:
Acceptheader support;Accept: text/markdownreturns the raw Markdown source, an unsatisfiableAcceptgets406 - Clean URLs:
.mdis stripped from URLs by default (/guideserves the page forguide.md); links between pages written asguide.mdpoint at the clean URL - Markdown URLs: every page's
.mdURL (/guide.md) serves its Markdown with generated frontmatter, inserveand in static builds, and each HTML page links it asrel="alternate" - llms.txt:
/llms.txtindexes the site for AI agents from the navigation, each page linked by its Markdown URL - Git-Native Content: Serve a local directory or a
git+https:///git+ssh://repository URL (in-memory or on-disk clone) - Static Site Generation:
gomddoc buildwrites a static site with clean-URL directories,404.html, sitemap, feed and redirect stubs - Full-Text Search: TF-IDF inverted index built at startup,
tag:filter syntax,GET /api/search, and a Ctrl+K search dialog in every theme - SEO: Canonical URLs,
sitemap.xml,robots.txt, Atomfeed.xml, Open Graph and Twitter tags, JSON-LD, per-pagerobots,redirect_fromandrel="prev/next", enabled by setting a domain - Tags: Frontmatter tags rendered as chips,
/tags/and/tags/{tag}pages, a see-also section and/api/tags - Internationalization: BCP 47 language directories (
fr-FR/) served under/{lang}/, translated UI strings, a language switcher andhreflangtags - MCP Server:
gomddoc mcp(stdio) and/_mcp/(Streamable HTTP) expose read-only search, page, section and navigation tools to AI agents; every stable release is listed in the MCP Registry asio.github.monolithiclab/gomddoc, running the container image - Themes: One bundled theme (
default) plus seven more in gomddoc-themes; feature toggles and CSS variables in config - Review Annotations: Select text on a rendered page, attach a note, and copy every note of the page as Markdown
naming the source file, ready to paste into an LLM harness; notes stay in the browser's
localStorage - Self-Documenting:
gomddoc help,gomddoc info,gomddoc schemaandgomddoc doctorread the embedded guide, list every setting, print the config JSON Schema and check a site for problems - Secure Defaults: Path jail, hidden-file and
excludeblocking (404), GET/HEAD-only content routes, security headers, optional htpasswd Basic Auth - Operations: Graceful shutdown, configurable timeouts, gzip, ETags, Prometheus metrics, health endpoints, optional pprof, and a separate admin listener
Install
# Install script (Linux / macOS, amd64 / arm64): checksum-verified, cosign-verified when cosign is installed
curl -fsSL https://raw.githubusercontent.com/monolithiclab/gomddoc/main/scripts/install.sh | sh
# Homebrew (macOS / Linux)
brew install monolithiclab/tap/gomddoc
# Go toolchain
go install github.com/monolithiclab/gomddoc/cmd/gomddoc@latest
# Docker (multi-arch image on GitHub Container Registry)
docker run --rm -p 8080:8080 -v "$PWD:/site" ghcr.io/monolithiclab/gomddoc serve /site
Release archives carry an SPDX SBOM each and a Sigstore-signed SHA256SUMS; the
Quick Start explains the install script's options and how to verify a release by hand.
gomddoc is free for noncommercial use under the PolyForm Noncommercial License 1.0.0, which covers open-source projects, personal sites, non-profits and education; any for-profit use, internal documentation included, needs a commercial license. Request a free license through the issue form.
Use
gomddoc serve ./docs # production server on :8080 (also git+https:// and git+ssh:// URLs)
gomddoc preview ./docs # dev mode, first free port from 8080, opens the browser
gomddoc build ./docs -d docs.example.com # static site into build/site
gomddoc doctor ./docs # every configuration and content problem, with fixes
gomddoc help # the user guide, embedded in the binary
Documentation
The user guide is docs/guide/, the same pages gomddoc help and the gomddoc mcp server
serve:
| Topic | Page |
|---|---|
| Install, first site, verifying a release | Quick Start |
| Every flag, environment variable and config key | Configuration |
| Local directories and Git sources | Content Sources |
| AI agents over MCP | MCP Server |
| Themes, templates, web components | Theming & Assets |
| Authentication, path jail, headers | Security |
| Health, metrics, pprof | Observability |
| Docker, Kubernetes, static hosting | Deployment |
| Search, SEO, i18n | Search, SEO, Internationalization |
| HTTP endpoints and headers, custom renderers | Advanced Topics |
| Problems and fixes | Doctor, Troubleshooting |
For contributors: docs/architecture.md (how the pieces fit),
docs/decisions.md (why, D-numbered), docs/specs/ and plans/ (feature designs and
their execution notes), docs/reviews/ (review rounds) and ROADMAP.md.
Development
Requirements: Go (the exact toolchain is pinned by go.mod's toolchain line and fetched automatically) and Make.
Lint and benchmark tools are pinned in tools/go.mod; nothing needs installing globally.
make help # every command
make ci # the gate CI runs: golangci-lint, govulncheck, go mod tidy -diff, action/image pin checks,
# then tests with -race and 87% minimum coverage (needs network for govulncheck)
make run # serve ./testsite locally
Contributions: branch, make lint-fix, make ci, then a pull request. Coverage stays at 87% or above.
License
gomddoc is dual-licensed:
- Noncommercial use (personal projects, hobby use, education, research, and other noncommercial purposes) is free under the PolyForm Noncommercial License 1.0.0.
- Commercial use — any use that is not a noncommercial purpose, including use in or for a for-profit business, product, or service — requires a separate commercial license. See LICENSE-COMMERCIAL.md.
Release notes for each version are on GitHub Releases, generated by GoReleaser from conventional commit messages.
gomddoc MCP questions
How do I add gomddoc MCP to Claude Code?
Run claude mcp add gomddoc -- docker run -i --rm ghcr.io/monolithiclab/gomddoc:0.5.1 in your terminal. Add --scope user to make it available in every project.
How do I add gomddoc MCP to Cursor?
Open ~/.cursor/mcp.json and add the server under mcpServers, using the Cursor config shown in the install section above.
What can the MCP server do?
The MCP server exposes read-only tools for searching and reading pages, sections, and navigation within the documentation.
Can I serve documentation directly from a Git repository?
Yes, you can serve a local directory or a Git repository via HTTPS or SSH.
Is there a way to check my documentation for configuration errors?
Yes, you can use the 'gomddoc doctor' command to check a site for configuration and content problems.