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