npm package: @mcpflow.io/mcp-ragdocs-mcp-server
Description: 基于 RAG 的文档搜索和管理的 MCP 服务器
Author: bossying
Latest version: 1.0.1

# RagDocs MCP Server

<!-- MCPFlow Packaged MCP -->
> 此包由 [MCPFlow](https://mcpflow.io) 打包并发布到npm仓库。

基于 RAG 的文档搜索和管理的 MCP 服务器

## 安装与使用

直接使用npx运行:

```bash
npx @mcpflow.io/mcp-ragdocs-mcp-server
```

或者先安装后使用:

```bash
# 安装
npm install @mcpflow.io/mcp-ragdocs-mcp-server

# 使用
npx @mcpflow.io/mcp-ragdocs-mcp-server
```

## 使用方法

## Installation

```bash
npm install -g @mcpservers/ragdocs
```

## 工具函数

### initBrowser

Initializes the browser for web scraping operations.

**参数:**

- `none`: No parameters required.

### cleanup

Closes the browser instance.

**参数:**

- `none`: No parameters required.

### getEmbeddings

Generates embeddings for a given text.

**参数:**

- `text`: The text for which embeddings are to be generated.

### initCollection

Initializes the Qdrant collection with the specified name and vector size.

**参数:**

- `collectionName`: The name of the Qdrant collection to initialize.

### createCollection

Creates a new Qdrant collection with the specified name and vector size.

**参数:**

- `vectorSize`: The size of the vectors to be used in the collection.
- `collectionName`: The name of the Qdrant collection to create.

### recreateCollection

Deletes an existing Qdrant collection and creates a new one with the specified name and vector size.

**参数:**

- `vectorSize`: The size of the vectors to be used in the collection.
- `collectionName`: The name of the Qdrant collection to recreate.

### isHealthy

Checks if the Qdrant client is healthy.

**参数:**

- `none`: No parameters required.

### addDocument

Adds a document to the Qdrant collection.

**参数:**

- `doc`: The document to add.

### deleteDocument

Deletes a document from the Qdrant collection.

**参数:**

- `url`: The URL of the document to delete.

### generateEmbeddings

Generates embeddings for a given text.

**参数:**

- `text`: The text for which embeddings are to be generated.

### addDocumentation

Adds a document to the RAG system.

**参数:**

- `url`: URL of the document to add.
- `content`: Content of the document to add.
- `metadata`: Metadata of the document.

### fetchContent

Fetches and processes content from a URL.

**参数:**

- `url`: URL to fetch content from.

### chunkText

Chunks a given text into smaller pieces.

**参数:**

- `text`: The text to chunk.
- `maxChunkSize`: The maximum size of each chunk.

### generateEmbeddings

Generates embeddings for text chunks.

**参数:**

- `chunks`: Array of text chunks.



## 原始信息

- **开发者:** heltonteixeira
- **版本:** 1.0.0
- **许可证:** Apache License 2.0
- **原始仓库:** [heltonteixeira/ragdocs](https://github.com/heltonteixeira/ragdocs)

## 原始README

# 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