Skip to main content
Glama
Shruti-Gorhe

enterprise-knowledge-mcp

by Shruti-Gorhe

Asistente de Conocimiento Empresarial

Un Asistente de Conocimiento Empresarial Agéntico de IA que responde preguntas a partir de documentos de políticas empresariales utilizando RAG, LangGraph, MCP, RAGAS, Ollama y LangSmith.

El sistema recupera información relevante de PDFs empresariales, utiliza un flujo de trabajo LangGraph para generar una respuesta fundamentada, evalúa la respuesta utilizando RAGAS y proporciona observabilidad a través de LangSmith.


1. Resumen del Proyecto

El Asistente de Conocimiento Empresarial está diseñado para responder preguntas en lenguaje natural utilizando información contenida en documentos empresariales.

En lugar de depender únicamente del conocimiento preentrenado del LLM, la aplicación sigue un flujo de trabajo de Generación Aumentada por Recuperación:

  1. Se cargan los documentos PDF empresariales.

  2. Los documentos se dividen en fragmentos más pequeños.

  3. Los fragmentos se convierten en incrustaciones (embeddings).

  4. Las incrustaciones se almacenan en ChromaDB.

  5. Una pregunta del usuario se compara semánticamente con la base de conocimiento.

  6. El Agente Recuperador de LangGraph obtiene el contexto relevante a través de la integración MCP.

  7. El Agente de Respuesta genera una respuesta fundamentada en el contexto recuperado.

  8. El Agente Evaluador evalúa la respuesta generada utilizando RAGAS.

  9. LangSmith proporciona trazado y observabilidad de extremo a extremo.

Fuentes de Conocimiento

El proyecto utiliza documentos empresariales como:

  • Remote_Work_Policy.pdf

  • Employee_Handbook.pdf


Related MCP server: Corporate Tools MCP Server

2. Características Principales

  • Respuesta a preguntas sobre documentos empresariales

  • Generación Aumentada por Recuperación (RAG)

  • Búsqueda semántica en documentos empresariales

  • Base de datos vectorial ChromaDB

  • Incrustaciones de HuggingFace

  • Orquestación de agentes con LangGraph

  • Servidor MCP personalizado

  • Recuperación de conocimiento empresarial basada en herramientas MCP

  • Uso activo de MCP por parte del Agente Recuperador de LangGraph

  • Inferencia LLM con Ollama

  • gpt-oss:120b-cloud para la generación de respuestas

  • Evaluación RAGAS

  • Evaluación de fidelidad

  • Evaluación de relevancia de la respuesta

  • Trazado y observabilidad con LangSmith

  • Visibilidad de la ejecución de LangGraph nodo por nodo

  • Atribución de fuentes

  • Arquitectura modular en Python


3. Resumen de la Arquitectura

flowchart TD
    A[User Question] --> B[LangGraph Orchestrator]
    B --> C[Retriever Agent]
    C --> D[MCP Client]
    D --> E[Custom MCP Server]
    E --> F[search_enterprise_knowledge]
    F --> G[ChromaDB Vector Search]
    G --> H[Relevant Document Chunks]
    H --> C
    C --> I[Response Agent]
    I --> J[gpt-oss:120b-cloud]
    J --> K[Evaluator Agent]
    K --> L[RAGAS]
    L --> M[Final Answer + Evaluation]
    B -. tracing .-> N[LangSmith]

Flujo de Alto Nivel

User Question
      |
      v
LangGraph
      |
      v
Retriever Agent
      |
      v
MCP Client
      |
      v
MCP Server
      |
      v
search_enterprise_knowledge
      |
      v
ChromaDB
      |
      v
Retrieved Context
      |
      v
Response Agent
      |
      v
gpt-oss:120b-cloud
      |
      v
Evaluator Agent
      |
      v
RAGAS
      |
      v
Final Answer

4. Pila Tecnológica

Tecnología Propósito


Python Aplicación principal LangChain Componentes de LLM y RAG LangGraph Orquestación del flujo de trabajo de agentes ChromaDB Base de datos vectorial HuggingFace Incrustaciones de documentos Ollama Interfaz de inferencia LLM gpt-oss:120b-cloud Generación de respuestas qwen3:4b Modelo de evaluación RAGAS Evaluación RAG MCP Acceso a conocimiento basado en herramientas LangSmith Observabilidad y trazado PyPDF Carga de documentos PDF python-dotenv Configuración de entorno


5. Estructura del Proyecto

enterprise-knowledge-assistant/
│
├── data/
│   ├── Remote_Work_Policy.pdf
│   └── Employee_Handbook.pdf
│
├── chroma_db/
│
├── mcp_server/
│   └── server.py
│
├── src/
│   ├── agents/
│   │   ├── retriever_agent.py
│   │   ├── response_agent.py
│   │   └── evaluator_agent.py
│   │
│   ├── rag/
│   │   ├── loader.py
│   │   ├── embeddings.py
│   │   ├── vectorstore.py
│   │   └── retriever.py
│   │
│   ├── graph.py
│   ├── state.py
│   └── config.py
│
├── scripts/
│   ├── ingest.py
│   └── run.py
│
├── screenshots/
│   ├── EKA1.png
│   ├── EKA2.png
│   ├── EKA3.png
│   ├── EKA4.png
│   ├── EKA5.png
│   ├── EKA6.png
│   └── EKA7.png
│
├── .env
├── .gitignore
├── requirements.txt
└── README.md

Mantén .env fuera del control de versiones. Las claves de API y los secretos nunca deben enviarse a GitHub.


6. Diseño de RAG

6.1 Fuente de Documentos

La base de conocimiento contiene documentos PDF empresariales:

Remote_Work_Policy.pdf
Employee_Handbook.pdf
Leave_Policy.pdf

Los PDFs se cargan utilizando pypdf.

Cada página se procesa con metadatos de fuente y página para que la información recuperada pueda asociarse con su documento de origen.


6.2 Carga de Documentos

El pipeline de ingesta es:

PDF Documents
      |
      v
PyPDF
      |
      v
Page-level Text Extraction
      |
      v
Source + Page Metadata

El cargador extrae el texto página por página y almacena:

  • texto del documento

  • nombre del archivo de origen

  • número de página


6.3 Estrategia de Fragmentación

El proyecto utiliza RecursiveCharacterTextSplitter.

Configuración actual:

chunk_size    = 800
chunk_overlap = 120

La superposición ayuda a preservar el contexto entre fragmentos vecinos.

La fragmentación ayuda a:

  • mejorar la precisión de la recuperación

  • reducir el contexto innecesario

  • mantener las indicaciones manejables

  • preservar secciones de políticas significativas


6.4 Modelo de Incrustación

El proyecto utiliza:

BAAI/bge-small-en-v1.5

a través de HuggingFaceEmbeddings.

Las incrustaciones se generan localmente con configuración de CPU y se normalizan antes de la búsqueda de similitud.


6.5 Base de Datos Vectorial

El proyecto utiliza:

ChromaDB

Colección:

enterprise_knowledge

Base de datos vectorial persistida:

./chroma_db

6.6 Recuperación

El Recuperador realiza una búsqueda de similitud semántica contra ChromaDB.

El número de recuperación predeterminado actual es:

TOP_K = 4

Los fragmentos recuperados se pasan al Agente de Respuesta como contexto.


7. Diseño de LangGraph

LangGraph orquesta el flujo de trabajo de IA Agéntica.

Grafo

START
  |
  v
Retriever Agent
  |
  v
Response Agent
  |
  v
Evaluator Agent
  |
  v
END

7.1 Nodo 1 --- Agente Recuperador

Responsabilidad

Recupera el conocimiento empresarial relevante para la pregunta del usuario.

Procesamiento

Question
   |
   v
MCP Client
   |
   v
MCP Server
   |
   v
search_enterprise_knowledge
   |
   v
RAG / ChromaDB
   |
   v
Relevant Context

Salida

  • Contexto recuperado

  • Información de fuentes

El Agente Recuperador llama activamente a la herramienta MCP durante la ejecución normal de LangGraph.


7.2 Nodo 2 --- Agente de Respuesta

Responsabilidad

Genera la respuesta final utilizando la pregunta del usuario y el contexto empresarial recuperado.

Modelo

gpt-oss:120b-cloud

Entrada

  • Pregunta del usuario

  • Contexto recuperado

Salida

Una respuesta fundamentada en lenguaje natural.


7.3 Nodo 3 --- Agente Evaluador

Responsabilidad

Evalúa la respuesta generada.

Métricas

  • Fidelidad

  • Relevancia de la respuesta

Las puntuaciones y su interpretación se añaden al resultado final de la aplicación.


8. Integración MCP

El proyecto incluye un servidor MCP personalizado para la recuperación de conocimiento empresarial.

Servidor MCP

mcp_server/server.py

El servidor MCP se implementa utilizando el SDK de Python de MCP.

Herramientas MCP

search_enterprise_knowledge

Busca en la base de conocimiento empresarial utilizando una consulta en lenguaje natural.

Ejemplo:

search_enterprise_knowledge(
    query="What are the key requirements for employees working remotely?"
)

get_document_sources

Devuelve las fuentes de documentos empresariales disponibles.


8.1 Uso Activo de MCP por LangGraph

Este es un requisito clave del proyecto.

La integración MCP se utiliza activamente durante la ejecución normal de LangGraph. No es solo un servidor independiente.

El flujo de ejecución es:

LangGraph Retriever Agent
          |
          v
      MCP Client
          |
          v
      MCP Server
          |
          v
search_enterprise_knowledge
          |
          v
       RAG Search
          |
          v
 Retrieved Context

La salida de la aplicación confirma explícitamente la invocación:

NODE 1: RETRIEVER AGENT

Calling MCP tool: search_enterprise_knowledge
MCP retrieval completed.

Esto demuestra que un nodo de LangGraph utiliza activamente la integración MCP durante la ejecución.


8.2 Verificar las Herramientas MCP

Desde la raíz del proyecto:

python -c "import asyncio; from mcp_server.server import mcp; tools=asyncio.run(mcp.list_tools()); print([t.name for t in tools])"

Esperado:

['search_enterprise_knowledge', 'get_document_sources']

9. Evaluación RAGAS

RAGAS evalúa la calidad de la respuesta generada.

Métricas Recopiladas

Fidelidad

Mide si la respuesta generada está respaldada por el contexto recuperado.

Relevancia de la Respuesta

Mide si la respuesta generada aborda la pregunta del usuario.

Flujo de Evaluación

Retrieved Context
       |
       v
Generated Answer
       |
       +----------------------+
       |                      |
       v                      v
Faithfulness          Answer Relevancy
       |                      |
       +----------+-----------+
                  |
                  v
             RAGAS Result

Ejemplo de Evaluación

Una ejecución reciente exitosa de la aplicación produjo:

Faithfulness: 0.9500
Answer Relevancy: 0.9500
Interpretation: Excellent

Las puntuaciones pueden variar dependiendo de la pregunta, el contexto recuperado, la respuesta generada, el modelo de evaluación y las condiciones de evaluación.


10. Observabilidad con LangSmith

LangSmith proporciona observabilidad en el flujo de trabajo de IA Agéntica.

Permite inspeccionar:

  • Ejecución de LangGraph

  • Nodos individuales del grafo

  • Llamadas LLM

  • Entradas y salidas

  • Latencia de ejecución

  • Resultados de evaluación

  • Comportamiento del flujo de trabajo

Configuración de ejemplo:

LANGSMITH_TRACING=true
LANGSMITH_API_KEY=<your-langsmith-api-key>
LANGSMITH_PROJECT=enterprise-knowledge-assistant

No envíes la clave de API a GitHub.


11. Instrucciones de Configuración

Requisitos Previos

  • Python 3.10+

  • Ollama

  • Git

Crear Entorno Virtual

Windows

python -m venv venv
venv\Scripts\activate

Linux/macOS

python3 -m venv venv
source venv/bin/activate

Instalar Dependencias

python -m pip install -r requirements.txt

Configurar el Entorno

Crea .env en la raíz del proyecto:

OLLAMA_BASE_URL=http://localhost:11434

LLM_MODEL=gpt-oss:120b-cloud
EVALUATOR_MODEL=qwen3:4b

EMBEDDING_MODEL=BAAI/bge-small-en-v1.5

VECTOR_DB_PATH=./chroma_db
COLLECTION_NAME=enterprise_knowledge
TOP_K=4

LANGSMITH_TRACING=true
LANGSMITH_API_KEY=<your-langsmith-api-key>
LANGSMITH_PROJECT=enterprise-knowledge-assistant

12. Ingesta de Documentos

Coloca los PDFs empresariales dentro de:

data/
├── Remote_Work_Policy.pdf
└── Employee_Handbook.pdf

Ejecuta:

python -m scripts.ingest

El pipeline de ingesta es:

PDF
 |
 v
Text Extraction
 |
 v
Chunking
 |
 v
Embedding Generation
 |
 v
ChromaDB

13. Ejecutar la Aplicación

Después de la ingesta:

python -m scripts.run

Verás:

============================================================
ENTERPRISE KNOWLEDGE ASSISTANT
============================================================

Ask your question:

Introduce una pregunta en lenguaje natural.


14. Preguntas de Ejemplo

What are the key requirements for employees working remotely?
What is the remote work policy?
What are the rules regarding working from another city or country?
What information security requirements apply to remote workers?
What should an employee do if internet or power issues prevent them from working remotely?

15. Ejecución Esperada

Una ejecución exitosa sigue esta secuencia:

============================================================
NODE 1: RETRIEVER AGENT
============================================================

Calling MCP tool: search_enterprise_knowledge
MCP retrieval completed.

============================================================
NODE 2: RESPONSE AGENT
============================================================

Generated answer:
...

============================================================
NODE 3: EVALUATOR AGENT
============================================================

Running local evaluation...

EVALUATION RESULTS
----------------------------------------
Faithfulness: 0.9500
Answer Relevancy: 0.9500
Interpretation: Excellent

El resultado final contiene:

  • Pregunta

  • Respuesta generada

  • Fuentes

  • Puntuaciones RAGAS

  • Interpretación de la evaluación


16. Evidencias y Capturas de Pantalla

Coloca todas las capturas de pantalla dentro del directorio screenshots/.

EKA1 --- Observabilidad con LangSmith

Muestra el trazado y la observabilidad de LangSmith del flujo de trabajo LangGraph.

EKA1 - Observabilidad LangSmith

EKA2 --- Inicio de la Aplicación

Muestra el inicio de la aplicación y la pregunta del usuario.

EKA2 - Inicio de la Aplicación

EKA3 --- Resultados de la Evaluación RAGAS

Muestra los resultados de la evaluación RAGAS.

EKA3 - Evaluación RAGAS

EKA4 --- Salida Final de la Aplicación

Muestra la respuesta final generada por la aplicación.

EKA4 - Salida Final

EKA5 --- Invocación de la Herramienta MCP

Muestra al Agente Recuperador invocando:

Calling MCP tool: search_enterprise_knowledge
MCP retrieval completed.

Esta es una evidencia directa de que MCP se utiliza activamente durante la ejecución del grafo.

EKA5 - Invocación de la Herramienta MCP

EKA6 --- Evaluación RAGAS y Resultado Final

Muestra al Agente Evaluador, la Fidelidad, la Relevancia de la Respuesta, la interpretación y el resultado generado.

EKA6 - Evaluación RAGAS

EKA7 --- Salida Final, Fuentes y RAGAS

Muestra la respuesta final, la información de fuentes MCP y las puntuaciones RAGAS.

EKA7 - Salida Final y RAGAS


17. Cumplimiento de Requisitos

El proyecto satisface los requisitos especificados del Asistente de Conocimiento Empresarial en RAG, LangGraph, MCP, evaluación, observabilidad y generación de la respuesta final.

Requisito

Estado

Implementación

Fuente de Conocimiento Empresarial

Satisfecho

Los documentos PDF empresariales se cargan con PyPDF, incluidos Remote_Work_Policy.pdf y Employee_Handbook.pdf, conservando los metadatos de fuente y página.

Implementación RAG

Satisfecho

Los documentos se fragmentan mediante división recursiva de texto (chunk_size=800, chunk_overlap=120), se incrustan con BAAI/bge-small-en-v1.5, se almacenan en ChromaDB, se recuperan mediante búsqueda semántica y se pasan al LLM para la generación de respuestas fundamentadas.

LangGraph

Satisfecho

Un StateGraph orquesta el flujo de trabajo Agente Recuperador → Agente de Respuesta → Agente Evaluador utilizando estado compartido.

Integración MCP

Satisfecho

Un servidor MCP personalizado expone search_enterprise_knowledge y get_document_sources. El Agente Recuperador de LangGraph llama activamente a la herramienta MCP durante la ejecución para recuperar conocimiento empresarial.

Evaluación RAGAS

Satisfecho

El Agente Evaluador calcula la Fidelidad y la Relevancia de la Respuesta y muestra los resultados de la evaluación y su interpretación. Resultado de ejemplo: 0.95 Fidelidad, 0.95 Relevancia de la Respuesta — Excelente.

Observabilidad

Satisfecho

El trazado de LangSmith proporciona visibilidad en la ejecución de LangGraph, los nodos individuales, las llamadas LLM, las entradas, las salidas, la latencia, el contexto recuperado y los resultados de evaluación.

Traza de Ejecución del Grafo

Satisfecho

La ejecución nodo por nodo se captura para el Agente Recuperador, el Agente de Respuesta y el Agente Evaluador tanto en la salida de la aplicación como en LangSmith.

Salida Final de la Aplicación

Satisfecho

La aplicación produce una respuesta final fundamentada que contiene la pregunta del usuario, la respuesta generada, la información de fuentes, las puntuaciones RAGAS y la interpretación de la evaluación.

Estado General

Todos los requisitos especificados del proyecto están implementados y satisfechos.

El flujo de trabajo completo es:

PDFs empresariales → Recuperación RAG → Herramienta MCP → Agentes de LangGraph → Respuesta del LLM → Evaluación RAGAS → Observabilidad de LangSmith → Salida final

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

  • Your company's brain for AI agents. Cited, permission-aware knowledge across every system.

  • Shared, permission-aware company context for AI agents, with provenance, approvals and audit.

  • Search your knowledge bases from any AI assistant using hybrid RAG.

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/Shruti-Gorhe/enterprise-knowledge-assistant'

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