Skip to main content
Glama

LangGraph RAG MCP

Un sistema de Retrieval-Augmented Generation (RAG) que expone documentación de LangGraph a través del Model Context Protocol (MCP).

Descripción general

Este proyecto construye un sistema de recuperación de documentación que:

  1. Recopila y procesa documentación de LangGraph desde el sitio web oficial

  2. Crea una base de datos vectorial a partir de esta documentación para la búsqueda semántica

  3. Expone este conocimiento a través del Model Context Protocol (MCP)

  4. Se integra con hosts compatibles con MCP como VS Code, Cursor, Claude Desktop o Windsurf

Related MCP server: groq-docs-mcp

Cómo funciona

1. Recopilación y procesamiento de documentación (Context)

  • Rastrea y limpia de forma recursiva la documentación de LangGraph desde múltiples URLs de sitios web usando RecursiveUrlLoader y BeautifulSoup.

  • Divide el texto en fragmentos manejables usando RecursiveCharacterTextSplitter con tiktoken para un recuento preciso de tokens.

  • Vectoriza los fragmentos usando embeddings de BAAI/bge-large-en-v1.5.

  • Almacena los vectores en un SKLearnVectorStore para una recuperación eficiente.

2. Sistema de recuperación (Tool)

  • Implementa una función de recuperación que encuentra los fragmentos de documentación más relevantes para una consulta determinada.

  • Integra esta función con modelos de lenguaje como Claude para ofrecer respuestas contextualizadas.

  • Devuelve respuestas con formato que incluyen la atribución de fuentes y el contexto relevante.

3. Integración con el servidor MCP

  • Envuelve la herramienta de recuperación en un servidor MCP usando la librería fastmcp.

  • Expone la función de recuperación como una herramienta que los hosts compatibles con MCP pueden utilizar.

  • Proporciona acceso tanto al sistema de recuperación como a recursos adicionales (como el archivo de documentación completo).

Requisitos

  • Python 3.10+

  • Docker y Docker Compose (recomendado)

  • Clave de API de Anthropic (para modelos de Claude)

Instalación y configuración

Puedes ejecutar este proyecto con Docker (recomendado) o en un entorno local de Python.

Usar Docker (Recomendado)

  1. Clona este repositorio:

git clone https://github.com/yourusername/langraph-rag-mcp.git
cd langraph-rag-mcp
  1. Configura tus claves de API en un archivo .env:

    Crea un archivo .env en la raíz del proyecto y añade tu clave de API de Anthropic:

echo "ANTHROPIC_API_KEY=your_api_key_here" > .env

El archivo docker-compose.yml cargará automáticamente esta variable de entorno de forma automática.

Entorno local (sin Docker)

  1. Clona este repositorio:

git clone https://github.com/yourusername/langraph-rag-mcp.git
cd langraph-rag-mcp
  1. Crea y activa un entorno virtual:

conda create -n mcp python=3.13
conda activate mcp
  1. Instala los paquetes requeridos:

pip install -r requirements.txt
  1. Configura tus claves de API en un archivo .env:

echo "ANTHROPIC_API_KEY=your_api_key_here" > .env

Uso

El proceso tiene dos pasos principales: primero, generar el almacén de vectores, y segundo, ejecutar el servidor MCP.

Paso 1: Generar el almacén de vectores

Solo necesitas realizar este paso una vez, o cuando quieras actualizar la documentación.

  1. Abre y ejecuta el cuaderno rag-tool.ipynb en un entorno de Jupyter.

  2. Esto hará lo siguiente:

    • Descargar la documentación más reciente de LangGraph.

    • Guardar la documentación completa en llms_full.txt.

    • Dividir los documentos en fragmentos.

    • Crear y persistir un almacén de vectores en sklearn_vectorstore.parquet.

Paso 2: Ejecutar el servidor MCP

Con Docker

La forma más sencilla de ejecutar el servidor es utilizar el script de shell proporcionado, que une una envoltura de Docker Compose.

bash run-mcp-docker.sh

Este script creará la imagen de Docker si no existe, iniciará el contenedor y luego ejecutará el servidor MCP dentro de él, gestionando correctamente la entrada/salida estándar para la comunicación MCP.

Sin Docker

Si no estás usando Docker, puedes encender el servidor MCP directamente en modo de desarrollo a través del comando:

mcp dev langgraph-mcp.py

Configurar los hosts MCP

Para usar este servidor MCP con un editor compatible, debes configurarlo.

VS Code

  1. Abre tu archivo settings.json de VS Code. (Puedes encontrarlo a través de la paleta de comandos: Preferences: Open User Settings (JSON)).

  2. Añade la siguiente configuración al archivo. Asegúrate de reemplazar <path-to-your-project> por la ruta absoluta al directorio langraph-rag-mcp en tu máquina.

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

Si no estás usando Docker, cambia el comando command a:

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

Arquitectura del sistema

(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)

Recursos

MCP From Scratch404

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.
    -