Markdown RAG MCP
Provides semantic search over markdown documentation using RAG, allowing natural language queries and integration with MCP clients.
README
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
-
Clone and setup:
git clone <repository-url> cd markdown-rag-mcp -
Start Milvus database:
docker-compose -f docker/docker-compose.yml up -d -
Install dependencies using uv
uv sync -
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
- Architecture Guide: Detailed system architecture and components overview
- CLI Guide: Command-line interface guide
- Examples Guide: Demo scripts
๐ License
MIT License - see LICENSE file for details.
Built with โค๏ธ for developers who need intelligent, markdown-based document search capabilities
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.