# Product Context — Зачем существует LazyBear MCP Server ## Проблема, которую решает проект ### Контекст пользователя DevOps инженер и разработчики ежедневно работают с: - **Jira** — создание, отслеживание, обновление задач - **Confluence** — документация, руководства, знания - **Kubernetes** — управление контейнерами, деплоями, сетями ### Точка боли **Ручная работа**: Каждый инструмент требует отдельного CLI вызова: ```bash # Jira CLI jira issue create --project LAZYBEAR ... # Confluence CLI confluence create --space LAZYBEAR ... # Kubernetes kubectl create deployment nginx --image=nginx:latest kubectl scale deployment nginx --replicas=3 ``` **Неэффективно**: Много времени тратится на переключение контекста, ввод команд, копирование значений. **Нет единой точки управления**: Разрозненные инструменты, неясно что активно и где. ### Решение **LazyBear MCP Server** объединяет все инструменты в один HTTP сервер: - Один вызов от IDE вызывает нужное действие - JSON-параметры вместо сложных CLI флага - Визуальный мониторинг через TUI - Локализация на русском языке ### Пользовательский опыт **До интеграции**: - 5-10 CLI команд для рутинных задач - Переключение между терминалами и браузерами - Потеря контекста между инструментами **После интеграции**: - 1 JSON вызов от IDE решает задачу - Единая консоль TUI показывает состояние кластера - Русская локализация для команды RU - Свободный фокус на логике работы ## Целевой пользователь ### Persona: DevOps Engineer **Характеристики**: - Работает с Kubernetes кластерами - Создает и обновляет Jira задачи - Документирует процессы в Confluence - Ценит автоматизацию **Цели**: - Минимизировать ручной ввод - Быстро реагировать на инциденты - Поддерживать актуальную документацию **Боли**: - Утомительный ручной ввод - Потеря контекста между инструментами - Недостаток visibility в работе инструментов ### Persona: Developer **Характеристики**: - Работает в IDE (Codex, VS Code) - Использует AI-ассистенты - Ценит быструю обратную связь **Цели**: - Автоматизировать рутину через AI - Быстрый доступ к информации о сервисах **Боли**: - AI не знает состояние K8s/Jira без интеграции - Потеря времени на setup команд ## Успешные сценарии использования ### Сценарий 1: Инцидент в Kubernetes ``` User (via AI): "В поде nginx-abc123 упал. Попробуй рестарт." ↓ AI вызывает: k8sPodsTools/restartPod(name="nginx-abc123") ↓ LazyBear вызывает K8s API ↓ Получает результат ↓ AI сообщает: "Под nginx-abc123 перезапущен" ``` ### Сценарий 2: Создание задачи инцидента ``` User (via AI): "Создать Jira задачу на проблему с nginx" ↓ AI вызывает: jiraTools/createIssue({ project: "LAZYBEAR", summary: "Нестабильность nginx", description: "...", type: "INCIDENT" }) ↓ Jira задача создана ``` ### Сценарий 3: Мониторинг через TUI ``` User запускает dotnet run ↓ TUI показывает: - Список deployed деплоев - Статус подов - Последние events - Кнопки действий - Векторные индексы Qdrant (если используется) ``` ### Сценарий 4: Поиск знаний через Qdrant ``` User (via AI): "Как настроить деплой nginx?" ↓ AI вызывает: qdrantKnowledgeTools/search({ query: "nginx деплой настройка", vector_embedding: [0.1, 0.2, ...] }) ↓ Qdrant возвращает релевантные документы ↓ AI предоставляет из Confluence/документации ``` ## Метрики успеха | Метрика | Цель | |---------|------| | Время на задачу (Jira) | -50% после интеграции | | Время на задачу (K8s) | -70% после интеграции | | Время на поиск знаний | -60% с Qdrant | | Довольство пользователей | >4.5/5 | | Количество инцидентов | Снизить на -30% | ## Нестандартные требования ### Локализация - **Первичный язык**: Русский (RU) - **Вторичный язык**: Английский (EN) - **Переключение**: Клавиша L в TUI ### TUI First - Основной интерфейс — консольная панель - HTTP MCP работает в фоне - TUI владелец консоли ### Swagger для API - `/swagger` для документации API - Для разработчиков клиентов ## Этические соображения - **Конфиденциальность**: Контенджер не получает реальные секреты - **Transparency**: Все действия логируются - **Fallback**: K8s config fallback к defaults --- *Документ описывает почему проект существует и как должен работать пользователь.*