# Ollama MCP Quick Start Guide ## Быстрая установка (1 команда) ```bash curl -sSL https://git.thedevops.dev/admin/k3s-gitops/raw/branch/main/apps/ollama-mcp/install.sh | bash ``` ## Что будет установлено: 1. **MCP Kubernetes Server** - REST API для управления кластером 2. **MCP Gitea Server** - REST API для работы с Git репозиториями 3. **Docker Compose** - оркестрация сервисов 4. **Health checks** - автоматический мониторинг состояния ## После установки: ### 1. Настроить Gitea токен ```bash cd ~/ollama-mcp nano .env ``` Добавь свой токен: ```env GITEA_TOKEN=your_token_here ``` Получить токен: - https://git.thedevops.dev/user/settings/applications - Generate New Token - Права: `repo`, `admin:org`, `write:repository` ### 2. Перезапустить сервисы ```bash docker-compose restart ``` ### 3. Проверить статус ```bash docker-compose ps docker-compose logs -f ``` ## Интеграция с Ollama ### Способ 1: Через Open WebUI Если у тебя установлен Open WebUI: 1. Settings → Connections → Add Connection 2. Name: `Kubernetes MCP` 3. URL: `http://localhost:3001` 4. Type: `REST API` ### Способ 2: Прямые запросы ```bash # Список подов curl -X POST http://localhost:3001/api/pods/list \ -H "Content-Type: application/json" \ -d '{"namespace": "argocd"}' # Логи пода curl -X POST http://localhost:3001/api/pods/logs \ -H "Content-Type: application/json" \ -d '{"name": "argocd-server-xxx", "namespace": "argocd", "tailLines": 100}' # Список репозиториев curl -X POST http://localhost:3002/api/repos/list \ -H "Content-Type: application/json" \ -d '{"owner": "admin"}' ``` ### Способ 3: Создать wrapper для Ollama Создай файл `ollama-k8s.sh`: ```bash #!/bin/bash PROMPT="$*" # Отправить запрос к Ollama с контекстом MCP ollama run qwen2.5-coder:32b " Context: You have access to Kubernetes API at http://localhost:3001 and Gitea API at http://localhost:3002 Available Kubernetes endpoints: - POST /api/pods/list - list pods - POST /api/pods/logs - get pod logs - POST /api/deployments/list - list deployments - POST /api/services/list - list services - POST /api/namespaces/list - list namespaces Available Gitea endpoints: - POST /api/repos/list - list repositories - POST /api/repos/file/get - get file content - POST /api/repos/tree/get - list directory - POST /api/repos/file/create - create file - POST /api/repos/branches/list - list branches User request: $PROMPT Generate curl commands to execute this request and show the results. " ``` Использование: ```bash chmod +x ollama-k8s.sh ./ollama-k8s.sh "покажи все поды в namespace monitoring" ./ollama-k8s.sh "получи логи grafana за последние 50 строк" ``` ## Примеры промптов для Ollama ### Kubernetes: ``` "Покажи все поды в namespace argocd" "Получи логи пода prometheus-xxx за последние 100 строк" "Список всех deployments в namespace monitoring" "Покажи все сервисы в default namespace" "Какие namespaces есть в кластере?" ``` ### Gitea: ``` "Покажи все репозитории пользователя admin" "Получи содержимое файла apps/loki/statefulset.yaml из репозитория k3s-gitops" "Покажи структуру директории apps/ в k3s-gitops" "Создай файл test.yaml в репозитории k3s-gitops" "Какие ветки есть в репозитории k3s-gitops?" ``` ## Troubleshooting ### MCP серверы не отвечают ```bash cd ~/ollama-mcp # Проверить логи docker-compose logs mcp-kubernetes docker-compose logs mcp-gitea # Перезапустить docker-compose restart # Пересобрать docker-compose down docker-compose build --no-cache docker-compose up -d ``` ### Ошибка подключения к Kubernetes ```bash # Проверить kubeconfig kubectl --kubeconfig=~/ollama-mcp/config/kubeconfig get nodes # Если не работает, скопировать заново cp ~/.kube/config ~/ollama-mcp/config/kubeconfig docker-compose restart mcp-kubernetes ``` ### Ошибка подключения к Gitea ```bash # Проверить токен curl -H "Authorization: token YOUR_TOKEN" \ https://git.thedevops.dev/api/v1/user # Обновить токен в .env nano ~/ollama-mcp/.env docker-compose restart mcp-gitea ``` ### Порты заняты Если порты 3001 или 3002 уже заняты: ```bash nano ~/ollama-mcp/.env ``` Измени порты: ```env MCP_K8S_PORT=4001 MCP_GITEA_PORT=4002 ``` ```bash docker-compose down docker-compose up -d ``` ## Управление ```bash cd ~/ollama-mcp # Запустить docker-compose up -d # Остановить docker-compose down # Перезапустить docker-compose restart # Статус docker-compose ps # Логи (следить в реальном времени) docker-compose logs -f # Логи конкретного сервиса docker-compose logs -f mcp-kubernetes docker-compose logs -f mcp-gitea # Обновить образы docker-compose pull docker-compose up -d ``` ## Безопасность - **Kubeconfig**: Защищен правами 600, доступен только внутри контейнера - **Gitea Token**: Хранится в .env (не коммитится в git) - **Network**: Изолированная Docker сеть - **Ports**: По умолчанию доступны на localhost (127.0.0.1) Для публичного доступа (НЕ рекомендуется без SSL): ```yaml ports: - "0.0.0.0:3001:3000" # Доступен извне ``` ## Дополнительно ### Мониторинг Health checks доступны по: - http://localhost:3001/health - http://localhost:3002/health ### Логи в файл ```bash docker-compose logs > mcp-logs.txt ``` ### Автозапуск при перезагрузке Сервисы уже настроены с `restart: unless-stopped` Для проверки после перезагрузки: ```bash docker ps | grep mcp ``` ## Полная документация Смотри [README.md](./README.md) для подробной информации.