Skip to main content
Glama

LangGraph RAG MCP

Model Context Protocol(MCP)을 통해 LangGraph 문서를 제공하는 검색 증강 생성(RAG) 시스템입니다.

개요

이 프로젝트는 다음과 같은 문서 검색 시스템을 구축합니다:

  1. 공식 웹사이트에서 LangGraph 문서를 수집하고 처리합니다

  2. 이 문서를 바탕으로 의미 기반 검색용 벡터 데이터베이스를 생성합니다

  3. Model Context Protocol(MCP)을 통해 이 지식을 노출합니다

  4. VS Code, Cursor, Claude Desktop, Windsurf 등 MCP 호환 호스트와 통합됩니다

Related MCP server: mcp-rag-agent

작동 방식

1. 문서 수집 및 처리(Context)

  • RecursiveUrlLoader와 BeautifulSoup을 사용하여 여러 웹사이트 URL에서 LangGraph 문서를 재귀적으로 스크레이핑하고 정리합니다.

  • RecursiveCharacterTextSplittertiktoken을 사용해 정확한 토큰 수를 계산하며, 텍스트를 관리하기 쉬운 청크로 분할합니다.

  • BAAI/bge-large-en-v1.5 임베딩을 사용하여 청크를 벡터 표현으로 임베딩합니다.

  • 효율적인 검색을 위해 SKLearnVectorStore에 벡터를 저장합니다.

2. 검색 시스템(Tool)

  • 주어진 쿼리에 대해 가장 관련성이 높은 문서 청크를 찾는 검색 함수를 구현합니다.

  • 이 함수를 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 서버를 실행하는 것입니다.

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 서버를 개방 모드로 직접 실할 수 있습니다:

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

F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Query any docs site via MCP. Submit a URL, ask questions, get cited answers.

  • Agentic search over your Dewey document collections from any MCP-compatible client.

  • Agent-native MCP server over the public saagarpatel.dev corpus. Read-only, stateless.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/siddarthamitta/MCP-Powered-RAG-Assistant-'

If you have feedback or need assistance with the MCP directory API, please join our Discord server