Skip to content

πŸ“– A Retrieval-Augmented Generation (RAG) MCP server for markdown documentation with semantic search capabilities

License

Notifications You must be signed in to change notification settings

mohllal/markdown-rag-mcp

Repository files navigation

Markdown RAG MCP

A Retrieval-Augmented Generation (RAG) MCP server for markdown documentation with semantic search capabilities.

🎯 Core Capabilities

  • Document Indexing: Process markdown files with YAML frontmatter support, automatic chunking, and metadata extraction
  • Semantic Search: Find relevant content using natural language queries with configurable similarity thresholds
  • Incremental Updates: Change detection and indexing for large document collections
  • Real-time Monitoring: Automatic file system monitoring with live index updates
  • Advanced Embeddings: HuggingFace sentence-transformers with local model execution
  • Vector Storage: High-performance Milvus vector database with Docker Compose setup
  • CLI Interface: Beautiful command-line tools with progress tracking and interactive demos

πŸ€– MCP Server Integration

This system is designed as an MCP server, providing a search tool with semantic search functionality accessible via MCP protocol.

πŸ—οΈ Architecture

For the full system architecture and components overview, check the Architecture Guide.

πŸš€ Quick Start

Prerequisites

  • Python 3.12+
  • Docker and Docker Compose

Installation

  1. Clone and setup:

    git clone <repository-url>
    cd markdown-rag-mcp
  2. Start Milvus database:

    docker-compose -f docker/docker-compose.yml up -d
  3. Install dependencies using uv

    uv sync
  4. Install the package:

    pip install -e .

Basic Usage

CLI Interface

# Index documents (with optional monitoring)
markdown-rag-mcp index ./documents --recursive --watch

# Semantic search with confidence scoring
markdown-rag-mcp search "authentication setup" --limit 5

# System health monitoring
markdown-rag-mcp status

For the full overview of the CLI interface, check the CLI Guide.

Demo Scripts

# Experience incremental indexing with performance metrics
python examples/incremental_indexing_demo.py --setup --runs 5

# Complete RAG pipeline demonstration
python examples/milvus_embeddings_demo.py

For the full list of demo scripts, check the Examples Guide.

πŸ”§ Configuration

Configure via environment variables or .env file, you can use .env.example for some defaults:

# Vector Database Configuration
MARKDOWN_RAG_MCP_MILVUS_HOST=localhost
MARKDOWN_RAG_MCP_MILVUS_PORT=19530
MARKDOWN_RAG_MCP_COLLECTION_NAME=markdown_docs

# Embedding Model Settings
MARKDOWN_RAG_MCP_EMBEDDING_MODEL=sentence-transformers/all-MiniLM-L6-v2
MARKDOWN_RAG_MCP_EMBEDDING_DEVICE=auto  # cpu, cuda, mps, auto
MARKDOWN_RAG_MCP_EMBEDDING_DIMENSIONS=384

# Search and Processing
MARKDOWN_RAG_MCP_SIMILARITY_THRESHOLD=0.7
MARKDOWN_RAG_MCP_CHUNK_SIZE_LIMIT=1000
MARKDOWN_RAG_MCP_CHUNK_OVERLAP=200
MARKDOWN_RAG_MCP_MAX_CONCURRENT_INDEXING=2

# File Monitoring
MARKDOWN_RAG_MCP_WATCH_DEBOUNCE_SECONDS=2
MARKDOWN_RAG_MCP_WATCH_PATTERNS="**/*.md,**/*.markdown"

πŸ“ Project Structure

markdown-rag-mcp/
β”œβ”€β”€ src/markdown_rag_mcp/         # Core library implementation
β”‚   β”œβ”€β”€ cli/                      # Command-line interface
β”‚   β”œβ”€β”€ config/                   # Configuration management
β”‚   β”œβ”€β”€ core/                     # RAG engine and interfaces
β”‚   β”œβ”€β”€ embeddings/               # Embedding providers
β”‚   β”œβ”€β”€ indexing/                 # Document processing pipeline
β”‚   β”œβ”€β”€ models/                   # Data models and schemas
β”‚   β”œβ”€β”€ monitoring/               # File system monitoring
β”‚   β”œβ”€β”€ parsers/                  # Markdown and frontmatter parsing
β”‚   β”œβ”€β”€ search/                   # Query processing and search
β”‚   └── storage/                  # Vector database integration
β”œβ”€β”€ tests/                        # Comprehensive test suite
β”œβ”€β”€ examples/                     # Demo scripts
β”œβ”€β”€ docker/                       # Docker Compose configuration
β”œβ”€β”€ specs/                        # Technical specifications
└── documents/                    # Markdown documents for indexing and searching

πŸ§ͺ Testing

To run the test suite, use the following commands:

# Run complete test suite
uv sync --all-extras
pytest

# Run specific component tests
pytest tests/indexing/ -v
pytest tests/search/ -v
pytest tests/embeddings/ -v

πŸ“š Documentation

πŸ“„ License

MIT License - see LICENSE file for details.


Built with ❀️ for developers who need intelligent, markdown-based document search capabilities

About

πŸ“– A Retrieval-Augmented Generation (RAG) MCP server for markdown documentation with semantic search capabilities

Topics

Resources

License

Stars

Watchers

Forks