docs: update README JiraTools methods, add MEMORY rules, fix config entity

This commit is contained in:
2026-04-13 12:30:44 +03:00
parent 8962c916e8
commit 3828df69da
2 changed files with 198 additions and 8 deletions

169
README.md
View File

@@ -2,6 +2,32 @@
.NET 10 сервер Model Context Protocol (MCP) для интеграции Kubernetes инструментов.
## Трехслойная архитектура
```
┌─────────────────────────────────────────────────────────────┐
│ HTTP Transport Layer (ASP.NET Core) │
│ └── ModelContextProtocol 1.2.0 HTTP транспорт │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ Application Layer (Razor Pages UI) │
│ └── Web-страницы для мониторинга K8s │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ Kubernetes Layer (Kubernetes Client) │
│ └── Подключение к K8s API сервер через kubeconfig │
└─────────────────────────────────────────────────────────────┘
```
**Потоки данных:**
1. **Initialize Flow**: Клиент → HTTP → Application → K8s Client → K8s API
2. **Tools Flow**: Клиент → RPC → Tools → Kubernetes → Возврат результата
3. **Health Check Flow**: /health → HTTP → Liveness probe → K8s status
## Архитектура
```
LazyBear.MCP/
@@ -22,12 +48,25 @@ LazyBear.MCP/
## Быстрый старт
### Требования
- .NET 10 SDK
- Kubectl и kubeconfig
- Docker Desktop (опционально)
```bash
cd LazyBear.MCP
dotnet run
```
Сервер работает на `http://localhost:5000`
### Запуск через Docker
```bash
docker build -t lazybear-mcp .
docker run -p 5000:5000 -v $HOME/.kube:/root/.kube:ro lazybear-mcp
```
Сервер запустится на `http://localhost:5000`
## Примеры интеграции
@@ -99,14 +138,122 @@ echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":
## Доступные инструменты
### Kubernetes
### Kubernetes (Services/Kubernetes/)
| Инструмент | Описание |
|------------|-----------|
| `K8sConfigTools` | Управление конфигурациями K8s |
| `K8sDeploymentTools` | Управление деплоями |
| `K8sNetworkTools` | Управление сетями |
| `K8sPodsTools` | Управление подами |
#### **JiraTools** — Работа с Jira Issues
**Методы:**
- `createIssue` Создать новый тикет
- `updateIssue` Обновить существующий тикет
- `getIssueDetails` Получить детали тикета
- `searchIssues` Поиск тикетов по JQL
- `addComment` Добавить комментарий
- `getIssueStatuses` Получение доступных переходов статуса
- `listIssueComments` Список комментариев задачи
**Пример:**
```json
{
"method": "jiraTools/createIssue",
"params": {
"projectKey": "LAZYBEAR",
"summary": "Fix memory leak in K8s deployment",
"description": "Memory leak detected in pod nginx-pod-abc123",
"type": "BUG",
"priority": "High",
"assignee": "dev@example.com"
}
}
```
#### **K8sConfigTools** — Управление конфигурациями K8s
**Методы:**
- `readConfig` Чтение конфигурации кластера
- `writeConfig` Обновление конфигурации
- `deleteConfig` Удаление конфигурации
**Пример:**
```json
{
"method": "k8sConfigTools/readConfig",
"params": {"namespace": "default"}
}
```
#### **K8sDeploymentTools** — Управление деплоями
**Методы:**
- `createDeployment` Создать деплой
- `updateDeployment` Обновить деплой
- `deleteDeployment` Удалить деплой
- `scaleDeployment` Масштабировать деплой
**Пример:**
```json
{
"method": "k8sDeploymentTools/createDeployment",
"params": {
"name": "nginx",
"replicas": 3,
"image": "nginx:latest"
}
}
```
#### **K8sNetworkTools** — Управление сетями
**Методы:**
- `createService` Создать сервис
- `updateService` Обновить сервис
- `deleteService` Удалить сервис
- `createIngress` Создать ingress
- `deleteIngress` Удалить ingress
**Пример:**
```json
{
"method": "k8sNetworkTools/createService",
"params": {
"name": "nginx-svc",
"type": "ClusterIP",
"port": 80
}
}
```
#### **K8sPodsTools** — Управление подами
**Методы:**
- `getPodStatus` Получить статус пода
- `restartPod` Перезапустить под
- `execIntoPod` Выполнить команду в поде
- `deletePod` Удалить под
**Пример:**
```json
{
"method": "k8sPodsTools/getPodStatus",
"params": {"name": "nginx-pod-abc123"}
}
```
### Интерактивная панель (Pages/)
```
┌────────────────────────────────────────────┐
│ Dashboard: Обзор состояния кластера │
├────────────────────────────────────────────┤
│ Logs & Events: Журналы событий │
│ Containers & Images: Контейнеры │
│ Workloads & Nodes: Распределение │
└────────────────────────────────────────────┘
```
**Настройка:**
@@ -126,6 +273,7 @@ echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":
}
```
## Разработка
### Сборка
@@ -143,6 +291,11 @@ dotnet run
npx @modelcontextprotocol/inspector dotnet run --project LazyBear.MCP
```
## Stack
- .NET 10
- ASP.NET Core 9
## License
MIT