RAG Documentation MCP Server

RAG Documentation MCP Server

An MCP server implementation that provides tools for retrieving and processing documentation through vector search, enabling AI assistants to augment their responses with relevant documentation context.

Table of Contents

Features

Tools

  1. search_documentation
    • Search through the documentation using vector search
    • Returns relevant chunks of documentation with source information
  2. list_sources
    • List all available documentation sources
    • Provides metadata about each source
  3. extract_urls
    • Extract URLs from text and check if they're already in the documentation
    • Useful for preventing duplicate documentation
  4. remove_documentation
    • Remove documentation from a specific source
    • Cleans up outdated or irrelevant documentation
  5. list_queue
    • List all items in the processing queue
    • Shows status of pending documentation processing
  6. run_queue
    • Process all items in the queue
    • Automatically adds new documentation to the vector store
  7. clear_queue
    • Clear all items from the processing queue
    • Useful for resetting the system
  8. add_documentation
    • Add new documentation to the processing queue
    • Supports various formats and sources

Quick Start

The RAG Documentation tool is designed for:

  • Enhancing AI responses with relevant documentation
  • Building documentation-aware AI assistants
  • Creating context-aware tooling for developers
  • Implementing semantic documentation search
  • Augmenting existing knowledge bases

Docker Compose Setup

The project includes a docker-compose.yml file for easy containerized deployment. To start the services:

docker-compose up -d

To stop the services:

docker-compose down

Web Interface

The system includes a web interface that can be accessed after starting the Docker Compose services:

  1. Open your browser and navigate to: http://localhost:3030
  2. The interface provides:
    • Real-time queue monitoring
    • Documentation source management
    • Search interface for testing queries
    • System status and health checks

Configuration

Embeddings Configuration

The system uses Ollama as the default embedding provider for local embeddings generation, with OpenAI available as a fallback option. This setup prioritizes local processing while maintaining reliability through cloud-based fallback.

Environment Variables

  • EMBEDDING_PROVIDER: Choose the primary embedding provider ('ollama' or 'openai', default: 'ollama')
  • EMBEDDING_MODEL: Specify the model to use (optional)
    • For OpenAI: defaults to 'text-embedding-3-small'
    • For Ollama: defaults to 'nomic-embed-text'
  • OPENAI_API_KEY: Required when using OpenAI as provider
  • FALLBACK_PROVIDER: Optional backup provider ('ollama' or 'openai')
  • FALLBACK_MODEL: Optional model for fallback provider

Cline Configuration

Add this to your cline_mcp_settings.json:

{ "mcpServers": { "rag-docs": { "command": "node", "args": ["/path/to/your/mcp-ragdocs/build/index.js"], "env": { "EMBEDDING_PROVIDER": "ollama", // default "EMBEDDING_MODEL": "nomic-embed-text", // optional "OPENAI_API_KEY": "your-api-key-here", // required for fallback "FALLBACK_PROVIDER": "openai", // recommended for reliability "FALLBACK_MODEL": "nomic-embed-text", // optional "QDRANT_URL": "http://localhost:6333" }, "disabled": false, "autoApprove": [ "search_documentation", "list_sources", "extract_urls", "remove_documentation", "list_queue", "run_queue", "clear_queue", "add_documentation" ] } } }

Claude Desktop Configuration

Add this to your claude_desktop_config.json:

{ "mcpServers": { "rag-docs": { "command": "node", "args": ["/path/to/your/mcp-ragdocs/build/index.js"], "env": { "EMBEDDING_PROVIDER": "ollama", // default "EMBEDDING_MODEL": "nomic-embed-text", // optional "OPENAI_API_KEY": "your-api-key-here", // required for fallback "FALLBACK_PROVIDER": "openai", // recommended for reliability "FALLBACK_MODEL": "nomic-embed-text", // optional "QDRANT_URL": "http://localhost:6333" } } } }

Default Configuration

The system uses Ollama by default for efficient local embedding generation. For optimal reliability:

  1. Install and run Ollama locally
  2. Configure OpenAI as fallback (recommended):
    { // Ollama is used by default, no need to specify EMBEDDING_PROVIDER "EMBEDDING_MODEL": "nomic-embed-text", // optional "FALLBACK_PROVIDER": "openai", "FALLBACK_MODEL": "text-embedding-3-small", "OPENAI_API_KEY": "your-api-key-here" }

This configuration ensures:

  • Fast, local embedding generation with Ollama
  • Automatic fallback to OpenAI if Ollama fails
  • No external API calls unless necessary

Note: The system will automatically use the appropriate vector dimensions based on the provider:

  • Ollama (nomic-embed-text): 768 dimensions
  • OpenAI (text-embedding-3-small): 1536 dimensions

Acknowledgments

This project is a fork of qpd-v/mcp-ragdocs, originally developed by qpd-v. The original project provided the foundation for this implementation.

Special thanks to the original creator, qpd-v, for their innovative work on the initial version of this MCP server. This fork has been enhanced with additional features and improvements by Rahul Retnan.

Troubleshooting

Server Not Starting (Port Conflict)

If the MCP server fails to start due to a port conflict, follow these steps:

  1. Identify and kill the process using port 3030:
npx kill-port 3030
  1. Restart the MCP server
  2. If the issue persists, check for other processes using the port:
lsof -i :3030
  1. You can also change the default port in the configuration if needed
-
security - not tested
F
license - not found
-
quality - not tested

Enables AI assistants to enhance their responses with relevant documentation through a semantic vector search, offering tools for managing and processing documentation efficiently.

  1. Table of Contents
    1. Features
      1. Tools
      2. Quick Start
        1. Docker Compose Setup
          1. Web Interface
            1. Configuration
              1. Embeddings Configuration
                1. Environment Variables
                2. Cline Configuration
                  1. Claude Desktop Configuration
                    1. Default Configuration
                    2. Acknowledgments
                      1. Troubleshooting
                        1. Server Not Starting (Port Conflict)