MCP Servers

A collection of Model Context Protocol servers, templates, tools and more.

论文检索rag

Created 6/16/2026
Updated 1 day ago
Repository documentation and setup instructions

Papers RAG MCP Server

一个可插拔、可观测的模块化 RAG(检索增强生成)服务框架,通过 MCP(Model Context Protocol)协议对外暴露工具接口,支持 AI 助手直接调用。


架构概览

                    ┌─────────────────────────────────────────┐
                    │            MCP Client                    │
                    │  (Copilot / Claude Desktop / 自定义)      │
                    └──────────────┬──────────────────────────┘
                                   │ MCP Protocol (Tools)
                    ┌──────────────▼──────────────────────────┐
                    │            MCP Server                    │
                    │  - query_knowledge_hub                   │
                    │  - list_collections                      │
                    │  - get_document_summary                  │
                    └──────────────┬──────────────────────────┘
                                   │
        ┌──────────────────────────┼──────────────────────────┐
        │                          │                          │
        ▼                          ▼                          ▼
┌───────────────┐       ┌──────────────────┐       ┌──────────────────┐
│  Ingestion    │       │    Retrieval     │       │   Dashboard      │
│  Pipeline     │       │    Pipeline      │       │  (Streamlit)     │
├───────────────┤       ├──────────────────┤       ├──────────────────┤
│ PDF → MD      │       │ Dense (Vector)   │       │ 系统总览          │
│ Chunk Split   │       │ Sparse (BM25)    │       │ 数据浏览          │
│ LLM Refine    │       │ RRF Fusion       │       │ Ingestion管理     │
│ Metadata Enr. │       │ Rerank (可选)     │       │ 摄取追踪          │
│ Embedding     │       │ LLM Response     │       │ 查询追踪          │
│ Vector Store  │       │                  │       │ 评估面板          │
└───────────────┘       └──────────────────┘       └──────────────────┘
        │                          │                         │
        └──────────────────────────┼─────────────────────────┘
                                   │
                    ┌──────────────▼──────────────────────────┐
                    │          Observability                  │
                    │    (全链路追踪 / 结构化日志)              │
                    └─────────────────────────────────────────┘

核心数据流

1. 数据摄取(Ingestion Pipeline)

PDF 文档 → Markdown 转换 → 语义分块 → Chunk Refinement(可选)
    → Metadata 增强 → Embedding 向量化 → 写入向量存储
  • 支持 PDF 格式文档解析
  • 可选的 LLM Chunk Refinement 提升块质量
  • Metadata Enricher 自动提取关键词、摘要、标签等
  • 支持图片自动描述(Vision LLM),将图片信息缝合进 Chunk

2. 检索查询(Retrieval Pipeline)

用户 Query → Dense Embedding 检索 + BM25 稀疏检索
    → RRF 融合排序 → Rerank(可选) → LLM 生成回答
  • Dense Retrieval:基于 Embedding 的语义向量检索
  • Sparse Retrieval:BM25 关键词精确匹配
  • RRF Fusion:混合排序结果融合,兼顾查全率与查准率
  • Rerank:可选的 Cross-Encoder / LLM 精排
  • LLM Response:基于检索结果生成最终回答

模块设计

| 模块 | 可插拔接口 | 默认实现 | 可选实现 | |------|-----------|---------|---------| | LLM | BaseLLM | OpenAI 兼容接口 | Azure / DeepSeek / Ollama | | Embedding | BaseEmbedding | OpenAI 兼容接口 | Azure / Ollama | | Vector Store | BaseVectorStore | ChromaDB | Qdrant / Pinecone | | Reranker | BaseReranker | Cross-Encoder | LLM Rerank | | Splitter | BaseSplitter | Recursive Splitter | 自定义 | | Evaluator | BaseEvaluator | Ragas | Custom |

所有模块通过配置文件 config/settings.yaml 一键切换,零代码修改。


适用范围

适用场景

  • 个人知识库管理:论文、文档的本地语义检索与问答
  • 企业内部知识库:技术文档、合规文档、产品手册的智能检索
  • AI Agent 工具链:通过 MCP 协议为 AI 助手提供 RAG 能力
  • RAG 系统原型验证:快速搭建和测试不同检索策略的效果

技术栈

  • 语言:Python 3.11+
  • 框架:MCP Protocol / Streamlit
  • 存储:ChromaDB(默认)/ Qdrant / Pinecone
  • 检索:BM25 + Dense Embedding + RRF Fusion + Rerank
  • 评估:Ragas

快速开始

前置条件

  • Python 3.11+
  • 一个 OpenAI 兼容的 API Key(ModelScope / DashScope / OpenAI 等均可)

安装与配置

# 克隆仓库
git clone https://github.com/Au-LiuJY/papers_rag_mcp.git
cd papers_rag_mcp

# 安装依赖
pip install -r requirements.txt

# 配置 settings.yaml(复制示例并填入 API Key)
cp config/settings.yaml.example config/settings.yaml
# 编辑 config/settings.yaml,填入你的 API Key 和模型配置

启动服务

# 启动 MCP Server
python mcp_server.py

# 启动 Dashboard(可选)
streamlit run src/dashboard/app.py

项目结构

├── config/                    # 配置文件
│   ├── settings.yaml          # 主配置(已加入 .gitignore)
│   └── settings.yaml.example  # 配置示例
├── src/
│   ├── core/                  # 核心逻辑
│   │   ├── ingestion/         # 数据摄取管线
│   │   ├── retrieval/         # 检索管线
│   │   └── settings.py        # 配置加载
│   ├── libs/                  # 可插拔模块实现
│   │   ├── llm/               # LLM 抽象与实现
│   │   ├── embedding/         # Embedding 抽象与实现
│   │   ├── vector_store/      # 向量存储抽象与实现
│   │   ├── reranker/          # 重排器抽象与实现
│   │   └── splitter/          # 分块器
│   ├── mcp/                   # MCP 协议服务
│   └── dashboard/             # Streamlit 管理平台
├── tests/                     # 测试
├── data/                      # 数据目录(已加入 .gitignore)
└── logs/                      # 日志目录(已加入 .gitignore)
Quick Setup
Installation guide for this server

Install Package (if required)

uvx papers_rag_mcp

Cursor configuration (mcp.json)

{ "mcpServers": { "au-liujy-papers-rag-mcp": { "command": "uvx", "args": [ "papers_rag_mcp" ] } } }