Labsco
yoseforb logo

Markdown Navigation MCP

from yoseforb

An MCP server that provides efficient navigation and reading of large markdown files using ctags to reduce context usage

๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅโœ“ VerifiedFreeNeeds API keys

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.

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

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 server