RagDocs MCP Server

# RagDocs MCP Server A Model Context Protocol (MCP) server that provides RAG (Retrieval-Augmented Generation) capabilities using Qdrant vector database and Ollama/OpenAI embeddings. This server enables semantic search and management of documentation through vector similarity. ## Features - Add documentation with metadata - Semantic search through documents - List and organize documentation - Delete documents - Support for both Ollama (free) and OpenAI (paid) embeddings - Automatic text chunking and embedding generation - Vector storage with Qdrant ## Prerequisites - Node.js 16 or higher - One of the following Qdrant setups: - Local instance using Docker (free) - Qdrant Cloud account with API key (managed service) - One of the following for embeddings: - Ollama running locally (default, free) - OpenAI API key (optional, paid) ## Available Tools ### 1. add_document Add a document to the RAG system. Parameters: - `url` (required): Document URL/identifier - `content` (required): Document content - `metadata` (optional): Document metadata - `title`: Document title - `contentType`: Content type (e.g., "text/markdown") ### 2. search_documents Search through stored documents using semantic similarity. Parameters: - `query` (required): Natural language search query - `options` (optional): - `limit`: Maximum number of results (1-20, default: 5) - `scoreThreshold`: Minimum similarity score (0-1, default: 0.7) - `filters`: - `domain`: Filter by domain - `hasCode`: Filter for documents containing code - `after`: Filter for documents after date (ISO format) - `before`: Filter for documents before date (ISO format) ### 3. list_documents List all stored documents with pagination and grouping options. Parameters (all optional): - `page`: Page number (default: 1) - `pageSize`: Number of documents per page (1-100, default: 20) - `groupByDomain`: Group documents by domain (default: false) - `sortBy`: Sort field ("timestamp", "title", or "domain") - `sortOrder`: Sort order ("asc" or "desc") ### 4. delete_document Delete a document from the RAG system. Parameters: - `url` (required): URL of the document to delete ## Installation ```bash npm install -g @mcpservers/ragdocs ``` ## MCP Server Configuration ```json { "mcpServers": { "ragdocs": { "command": "node", "args": ["@mcpservers/ragdocs"], "env": { "QDRANT_URL": "http://127.0.0.1:6333", "EMBEDDING_PROVIDER": "ollama" } } } } ``` Using Qdrant Cloud: ```json { "mcpServers": { "ragdocs": { "command": "node", "args": ["@mcpservers/ragdocs"], "env": { "QDRANT_URL": "https://your-cluster-url.qdrant.tech", "QDRANT_API_KEY": "your-qdrant-api-key", "EMBEDDING_PROVIDER": "ollama" } } } } ``` Using OpenAI: ```json { "mcpServers": { "ragdocs": { "command": "node", "args": ["@mcpservers/ragdocs"], "env": { "QDRANT_URL": "http://127.0.0.1:6333", "EMBEDDING_PROVIDER": "openai", "OPENAI_API_KEY": "your-api-key" } } } } ``` ## Local Qdrant with Docker ```bash docker run -d --name qdrant -p 6333:6333 -p 6334:6334 qdrant/qdrant ``` ## Environment Variables - `QDRANT_URL`: URL of your Qdrant instance - For local: "http://127.0.0.1:6333" (default) - For cloud: "https://your-cluster-url.qdrant.tech" - `QDRANT_API_KEY`: API key for Qdrant Cloud (required when using cloud instance) - `EMBEDDING_PROVIDER`: Choice of embedding provider ("ollama" or "openai", default: "ollama") - `OPENAI_API_KEY`: OpenAI API key (required if using OpenAI) - `EMBEDDING_MODEL`: Model to use for embeddings - For Ollama: defaults to "nomic-embed-text" - For OpenAI: defaults to "text-embedding-3-small" ## License Apache License 2.0