MCP RAG Server

MCP RAG Server

site icon
2025.05.02 0
Python文档管理信息检索自然语言处理内容生成开发效率
MCP RAG Server 是一个基于 Model Context Protocol (MCP) 的 Python 服务器,提供 Retrieval-Augmented Generation (RAG) 功能。它支持多种文档格式(如 Markdown、文本、PowerPoint、PDF 等)作为数据源,使用 multilingual-e5-large 模型进行索引化,并通过向量搜索检索相关信息。
View on GitHub

Overview

基本能力

产品定位

MCP RAG Server 是一个基于 MCP 协议的 RAG 功能服务器,主要用于文档索引化和信息检索。

核心功能

  1. MCP 服务器基本实现
  2. 基于 JSON-RPC over stdio 运行
  3. 提供工具注册和执行机制
  4. 错误处理和日志记录

  5. RAG 功能

  6. 支持多种文档格式(Markdown、文本、PowerPoint、PDF)的读取和解析
  7. 支持分层结构的源目录
  8. 使用 markitdown 库将 PowerPoint 和 PDF 转换为 Markdown
  9. 使用 multilingual-e5-large 模型生成嵌入
  10. 使用 PostgreSQL 的 pgvector 作为向量数据库
  11. 通过向量搜索检索相关信息
  12. 支持增量索引化(仅处理新增或修改的文件)

  13. 工具

  14. 向量搜索工具(MCP)
  15. 文档计数工具(MCP)
  16. 索引管理工具(CLI)

适用场景

  1. 文档管理和检索
  2. 知识库构建
  3. 自然语言处理和信息提取

使用教程

使用依赖

  1. Python 3.10 或更高版本
  2. PostgreSQL 14 或更高版本(带 pgvector 扩展)

安装教程

  1. 安装依赖 ```bash # 安装 uv(如果未安装) pip install uv

# 安装依赖 uv sync ```

  1. 设置 PostgreSQL 和 pgvector
  2. 使用 Docker bash docker run --name postgres-pgvector -e POSTGRES_PASSWORD=password -p 5432:5432 -d pgvector/pgvector:pg14 docker exec -it postgres-pgvector psql -U postgres -c "CREATE DATABASE ragdb;"
  3. 在现有 PostgreSQL 上安装 pgvector sql CREATE EXTENSION vector;

  4. 设置环境变量 创建 .env 文件并设置以下变量: POSTGRES_HOST=localhost POSTGRES_PORT=5432 POSTGRES_USER=postgres POSTGRES_PASSWORD=password POSTGRES_DB=ragdb SOURCE_DIR=./data/source PROCESSED_DIR=./data/processed EMBEDDING_MODEL=intfloat/multilingual-e5-large

调试方式

  1. 启动 MCP 服务器 bash uv run python -m src.main

  2. 使用 CLI 工具

  3. 显示帮助 bash python -m src.cli --help
  4. 清除索引 bash python -m src.cli clear
  5. 索引化文档 bash python -m src.cli index
  6. 获取文档计数 bash python -m src.cli count

  7. RAG 工具使用

  8. 向量搜索 json { "jsonrpc": "2.0", "method": "search", "params": { "query": "Python的生成器是什么?", "limit": 5 }, "id": 1 }
  9. 获取文档计数 json { "jsonrpc": "2.0", "method": "get_document_count", "params": {}, "id": 2 }

许可证

该项目遵循 MIT 开源许可条款,请参阅 MIT 了解完整条款。