184 lines
6.3 KiB
Markdown
184 lines
6.3 KiB
Markdown
# 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
|
||
|
||
---
|
||
|
||
*Документ описывает почему проект существует и как должен работать пользователь.*
|