Summary
Structure first, then the section — not the whole file.
The pattern it enables is three cheap calls instead of one expensive read: see the tree, find the section's bounds, read that section. On a 2,000-line planning document that is the difference between a task being answerable and the context being spent before the work starts.
What it is
A Go MCP server that navigates large markdown files by structure, using Universal Ctags to index headings and reading only the sections you ask for.
What you get
- Document structure shown as a tree, in ASCII or JSON, with the heading depth capped where you want it and defaulting to H1 plus H2
- Sections listed with a maximum heading level and an optional regex filter on the name
- Line-number boundaries for a named section, for when you need the range rather than the text
- The content of one section read by its exact heading, with subsection depth limited or taken in full
- Ctags run automatically on demand, with results cached and the cache invalidated when the file changes
- Token use on large documentation, planning files and specifications cut down by reading sections instead of whole files
Requirements
Universal Ctags installed (`brew install universal-ctags`, or the apt or dnf equivalent) and a recent Go to build the binary. No account and no key.
Setup effort
One command — mdnav-server
