MODULAR-RAG-MCP-SERVER
模块化 RAG + MCP 协议开源框架,用 Skill 驱动 AI 自动编码,让 Copilot/
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
模块化 RAG + MCP 协议开源框架,用 Skill 驱动 AI 自动编码,让 Copilot/
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象这样一个场景:你是一名 AI 工程师,正在用 GitHub Copilot 辅助开发一个企业知识库问答系统。你对 Copilot 发出指令:"帮我在知识库里检索 RAG 优化的最新方案",Copilot 立刻通过 MCP 协议连接到你的 Modular RAG 系统,返回了精准的检索结果——这不再是科幻场景。jerry-ai-dev/MODULAR-RAG-MCP-SERVER 就是让这一幕成真的开源框架:通过 MCP 协议,将模块化 RAG 能力标准化输出,供 Copilot、Claude Desktop 等 AI 助手直接调用。
本项目作者 jerry-ai-dev 是一名大模型方向求职者。在准备面试的过程中,他深刻体会到:RAG 几乎是所有大模型应用岗位面试的必考内容,但网上的 RAG 教程大多是碎片化的代码片段,没有一个完整的、生产级别的项目来串联所有知识点。
基于"教是最好的学"这一理念,他决定从零构建一个完整的模块化 RAG 系统。项目于 2024 年底开源,很快吸引了大量同样在求职路上摸索的 AI 学习者。截至 2026 年 6 月,项目已获得 987 Stars、213 Forks,成为 MCP+RAG 细分领域最受关注的项目之一。
项目的另一大特色是配套教学笔记(微信公众号/博客形式),将项目开发过程中的思路、踩坑、设计决策全部记录下来,形成了一套完整的 RAG 工程化方法论。
Modular RAG MCP Server 采用七层模块化架构,每个核心组件均定义了抽象接口,支持零代码替换。这种设计哲学借鉴了现代后端框架的"依赖注入"模式,让开发者可以自由组合 LLM / Embedding / Reranker / Splitter / VectorStore / Evaluator。
**数据摄取层(Ingestion Pipeline)**负责将 PDF 等文档转化为可检索的知识单元。流程为:PDF → Markdown(通过 markitdown) → Chunk(通过 langchain-text-splitters) → Transform(可选:多模态图片描述 via Vision LLM) → Embedding → ChromaDB 向量存储。整个链路可观测,每个中间状态均有 trace 记录。
**检索层(Hybrid Search)**是本项目技术含量最高的模块,采用两段式架构:
这种"粗排 + 精排"的架构是工业级 RAG 系统的标准范式,也是面试中经常被问到的知识点。
MCP Server 层是本项目的差异化亮点。它基于 Model Context Protocol 标准实现,通过 stdio 传输协议暴露工具接口,主流 MCP Client(GitHub Copilot、Cursor、Claude Desktop)均可直接接入。这意味着你不需要写任何前端代码,就可以让 AI 助手"看见"你的知识库。
**可观测性层(Observability)**通过全链路 trace 记录 ingestion 与 query 的每个中间状态,让黑盒 RAG 变成白盒。开发者可以清晰看到:query 经过哪些模块、每个模块的输入输出是什么、最终结果是如何得出的。
Dashboard 层基于 Streamlit 实现六页面管理平台:系统总览、数据浏览、Ingestion 管理、摄取追踪、查询追踪、评估面板。这为非技术用户提供了友好的交互界面。
ChromaDB 作为向量数据库,是当前最轻量级的本地向量检索方案。相比 Qdrant、Milvus 等需要独立部署的服务,ChromaDB 可以直接嵌入 Python 进程运行,大幅降低部署复杂度。配合 MCP Server 的 stdio 传输模式,整个系统可以在单机上完整运行。
LangChain Text Splitters 提供了工业级的中文分块策略,支持按字符数、语义、递归等多种分块方式。项目特别使用了 jieba 中文分词器来处理中文文档,确保 Chunk 边界在语义完整处断开。
Ragas 是当前 RAG 评估的主流框架,提供了 Faithfulness、Answer Relevancy、Context Precision、Context Recall 等多维度指标。项目内置了 Golden Test Set 回归测试机制,避免了"凭感觉调优"的尴尬。
MCP Python SDK 是 Anthropic 主导的 Model Context Protocol 标准实现,提供了标准化的工具暴露接口。项目选用 stdio 传输(标准输入输出)而非 HTTP,简化了进程间通信。
值得注意的是,依赖列表中包含 markitdown[pdf],这意味着项目需要 LibreOffice 等外部工具来完成 PDF 到 Markdown 的转换,在某些环境下可能需要额外安装依赖。
项目采用了严格的三层测试体系:Unit Test(单元测试,覆盖独立模块逻辑)、Integration Test(集成测试,验证模块间交互)、E2E Test(端到端测试,验证 MCP Client + Dashboard 完整链路)。
开发规范方面:
pytest 配置中使用了标记(markers)区分测试类型:@pytest.mark.unit、@pytest.mark.integration、@pytest.mark.e2e、@pytest.mark.llm(需要真实 LLM API 的测试)。通过 -m "not llm" 可以快速跳过需要付费 API 的测试。
项目提供了三种分支策略,分别面向不同场景的用户:
启动流程:
main 分支setup 激活 Setup Skill这种"对话即 IDE"的理念非常前卫,但目前 Setup Skill 的实现依赖 Claude/Copilot Agent 的能力,对没有这些工具的用户存在一定门槛。
当前 Alpha 阶段的局限:main.py 中 MCP Server 的完整实现被标注为"Phase E"(第五阶段),代码仅包含启动逻辑骨架,实际 MCP 工具处理逻辑尚未完成。不过从 DEV_SPEC 的详细规划来看,完整实现已在路线图内。
Modular RAG MCP Server 的核心价值不在于技术独创性,而在于工程化的完整度。它将 RAG 领域的多个知识点——混合检索、重排序、多模态处理、评估体系、MCP 协议——串联为可运行的代码,并通过文档和视频讲解构建了一套学习方法论。
从行业趋势看,MCP 协议正在成为 AI 工具生态的"USB-C 接口":Anthropic、GitHub、Cursor 等主流 AI 工具厂商纷纷支持。将 RAG 能力通过 MCP 暴露,正在成为 AI 应用开发的新范式。本项目率先将两者结合,为这一趋势提供了可参考的工程实践。
适合人群:AI 应用开发求职者、需要 RAG 实战项目的在校生、想了解 Skill 驱动开发的 AI 工程师,以及希望快速搭建 MCP+RAG 原型的产品经理。