ragdocs

Local 2025-08-31 23:32:10 0

Provides RAG capabilities for semantic document search using Qdrant vector database and Ollama/OpenAI embeddings, allowing users to add, search, list, and delete documentation with metadata support.


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

npm install -g @mcpservers/ragdocs

MCP Server Configuration

{
  "mcpServers": {
    "ragdocs": {
      "command": "node",
      "args": ["@mcpservers/ragdocs"],
      "env": {
        "QDRANT_URL": "http://127.0.0.1:6333",
        "EMBEDDING_PROVIDER": "ollama"
      }
    }
  }
}

Using Qdrant Cloud:

{
  "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:

{
  "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

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