Skip to main content
Glama

LangGraph RAG MCP

LangGraph のドキュメントを Model Context Protocol(MCP)を通じて提供する、検索拡張生成(RAG)システムです。

概要

このプロジェクトは、以下を行うドキュメント検索システムを構築します。

  1. 公式ウェブサイトから LangGraph ドキュメントを収集・処理します。

  2. このドキュメントからセマンティック検索用のベクトルデータベースを作成します。

  3. この知識を Model Context Protocol(MCP)を通じて公開します。

  4. VS Code、Cursor、Claude Desktop、Windsurf などの MCP 互換ホストと統合します。

Related MCP server: groq-docs-mcp

動作の仕組み

1. ドキュメントの収集と処理(コンテキスト)

  • RecursiveUrlLoader と BeautifulSoup を使用して、複数のウェブサイト URL から LangGraph ドキュメントを再帰的にスクレイピングおよびクレンジングします。

  • テキストを分割します。RecursiveCharacterTextSplitter と tiktoken を使用して、正確なトークン数を計算しながら管理可能なチャンクに分割します。

  • チャンクをベクトル表現に埋め込み、BAAI/bge-large-en-v1.5 の埋め込みを使用します。

  • ベクトルを SKLearnVectorStore に保存し、効率的な検索を実現します。

2. 検索システム(ツール)

  • 指定されたクエリに対して最も関連性の高いドキュメントチャンクを検索する関数を実装します。

  • この関数を Claude などの言語モデルと統合し、コンテキストに即した応答を提供します。

  • ソースの帰属と関連コンテキストを含むフォーマット済みの応答を返します。

3. MCP サーバー統合

  • fastmcp ライブラリを使用して検索ツールを MCP サーバーとしてラップします。

  • 検索関数を、MCP 互換ホストが使用できるツールとして公開します。

  • 検索システムと追加リソース(完全なドキュメントファイルなど)の両方へのアクセスを提供します。

要件

  • Python 3.10+

  • Docker および Docker Compose(推奨)

  • Anthropic API キー(Claude モデル用)

インストールとセットアップ

このプロジェクトは、Docker(推奨)またはローカル Python 環境のどちらでも実行できます。

Docker を使用する場合(推奨)

  1. このリポジトリをクローンします。

    git clone https://github.com/yourusername/langraph-rag-mcp.git
    cd langraph-rag-mcp
  2. .env ファイルに API キーを設定します。 .env ファイルをプロジェクトルートに作成し、Anthropic API キーを追加してください。

    echo "ANTHROPIC_API_KEY=your_api_key_here" > .env

    docker-compose.yml ファイルはこの環境変数を自動的に読み込みます。

ローカル環境(Docker を使用しない場合)

  1. このリポジトリをクローンします。

    git clone https://github.com/yourusername/langraph-rag-mcp.git
    cd langraph-rag-mcp
  2. 仮想環境を作成して有効化します。

    conda create -n mcp python=3.13
    conda activate mcp
  3. 必要なパッケージをインストールします。

    pip install -r requirements.txt
  4. .env ファイルに API キーを設定します。

    echo "ANTHROPIC_API_KEY=your_api_key_here" > .env

使用方法

このプロセスは、最初にベクトルストアを生成し、次に MCP サーバーを実行するという2つの主要なステップで構成されます。

ステップ 1: ベクトルストアを生成する

これは、初回のみ、またはドキュメントを更新したいときに行うだけです。

  1. Jupyter 環境で rag-tool.ipynb ノートブックを開いて実行します。

  2. これにより次の処理が行われます。

    • 最新の LangGraph ドキュメントをダウンロードします。

    • ドキュメント全体を llms_full.txt に保存します。

    • ドキュメントをチャンクに分割します。

    • sklearn_vectorstore.parquet にベクトルストアを作成して永続化します。

ステップ 2: MCP サーバーを実行する

Docker を使用する場合

サーバーを実行する最も簡単な方法は、Docker Compose をラップした付属のシェルスクリプトを使用することです。

bash run-mcp-docker.sh

このスクリプトは、Docker イメージが存在しない場合はビルドし、コンテナを起動して MCP サーバーをその中で実行します。MCP 通信のための標準入出力を正しく処理します。

Docker を使用しない場合

Docker を使用しない場合は、以下のコマンドで MCP サーバーを dev モードで直接実行できます。

mcp dev langgraph-mcp.py

MCP ホストの設定

この MCP サーバーを互換性のあるエディタで使用するには、設定を行う必要があります。

VS Code

  1. VS Code の settings.json ファイルを開きます。(コマンドパレットから Preferences: Open User Settings (JSON) で見つけられます。)

  2. 以下の設定をファイルに追加してください。<path-to-your-project> は、お使いのマシン上の langraph-rag-mcp ディレクトリへの絶対パスに必ず置き換えてください。

"mcp.servers": [
    {
        "name": "langgraph-mcp",
        "command": [
            "/bin/bash",
            "<path-to-your-project>/run-mcp-docker.sh"
        ],
        "env": {
            "ANTHROPIC_API_KEY": "<your-anthropic-api-key>"
        }
    }
]

Docker を使用しない場合は、command を次のように変更します。

"command": [
    "<path-to-your-conda-env>/bin/python",
    "<path-to-your-project>/langgraph-mcp.py"
]

システム構成

(Phase 1: Data Ingestion - Performed once on Host Machine)
┌─────────────┐      ┌──────────────────┐      ┌───────────────────────────────┐
│ LangGraph   │      │ Jupyter Notebook │      │ Vector Store & Full Docs      │
│ Docs (Web)  │───▶  │ (rag-tool.ipynb) │───▶  │ (.parquet & .txt files)       │
└─────────────┘      └──────────────────┘      └───────────────────────────────┘


(Phase 2: Live RAG System - Request/Response Flow)
┌──────────────┐                             ┌─────────────┐
│   VS Code    │                             │  .env file  │
│(User Interface)│                             │ (API KEY)   │
└──────┬───────┘                             └──────┬──────┘
       │ 1. User Query                             │ (provides)
       ▼                                           │
┌──────┴───────────────────────────────────────────┴───────────────────────────────┐
│ Host Machine Boundary                                                            │
│                                                                                  │
│      ┌────────────────────┐          ┌─────────────────────────────────────────┐ │
│      │ run-mcp-docker.sh  │ 2. Execs │  🐳 Docker Container                      │ │
│      │ (Entrypoint Script)│────▶     │                                         │ │
│      └────────────────────┘          │  ┌───────────────────────────────────┐  │ │
│                                      │  │   🐍 Python MCP Server              │  │ │
│      ▲                             ◀─┼──│   (langgraph-mcp.py)              │  │ │
│      │ 7. Final Response             │  └───────────────┬───────────────────┘  │ │
│      │                               │                  │ 3. Reads Data From  │ │
│      └───────────────────────────────│──────────────────│─────────────────────┘ │
│                                      │                  │                       │
│                                      │                  ▼                       │
│                                      │  ┌───────────────────────────────────┐  │
│ (files mounted from Host) ············  │   Mounted Vector Store & Docs     │  │
│                                      │  └───────────────────────────────────┘  │
│                                      └─────────────────────────────────────────┘ │
│                                                                                  │
└──────────────────────────────────────────────────────────────────────────────────┘
                                                        │ 4. API Call
                                                        │    (sends augmented prompt)
                                                        ▼
                                             ┌────────────────────┐
                                             │ ☁️ Anthropic API   │
                                             │   (Claude LLM)     │
                                             └──────────┬─────────┘
                                                        │ 5. Generation
                                                        │
                                                        ◀························
                                                          6. Returns Response
                                                          (to MCP Server)

リソース

MCP From Scratch

Related MCP Connectors

Related MCP Servers

  • F
    license
    B
    quality
    C
    maintenance
    Retrieval-Augmented Generation system serving LangGraph documentation through the Model Context Protocol, enabling semantic search and context-aware responses.
    2
    16
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    Provides MCP-compatible hosts with retrieval-augmented access to LangGraph documentation, enabling Claude and other assistants to answer questions with relevant, source-attributed context.
    -