RAG Documentation MCP Server
by rahulretnan
# RAG Documentation MCP Server
[](https://smithery.ai/server/@rahulretnan/mcp-ragdocs)
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](#features)
- [Quick Start](#quick-start)
- [Docker Compose Setup](#docker-compose-setup)
- [Web Interface](#web-interface)
- [Configuration](#configuration)
- [Cline Configuration](#cline-configuration)
- [Claude Desktop Configuration](#claude-desktop-configuration)
- [Acknowledgments](#acknowledgments)
- [Troubleshooting](#troubleshooting)
## 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:
```bash
docker-compose up -d
```
To stop the services:
```bash
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`:
```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`:
```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):
```json
{
// 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](https://github.com/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:
```bash
npx kill-port 3030
```
2. Restart the MCP server
3. If the issue persists, check for other processes using the port:
```bash
lsof -i :3030
```
4. You can also change the default port in the configuration if needed