Skip to main content
Glama
AIOps Workspace MCP Server

AIOps Workspace MCP Server

by Lesikhin

AIOps Workspace

Python MCP Qdrant Ollama LLM Embeddings Transport License

Локальный AI-ассистент инженера эксплуатации с MCP-интеграцией, векторным поиском (Qdrant) и локальной LLM. Проект демонстрирует архитектурный подход к безопасному применению AI в промышленном контуре с фокусом на решение проблемы галлюцинаций.

1. Бизнес-проблема и решение

Проблема: Инженеры L1/L2 тратят 15 минут на поиск runbook'ов в Confluence, Jira и голове. При этом LLM-ассистенты без строгой интеграции с источниками данных генерируют правдоподобные, но ложные инструкции (галлюцинации), что в AIOps-контексте ведет к ложным действиям и увеличению MTTR.

Решение: Построен локальный AI-ассистент, который:

  • Не отвечает без обращения к инструментам (MCP-протокол).

  • Использует векторный поиск по актуальным runbook'ам (Qdrant + nomic-embed-text).

  • Работает полностью локально — данные не покидают периметр.

  • Требует явного подтверждения для write-операций (в PoC #4).

Измеримый результат: Тестирование показало снижение галлюцинаций в метриках с ~40% (базовая llama3.1:8b) до 0% (qwen2.5:7b) при сохранении 100% точности tool-calling.

Related MCP server: mcp-itglue

2. Архитектура

flowchart TB
    User["Пользователь<br/>(Open WebUI / CLI / MCP Inspector)"]
    
    subgraph LLM_Layer["LLM Layer"]
        LLM["Ollama<br/>qwen2.5:7b"]
        SP["System Prompt<br/>с guardrails"]
    end
    
    subgraph MCP_Layer["MCP Server (stdio)"]
        direction LR
        T1["get_system_status"]
        T2["search_knowledge_base"]
        T3["reindex_knowledge_base"]
    end
    
    subgraph Storage_Layer["Storage Layer"]
        direction LR
        Qdrant["Qdrant<br/>(Docker :6333)"]
        Emb["Ollama Embeddings<br/>nomic-embed-text"]
    end
    
    User -->|"запрос"| LLM
    SP -.->|"guardrails"| LLM
    LLM -->|"tool-calling"| MCP_Layer
    T2 -->|"векторный поиск"| Qdrant
    T2 -->|"эмбеддинг"| Emb
    
    %% Определение стилей (безопасный синтаксис для GitHub)
    classDef userClass fill:#3b82f6,stroke:#1e40af,color:#ffffff
    classDef llmClass fill:#f59e0b,stroke:#b45309,color:#ffffff
    classDef mcpClass fill:#10b981,stroke:#047857,color:#ffffff
    classDef storageClass fill:#dc2626,stroke:#991b1b,color:#ffffff
    
    class User userClass
    class LLM,SP llmClass
    class T1,T2,T3 mcpClass
    class Qdrant,Emb storageClass

3. Ключевое инженерное решение: борьба с галлюцинациями

В ходе реализации была выявлена и решена проблема "lazy tool-calling": базовые модели (llama3.1:8b) эмулируют вызов инструмента текстом вместо реального обращения к API, генерируя правдоподобные, но ложные метрики (например, CPU 83.21% вместо реальных 89%).

Архитектурное решение:

  1. Смена модели: переход на qwen2.5:7b, заточенную под агентные задачи.

  2. Усиление промпта: явный запрет на использование знаний из памяти о runbook'ах.

  3. Обязательное цитирование: требование указывать только источники, возвращенные инструментами.

Результат — 100% точность tool-calling и полное отсутствие галлюцинаций в метриках.

4. Стек технологий

Компонент

Технология

Назначение

Язык

Python 3.11+

Основная реализация

Управление зависимостями

uv

Современная замена pip

MCP SDK

mcp[cli] < 2.0.0

Реализация MCP-сервера

Векторная БД

Qdrant (Docker)

Хранение эмбеддингов

Qdrant-клиент

qdrant-client >= 1.7.0

Python SDK для Qdrant

LLM

Ollama

Локальный inference

Модель LLM

qwen2.5:7b

Tool-calling, генерация

Модель эмбеддингов

nomic-embed-text

Векторизация текстов (768 dim)

LLM-клиент

ollama >= 0.4.0

Python SDK для Ollama

5. Быстрый старт

5.1. Предварительные требования

  • Python 3.11+

  • Docker Desktop (для Qdrant)

  • Ollama (для локальной LLM)

  • uv (менеджер зависимостей)

5.2. Установка

# Клонирование репозитория
git clone <repo-url>
cd aiops-workspace

# Установка зависимостей
uv sync

# Запуск Qdrant
docker run -d -p 6333:6333 -p 6334:6334 -v qdrant_storage:/qdrant/storage --name qdrant qdrant/qdrant

# Загрузка моделей Ollama
ollama pull qwen2.5:7b
ollama pull nomic-embed-text

# Инициализация векторного хранилища
uv run python client/init_vector_store.py

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to autonomously check, diagnose, and recover Dockerized services through safe, tool-based ops without direct host shell access.
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Connects AI assistants to IT Glue, the MSP documentation platform. Browse organizations, read and write documents and flexible assets, and answer natural-language questions via semantic vector search (OpenAI/Azure embeddings). Viewer/editor/admin roles gate tool access; bring-your-own-key applies IT Glue's native permissions. Runs over stdio or HTTP; Docker image available.
    27
    127 npm
    5
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables autonomous infrastructure health management by exposing tools for retrieving system logs, querying a knowledge base, executing SQL analytics, and simulating system commands, all integrated into an AI-driven incident response workflow.
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables natural-language queries to Tactical RMM, GLPI/TurboDesk, Zabbix, and Grafana for IT alerts, agents, tickets, problems, and dashboard metadata through a local MCP stdio server.
    1
    MIT