enterprise-knowledge-mcp
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:
Se cargan los documentos PDF empresariales.
Los documentos se dividen en fragmentos más pequeños.
Los fragmentos se convierten en incrustaciones (embeddings).
Las incrustaciones se almacenan en ChromaDB.
Una pregunta del usuario se compara semánticamente con la base de conocimiento.
El Agente Recuperador de LangGraph obtiene el contexto relevante a través de la integración MCP.
El Agente de Respuesta genera una respuesta fundamentada en el contexto recuperado.
El Agente Evaluador evalúa la respuesta generada utilizando RAGAS.
LangSmith proporciona trazado y observabilidad de extremo a extremo.
Fuentes de Conocimiento
El proyecto utiliza documentos empresariales como:
Remote_Work_Policy.pdfEmployee_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-cloudpara la generación de respuestasEvaluació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 Answer4. 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.mdMantén
.envfuera 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.pdfLos 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 MetadataEl 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 = 120La 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.5a 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:
ChromaDBColección:
enterprise_knowledgeBase de datos vectorial persistida:
./chroma_db6.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 = 4Los 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
END7.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 ContextSalida
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-cloudEntrada
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.pyEl 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 ContextLa 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 ResultEjemplo de Evaluación
Una ejecución reciente exitosa de la aplicación produjo:
Faithfulness: 0.9500
Answer Relevancy: 0.9500
Interpretation: ExcellentLas 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-assistantNo 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\activateLinux/macOS
python3 -m venv venv
source venv/bin/activateInstalar Dependencias
python -m pip install -r requirements.txtConfigurar 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-assistant12. Ingesta de Documentos
Coloca los PDFs empresariales dentro de:
data/
├── Remote_Work_Policy.pdf
└── Employee_Handbook.pdfEjecuta:
python -m scripts.ingestEl pipeline de ingesta es:
PDF
|
v
Text Extraction
|
v
Chunking
|
v
Embedding Generation
|
v
ChromaDB13. Ejecutar la Aplicación
Después de la ingesta:
python -m scripts.runVerá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: ExcellentEl 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.

EKA2 --- Inicio de la Aplicación
Muestra el inicio de la aplicación y la pregunta del usuario.

EKA3 --- Resultados de la Evaluación RAGAS
Muestra los resultados de la evaluación RAGAS.

EKA4 --- Salida Final de la Aplicación
Muestra la respuesta final generada por la aplicación.

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.

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.

EKA7 --- Salida Final, Fuentes y RAGAS
Muestra la respuesta final, la información de fuentes MCP y las puntuaciones 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 |
Implementación RAG | Satisfecho | Los documentos se fragmentan mediante división recursiva de texto ( |
LangGraph | Satisfecho | Un |
Integración MCP | Satisfecho | Un servidor MCP personalizado expone |
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
This server cannot be installed
Maintenance
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
- FlicenseNot gradedqualityDmaintenanceEnables hybrid search over policies using Reciprocal Rank Fusion and provides grounded, context-aware answers via a LangGraph agent with COSTAR prompting.3
- FlicenseNot gradedqualityCmaintenanceEnables AI agents to search HR policies, create IT support tickets, and send external emails with configurable security levels and human-in-the-loop validation.
- FlicenseNot gradedqualityCmaintenanceEnables querying company knowledge base using RAG, providing accurate answers from internal documents via MCP.
- FlicenseNot gradedqualityBmaintenanceEnables SQL query execution and knowledge base search via RAG agent through two tools.
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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