Skip to main content
Glama

LangGraph RAG MCP

一个通过模型上下文协议(MCP)提供 LangGraph 文档服务的检索增强生成(RAG)系统。

概述

本项目构建了一个文档检索系统,该系统:

  1. 从官方网站收集并处理 LangGraph 文档

  2. 基于这些文档创建向量数据库,用于语义搜索

  3. 通过模型上下文协议(MCP) 开放这些知识

  4. 与支持 MCP 的主机集成,例如 VS Code、Cursor、Claude Desktop 或 Windsurf

Related MCP server: mcp-rag-agent

工作原理

1. 文档收集与处理(上下文)

  • 使用 RecursiveUrlLoader 和 BeautifulSoup 递归抓取并清理来自多个网站 URL 的 LangGraph 文档。

  • 使用 RecursiveCharacterTextSplitter 配合 tiktoken 将文本拆分成易于管理的块,以实现准确的 token 计数。

  • 使用 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 服务器。

步骤 1:生成向量存储

你只需要执行一次此操作,或者在想要更新文档时再次执行。

  1. 在 Jupyter 环境中打开并运行 rag-tool.ipynb 笔记本。

  2. 这将:

    • 下载最新的 LangGraph 文档。

    • 将完整文档保存到 llms_full.txt

    • 将文档拆分为多个块。

    • sklearn_vectorstore.parquet 处创建并持久化向量存储。

步骤 2:运行 MCP 服务器

使用 Docker

最简单的运行服务器方式是使用提供的 shell 脚本,该脚本封装了 Docker Compose。

bash run-mcp-docker.sh

该脚本将在 Docker 镜像不存在时构建镜像,启动容器,然后在容器内执行 MCP 服务器,并正确处理 MCP 通信的标准 I/O。

不使用 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