markdown-navigator-mcp
Markdown Navigation MCP Server
Documentation
Markdown Navigation MCP Server
Efficiently navigate large markdown files (2,000+ lines) without loading entire documents into context. Reduces token usage by 50-80% when working with documentation, planning files, and technical specifications.
Quick Start
Prerequisites: Universal Ctags and Go 1.21+
# Install ctags
brew install universal-ctags # macOS
sudo apt install universal-ctags # Ubuntu/Debian
sudo dnf install universal-ctags # Fedora
# Build and install
git clone
cd markdown-mcp
go build -o mdnav-server ./cmd/server
sudo cp mdnav-server /usr/local/bin/Configure Claude Code (`~/claude.json`):
{
"mcpServers": {
"markdown-nav": {
"command": "mdnav-server"
}
}
}Features
- Zero-configuration: Automatic ctags execution on-demand
- Smart caching: Sub-microsecond responses for repeated queries
- Auto-invalidation: Cache updates when files change
- Selective reading: Load only the sections you need
- Tree navigation: View document structure without reading content
- Pattern matching: Find sections by regex patterns
- Depth control: Limit tree/section depth for focused views
Tools
markdown_tree
Display document structure as tree (ASCII or JSON format).
Key parameters:
- `file_path`: Path to markdown file
- `format`: "ascii" or "json" (default: "json")
- `max_depth`: Limit tree depth 1-6 (default: 2 shows H1+H2)
- `section_name_pattern`: Regex to filter sections
markdown_section_bounds
Get line number boundaries for a specific section.
Key parameters:
- `file_path`: Path to markdown file
- `section_heading`: Exact heading text (without # symbols)
markdown_read_section
Read content from a specific section.
Key parameters:
- `file_path`: Path to markdown file
- `section_heading`: Exact heading text (without # symbols)
- `max_subsection_levels`: Limit subsection depth (omit for all)
markdown_list_sections
List all sections with filters.
Key parameters:
- `file_path`: Path to markdown file
- `max_depth`: Maximum heading level to show (default: 2)
- `section_name_pattern`: Regex to filter section names
Usage Examples
Finding and reading a specific task
User: "Review Task 4 from the planning document"
Claude uses:
1. markdown_tree to see document structure
2. markdown_section_bounds to find Task 4 location
3. markdown_read_section to read only Task 4 content
Result: Complete task analysis using only relevant section (~200 lines instead of 2000)Discovering documentation sections
User: "What testing strategies are documented?"
Claude uses:
1. markdown_list_sections with pattern="test" to find testing sections
2. markdown_read_section for each relevant section
Result: Comprehensive overview without loading entire documentFor more detailed tool usage examples with real output, see examples/EXAMPLES.md.
Configuration
Custom ctags path
If ctags is not in PATH, specify location:
{
"mcpServers": {
"markdown-nav": {
"command": "mdnav-server",
"args": ["-ctags-path", "/custom/path/to/ctags"]
}
}
}Troubleshooting
"ctags not found in PATH"
- Install Universal Ctags or use `-ctags-path` flag
"section not found"
- Use exact heading text (case-sensitive, no # symbols)
- Run `markdown_list_sections` to see available sections
"no entries found"
- Ensure file has markdown headings (#, ##, ###, ####)
- Verify Universal Ctags (not Exuberant) is installed
Cache issues
- Restart MCP server to clear cache (auto-invalidates on file changes)
Development
For implementation details, architecture, and contributing guidelines, see CLAUDE.md.
Quick development commands:
go test ./... # Run tests
golangci-lint run # Lint code
go build ./cmd/server # Build serverLicense
This project is licensed under the GNU General Public License v3.0.
Frequently asked questions
What is markdown-navigator-mcp?
markdown-navigator-mcp is Markdown Navigation MCP Server
How do I install markdown-navigator-mcp?
Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.
Is markdown-navigator-mcp open source?
Yes — it is hosted on GitHub at https://github.com/yoseforb/markdown-navigator-mcp.
Related MCP tools
eBPF-powered network observability for Kubernetes. Indexes L4/L7 traffic with full K8s context, decrypts TLS without keys. Queryable by AI agents via MCP and humans via dashboard.
GOWA - WhatsApp REST API with support for UI, Multi Account, Webhooks, and MCP, and Chatwoot. Built with Golang for efficient memory use.
The missing open-source Kubernetes UI with a built-in MCP server for AI agents. See what's broken, why, and what changed. Issues, Topology, event timeline, Helm, GitOps, live service traffic, and cluster audits - all in one Go binary.
mcp-language-server gives MCP enabled clients access semantic tools like get definition, references, rename, and diagnostics.
The Terraform MCP Server provides seamless integration with Terraform ecosystem, enabling advanced automation and interaction capabilities for Infrastructure as Code (IaC) development.
Run MATLAB® using AI applications with the official MATLAB MCP Server from MathWorks®. This MCP server for MATLAB supports a wide range of coding agents like Claude Code® and Visual Studio® Code.
Run your own MCP server? See who uses it and what to fix.
Measure it with TrackMCP