enterprise-knowledge-mcp
Корпоративный ассистент знаний
Агентный ИИ-ассистент корпоративных знаний, который отвечает на вопросы из корпоративных политик и документов, используя RAG, LangGraph, MCP, RAGAS, Ollama и LangSmith.
Система извлекает релевантную информацию из корпоративных PDF-файлов, использует рабочий процесс LangGraph для формирования обоснованного ответа, оценивает ответ с помощью RAGAS и обеспечивает наблюдаемость через LangSmith.
1. Обзор проекта
Корпоративный ассистент знаний предназначен для ответов на вопросы на естественном языке с использованием информации, содержащейся в корпоративных документах.
Вместо того чтобы полагаться только на предобученные знания LLM, приложение следует рабочему процессу генерации с расширенным поиском (Retrieval-Augmented Generation):
Загружаются корпоративные PDF-документы.
Документы разбиваются на более мелкие фрагменты.
Фрагменты преобразуются в эмбеддинги.
Эмбеддинги сохраняются в ChromaDB.
Вопрос пользователя семантически сопоставляется с базой знаний.
Агент-поисковик LangGraph получает релевантный контекст через интеграцию MCP.
Агент ответа генерирует ответ, основанный на извлечённом контексте.
Агент-оценщик оценивает сгенерированный ответ с помощью RAGAS.
LangSmith обеспечивает сквозную трассировку и наблюдаемость.
Источники знаний
В проекте используются корпоративные документы, такие как:
Remote_Work_Policy.pdfEmployee_Handbook.pdf
Related MCP server: Corporate Tools MCP Server
2. Ключевые возможности
Ответы на вопросы по корпоративным документам
Генерация с учётом поиска (RAG)
Семантический поиск по корпоративным документам
Векторная база данных ChromaDB
Эмбеддинги HuggingFace
Оркестрация агентов LangGraph
Пользовательский MCP-сервер
Поиск корпоративных знаний на основе MCP-инструментов
Активное использование MCP агентом-поителем LangGraph
Инференс LLM через Ollama
gpt-oss:120b-cloudдля генерации ответовОценка RAGAS
Оценка достоверности (Faithfulness)
Оценка релевантности ответа (Answer Relevancy)
Трассировка и наблюдаемость LangSmith
Видимость выполнения LangGraph по узлам
Атрибуция источников
Модульная архитектура на Python
3. Обзор архитектуры
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]Общий поток
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. Технологический стек
Технология Назначение
Python Основное приложение
LangChain Компоненты LLM и RAG
LangGraph Оркестрация рабочего процесса агентов
ChromaDB Векторная база данных
HuggingFace Эмбеддинги документов
Ollama Интерфейс инференса LLM
gpt-oss:120b-cloud Генерация ответов
qwen3:4b Модель оценки
RAGAS Оценка RAG
MCP Доступ к знаниям на основе инструментов
LangSmith Наблюдаемость и трассировка
PyPDF Загрузка PDF-документов
python-dotenv Конфигурация окружения
5. Структура проекта
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Не храните
.envв системе контроля версий. Ключи API и секреты никогда не должны попадать в GitHub.
6. Дизайн RAG
6.1 Источник документов
База знаний содержит корпоративные PDF-документы:
Remote_Work_Policy.pdf
Employee_Handbook.pdf
Leave_Policy.pdfPDF-файлы загружаются с помощью pypdf.
Каждая страница обрабатывается с метаданными источника и страницы, чтобы извлечённая информация могла быть связана с исходным документом.
6.2 Загрузка документов
Конвейер загрузки:
PDF Documents
|
v
PyPDF
|
v
Page-level Text Extraction
|
v
Source + Page MetadataЗагрузчик извлекает текст постранично и сохраняет:
текст документа
имя исходного файла
номер страницы
6.3 Стратегия разбиения на фрагменты
В проекте используется RecursiveCharacterTextSplitter.
Текущая конфигурация:
chunk_size = 800
chunk_overlap = 120Перекрытие помогает сохранять контекст между соседними фрагментами.
Разбиение на фрагменты помогает:
повысить точность поиска
уменьшить избыточный контекст
поддерживать управляемый размер промптов
сохранять значимые разделы политик
6.4 Модель эмбеддингов
В проекте используется:
BAAI/bge-small-en-v1.5через HuggingFaceEmbeddings.
Эмбеддинги генерируются локально с использованием конфигурации CPU и нормализуются перед поиском по сходству.
6.5 Векторная база данных
В проекте используется:
ChromaDBКоллекция:
enterprise_knowledgeПерсистентная векторная база данных:
./chroma_db6.6 Поиск
Поисковик выполняет семантический поиск по близости в ChromaDB.
Текущее количество результатов поиска по умолчанию:
TOP_K = 4Извлечённые фрагменты передаются агенту ответа в качестве контекста.
7. Дизайн LangGraph
LangGraph оркестрирует рабочий процесс агентного ИИ.
Граф
START
|
v
Retriever Agent
|
v
Response Agent
|
v
Evaluator Agent
|
v
END7.1 Узел 1 — Агент-поитель
Обязанность
Извлекает релевантные корпоративные знания для вопроса пользователя.
Обработка
Question
|
v
MCP Client
|
v
MCP Server
|
v
search_enterprise_knowledge
|
v
RAG / ChromaDB
|
v
Relevant ContextВыходные данные
Извлечённый контекст
Информация об источниках
Агент-поитель активно вызывает MCP-инструмент во время обычного выполнения LangGraph.
7.2 Узел 2 — Агент ответа
Обязанность
Формирует окончательный ответ, используя вопрос пользователя и извлечённый корпоративный контекст.
Модель
gpt-oss:120b-cloudВходные данные
Вопрос пользователя
Извлечённый контекст
Выходные данные
Обоснованный ответ на естественном языке.
7.3 Узел 3 — Агент-оценщик
Обязанность
Оценивает сгенерированный ответ.
Метрики
Достоверность (Faithfulness)
Релевантность ответа (Answer Relevancy)
Оценки и интерпретация добавляются в итоговый результат приложения.
8. Интеграция MCP
Проект включает пользовательский MCP-сервер для поиска корпоративных знаний.
MCP-сервер
mcp_server/server.pyMCP-сервер реализован с использованием MCP Python SDK.
MCP-инструменты
search_enterprise_knowledge
Выполняет поиск по корпоративной базе знаний с помощью запроса на естественном языке.
Пример:
search_enterprise_knowledge(
query="What are the key requirements for employees working remotely?"
)get_document_sources
Возвращает доступные источники корпоративных документов.
8.1 Активное использование MCP в LangGraph
Это ключевое требование проекта.
Интеграция MCP активно используется во время обычного выполнения LangGraph. Это не только автономный сервер.
Поток выполнения:
LangGraph Retriever Agent
|
v
MCP Client
|
v
MCP Server
|
v
search_enterprise_knowledge
|
v
RAG Search
|
v
Retrieved ContextВыходные данные приложения явно подтверждают вызов:
NODE 1: RETRIEVER AGENT
Calling MCP tool: search_enterprise_knowledge
MCP retrieval completed.Это демонстрирует, что узел LangGraph активно использует интеграцию MCP во время выполнения.
8.2 Проверка MCP-инструментов
Из корня проекта:
python -c "import asyncio; from mcp_server.server import mcp; tools=asyncio.run(mcp.list_tools()); print([t.name for t in tools])"Ожидаемый результат:
['search_enterprise_knowledge', 'get_document_sources']9. Оценка RAGAS
RAGAS оценивает качество сгенерированного ответа.
Собираемые метрики
Достоверность (Faithfulness)
Измеряет, подтверждается ли сгенерированный ответ извлечённым контекстом.
Релевантность ответа (Answer Relevancy)
Измеряет, отвечает ли сгенерированный ответ на вопрос пользователя.
Поток оценки
Retrieved Context
|
v
Generated Answer
|
+----------------------+
| |
v v
Faithfulness Answer Relevancy
| |
+----------+-----------+
|
v
RAGAS ResultПример оценки
Недавний успешный запуск приложения дал:
Faithfulness: 0.9500
Answer Relevancy: 0.9500
Interpretation: ExcellentОценки могут варьироваться в зависимости от вопроса, извлечённого контекста, сгенерированного ответа, модели оценки и условий оценки.
10. Наблюдаемость LangSmith
LangSmith обеспечивает наблюдаемость рабочего процесса агентного ИИ.
Он позволяет проверять:
Выполнение LangGraph
Отдельные узлы графа
Вызовы LLM
Входные и выходные данные
Задержку выполнения
Результаты оценки
Поведение рабочего процесса
Пример конфигурации:
LANGSMITH_TRACING=true
LANGSMITH_API_KEY=<your-langsmith-api-key>
LANGSMITH_PROJECT=enterprise-knowledge-assistantНе отправляйте ключ API в GitHub.
11. Инструкции по настройке
Предварительные требования
Python 3.10+
Ollama
Git
Создание виртуального окружения
Windows
python -m venv venv
venv\Scripts\activateLinux/macOS
python3 -m venv venv
source venv/bin/activateУстановка зависимостей
python -m pip install -r requirements.txtНастройка окружения
Создайте .env в корне проекта:
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. Загрузка документов
Поместите корпоративные PDF-файлы в:
data/
├── Remote_Work_Policy.pdf
└── Employee_Handbook.pdfЗапустите:
python -m scripts.ingestКонвейер загрузки:
PDF
|
v
Text Extraction
|
v
Chunking
|
v
Embedding Generation
|
v
ChromaDB13. Запуск приложения
После загрузки:
python -m scripts.runВы увидите:
============================================================
ENTERPRISE KNOWLEDGE ASSISTANT
============================================================
Ask your question:Введите вопрос на естественном языке.
14. Примеры вопросов
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. Ожидаемое выполнение
Успешный запуск следует такой последовательности:
============================================================
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Итоговый результат содержит:
Вопрос
Сгенерированный ответ
Источники
Оценки RAGAS
Интерпретацию оценки
16. Доказательства и скриншоты
Поместите все скриншоты в каталог screenshots/.
EKA1 — Наблюдаемость LangSmith
Показывает трассировку и наблюдаемость LangSmith для рабочего процесса LangGraph.

EKA2 — Запуск приложения
Показывает запуск приложения и вопрос пользователя.

EKA3 — Результаты оценки RAGAS
Показывает результаты оценки RAGAS.

EKA4 — Итоговый вывод приложения
Показывает итоговый ответ, сгенерированный приложением.

EKA5 — Вызов MCP-инструмента
Показывает, как агент-поитель вызывает:
Calling MCP tool: search_enterprise_knowledge
MCP retrieval completed.Это прямое доказательство того, что MCP активно используется во время выполнения графа.

EKA6 — Оценка RAGAS и итоговый результат
Показывает агента-оценщика, достоверность, релевантность ответа, интерпретацию и сгенерированный результат.

EKA7 — Итоговый вывод, источники и RAGAS
Показывает итоговый ответ, информацию об источниках MCP и оценки RAGAS.

17. Соответствие требованиям
Проект удовлетворяет заданным требованиям корпоративного ассистента знаний по RAG, LangGraph, MCP, оценке, наблюдаемости и генерации итогового ответа.
Требование | Статус | Реализация |
Источник корпоративных знаний | Выполнено | Корпоративные PDF-документы загружаются с помощью PyPDF, включая |
Реализация RAG | Выполнено | Документы разбиваются на фрагменты с помощью рекурсивного разбиения текста ( |
LangGraph | Выполнено |
|
Интеграция MCP | Выполнено | Пользовательский MCP-сервер предоставляет |
Оценка RAGAS | Выполнено | Агент-оценщик вычисляет достоверность и релевантность ответа и отображает результаты оценки и интерпретацию. Пример результата: 0.95 достоверность, 0.95 релевантность ответа — отлично. |
Наблюдаемость | Выполнено | Трассировка LangSmith обеспечивает видимость выполнения LangGraph, отдельных узлов, вызовов LLM, входных данных, выходных данных, задержки, извлечённого контекста и результатов оценки. |
Трассировка выполнения графа | Выполнено | Поузловое выполнение фиксируется для агента-поителя, агента ответа и агента-оценщика как в выводе приложения, так и в LangSmith. |
Итоговый вывод приложения | Выполнено | Приложение формирует обоснованный итоговый ответ, содержащий вопрос пользователя, сгенерированный ответ, информацию об источниках, оценки RAGAS и интерпретацию оценки. |
Общий статус
Все заданные требования проекта реализованы и выполнены.
Полный рабочий процесс:
Корпоративные PDF → RAG-поиск → MCP-инструмент → агенты LangGraph → ответ LLM → оценка RAGAS → наблюдаемость LangSmith → Итоговый вывод
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