
MCP RAG Server

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 功能服务器,主要用于文档索引化和信息检索。
核心功能
- MCP 服务器基本实现
- 基于 JSON-RPC over stdio 运行
- 提供工具注册和执行机制
-
错误处理和日志记录
-
RAG 功能
- 支持多种文档格式(Markdown、文本、PowerPoint、PDF)的读取和解析
- 支持分层结构的源目录
- 使用 markitdown 库将 PowerPoint 和 PDF 转换为 Markdown
- 使用 multilingual-e5-large 模型生成嵌入
- 使用 PostgreSQL 的 pgvector 作为向量数据库
- 通过向量搜索检索相关信息
-
支持增量索引化(仅处理新增或修改的文件)
-
工具
- 向量搜索工具(MCP)
- 文档计数工具(MCP)
- 索引管理工具(CLI)
适用场景
- 文档管理和检索
- 知识库构建
- 自然语言处理和信息提取
使用教程
使用依赖
- Python 3.10 或更高版本
- PostgreSQL 14 或更高版本(带 pgvector 扩展)
安装教程
- 安装依赖 ```bash # 安装 uv(如果未安装) pip install uv
# 安装依赖 uv sync ```
- 设置 PostgreSQL 和 pgvector
- 使用 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;"
-
在现有 PostgreSQL 上安装 pgvector
sql CREATE EXTENSION vector;
-
设置环境变量 创建
.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
调试方式
-
启动 MCP 服务器
bash uv run python -m src.main
-
使用 CLI 工具
- 显示帮助
bash python -m src.cli --help
- 清除索引
bash python -m src.cli clear
- 索引化文档
bash python -m src.cli index
-
获取文档计数
bash python -m src.cli count
-
RAG 工具使用
- 向量搜索
json { "jsonrpc": "2.0", "method": "search", "params": { "query": "Python的生成器是什么?", "limit": 5 }, "id": 1 }
- 获取文档计数
json { "jsonrpc": "2.0", "method": "get_document_count", "params": {}, "id": 2 }