RAG文档处理服务器

一个结合本地LLM和LangGraph的RAG文档处理服务器,支持多种文档格式索引、向量搜索和问答功能。

  • by Ktylx
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Ktylx/rag-mcp

使用说明

RAG MCP服务器

MCP服务器,具有本地LLM和LANGGRAPH for RAG(retrieval-augmented generation)功能。

机会

  • 文件索引 -支持 .md, .txt, .rst, .py, .js, .ts, .json, .yaml, .yml
  • 向量搜索 通过Chromadb进行语义搜索
  • RAG管道 -带有正确RAG的Langgraph(重新提出请求、相关性评估、幻觉检查)
  • 本地LLM -使用OLLAMA,无需付费API

快速启动

Docker Compose

重要的是: Ollama不是Docker的一部分,必须在本地单独运行。

# 1. Запустить Ollama локально (отдельным терминалом)
ollama serve
ollama pull phi3:mini

# 2. Запустить Docker контейнер
docker compose up

局部起动

# Установка зависимостей
pip install -e ".[dev]"

# Запуск Ollama (отдельным терминалом)
ollama serve
ollama pull phi3:mini

# Запуск MCP сервера
python -m src.server

使用

启动Docker

# Сборка и запуск (Ollama должен быть запущен локально)
docker compose up --build

# Проверить статус
docker compose ps

要求: 在启动Docker之前,请确保Ollama在本地运行:

ollama serve

IDE连接(本地Python)

{
  "mcpServers": {
    "rag-mcp": {
      "command": "python",
      "args": ["-m", "src.server"]
    }
  }
}

连接到IDE(Docker容器)

{
  "mcpServers": {
    "rag-mcp": {
      "command": "docker",
      "args": ["exec", "-i", "rag-mcp-server", "python", "-m", "src.server"]
    }
  }
}

或者,使用 npx сMCP检查员:

# Подключение к работающему контейнеру
docker exec -it rag-mcp-server python -m src.server

可用工具

  1. 索引文件夹 -索引文档文件夹
index_folder("./sample_docs")
  1. ask_问题 -问个问题
ask_question("Как оформлять docstrings в Python?")
  1. find_relevant_docs -查找相关文件
find_relevant_docs("Python docstrings", top_k=5)
  1. summarize_文件 -创建Sammari文档
summarize_document("./sample_docs/api_reference.md")
  1. 索引状态 -获取索引统计
index_status()

测试

# Запуск всех тестов
pytest

# Запуск с покрытием
pytest --cov=src

项目结构

rag-mcp/
├── src/
│   ├── config.py           # Конфигурация
│   ├── server.py           # MCP сервер
│   ├── indexer/            # Индексация документов
│   ├── rag/                # RAG движок (LangGraph)
│   └── utils/              # Утилиты
├── sample_docs/            # Демо-документы
├── tests/                  # Тесты
├── docker-compose.yml      # Docker Compose
└── Dockerfile

配置

参数在 src/config.py:

  • CHUNK_SIZE -常量大小(默认为1000)
  • CHUNK_OVERLAP -覆盖通道(默认为200)
  • OLLAMA_BASE_URL URL ollama(默认)http://localhost:11434)
  • LLM_MODEL -生成模型(默认为PHI3:mini)
  • DEFAULT_TOP_K -搜索结果数(默认为5)

要求

  • Python 3.11+
  • Ollama(本地或Docker)
  • Docker和Docker Compose(用于容器化)