Skip to main content
Glama
johnylira

RAG MCP Server

by johnylira

使用 Python、LangChain、LangGraph 和 LlamaIndex 的 MCP RAG

用于索引文档并使用 RAG(检索增强生成)回答问题的 Model Context Protocol (MCP) 服务器项目。该服务器使用 FastMCP 通过 SSE 通信,LlamaIndex + ChromaDB 用于检索,LangGraph 用于编排,LangChain 用于生成。

架构

Cliente MCP -> SSE (/sse) -> FastMCP
                           -> ingest_documents(paths)
                           -> ask_rag(question)
                                  -> LangGraph
                                     -> recuperar contexto (LlamaIndex/Chroma)
                                     -> gerar resposta (LangChain/OpenAI)
                                     -> validar citações

Related MCP server: Antigravity PDF MCP Server

快速开始

cp .env.example .env
# Edite .env e informe OPENAI_API_KEY
docker compose up --build

MCP SSE 端点位于 http://localhost:8000/sse。

文档

要将本地文件夹提供给容器,请在 docker-compose.yml 中取消注释卷 ./docs:/workspace/docs:ro。然后使用类似 /workspace/docs/manual.md 的路径调用该工具。

MCP 工具

ingest_documents

索引 .txt、.md 和 .pdf 文件。

{"paths": ["/workspace/docs/manual.md"]}

ask_rag

检索最相关的片段,并使用 [S1]、[S2] 引用进行回答。

{"question": "Quais são os procedimentos de backup?", "top_k": 5}

环境变量

变量

用途

OPENAI_API_KEY

与 OpenAI 兼容的 API 密钥

OPENAI_MODEL

LangChain 生成模型

OPENAI_EMBEDDING_MODEL

LlamaIndex 嵌入模型

OPENAI_BASE_URL

兼容端点的可选基础 URL

RAG_DATA_DIR

ChromaDB 持久化目录

RAG_COLLECTION

向量集合名称

RAG_CHUNK_SIZE

索引片段的大小

RAG_CHUNK_OVERLAP

片段之间的重叠

安全

未经 TLS 和身份验证,请勿公开暴露 SSE。仅挂载授权的文档目录,因为摄取工具会读取所指定的路径。

Related MCP Connectors

Related MCP Servers