Skip to main content
Glama
johnylira

RAG MCP Server

by johnylira

Python, LangChain, LangGraph 및 LlamaIndex를 사용한 MCP RAG

문서를 인덱싱하고 RAG(Retrieval-Augmented Generation)로 질문에 답변하는 Model Context Protocol (MCP) 서버 프로젝트입니다. 서버는 SSE를 통한 FastMCP, 검색을 위한 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