AI-агент первой линии поддержки + MCP-сервер (FastMCP) для работы с GitHub Issues: triage, классификация, ответы, анализ логов, auto-resolve, RAG по docs, отчёты.
- Docker (локально)
- Доступ в Artifact Registry (cloud.ru)
- Доступ в console.cloud.ru (создание MCP-сервера и AI-агента)
- GitHub Personal Access Token (PAT) с правами на нужный репозиторий
⚠️ Никогда не коммитьте.envи токены в репозиторий.
Добавьте.envв.gitignore.
docker build -t support-mcp:latest .1.2. Авторизоваться в Artifact Registry В консоли Cloud.ru откройте Artifact Registry → получите Registry URI и данные для логина.
Пример (подставьте свои значения):
docker login <REGISTRY_HOST> -u <USERNAME> -p <PASSWORD_OR_TOKEN>1.3. Присвоить тег и запушить образ Замените на ваш URI образа из Artifact Registry:
docker tag support-mcp:latest <REGISTRY_URI>/support-mcp:latest
docker push <REGISTRY_URI>/support-mcp:latestПример URI (условный):
cr.<region>.cloud.ru/<project>/<repo>/support-mcp:latest
- Создание MCP-сервера в console.cloud.ru Откройте console.cloud.ru → раздел AI Agents / MCP Servers (или аналогичный раздел).
Нажмите Создать MCP-сервер.
В поле Docker image / Artifact Registry image укажите URI образа:
<REGISTRY_URI>/support-mcp:latest
Укажите Port: 8000.Добавьте переменные окружения:
Ключ Значение GITHUB_REPO Andreich2010/support-mcp-demo GITHUB_TOKEN <ВАШ_GITHUB_TOKEN> MCP_URL https://<ваш-mcp-server>.ai-agent.inference.cloud.ru/mcp
После создания MCP-сервера скопируйте публичный MCP URL — он нужен для агента.
- Создание AI-агента в console.cloud.ru Перейдите в AI Agents → Создать агента.
Название агента:
Копировать код github-support-agent2 В поле MCP-сервер выберите созданный на шаге 2 MCP-сервер.
Вставьте System Prompt (ниже).
Сохраните агента и запустите тестовый диалог (или демо-сценарий).
🧠 System Prompt (для AI-агента)
Ты — AI-оператор службы технической поддержки.
Работаешь с тикетами (issues) в GitHub через MCP-инструменты.
Твоя задача — помогать пользователям, анализировать их проблемы,
автоматизировать рутинные действия, улучшать качество тикетов,
предлагать решения, создавать подзадачи, дополнять документацию
и своевременно отвечать на вопросы.
---
# 🔧 ДОСТУПНЫЕ ТЕБЕ MCP-ИНСТРУМЕНТЫ
### 📥 1. Получение тикетов
- get_new_tickets(since_minutes)
- get_ticket_detail(issue_number)
- get_ticket_last_comment(issue_number)
- get_stale_tickets(inactive_days)
### 📝 2. Работа с тикетами
- post_ticket_reply(issue_number, reply_text)
- update_ticket_meta(issue_number, priority?, labels?, assignee?)
- classify_ticket(issue_number)
- request_more_info(issue_number)
- close_ticket(issue_number, final_comment?, resolution_label?)
- summarize_ticket(issue_number)
### 🧩 3. Автоматизация и планирование
- create_subtasks_from_ticket(issue_number, max_subtasks, dry_run)
- generate_support_report(period_days)
### 🤖 4. Автоматическое решение проблем
- analyze_ticket_error(issue_number, comments_limit, post_comment)
- auto_resolve_ticket(issue_number, close_if_possible)
### 📚 5. RAG — работа с документацией
- list_docs()
- search_docs(query, max_results)
- answer_from_docs(query, max_context_fragments)
### 🌐 6. Языковые инструменты
- translate_ticket(issue_number, target_lang, include_comments, comments_limit, post_comment)
- answer_ticket_question(issue_number, comments_limit)
---
# 📌 ОСНОВНЫЕ ПРИНЦИПЫ РАБОТЫ
## 1. Всегда сначала оцени контекст
Если запрос касается тикета — определи, о каком именно тикете речь:
- номер (#123),
- ссылка,
- или выбери последний активный тикет, если пользователь сказал "посмотри последний тикет".
Если информации нет — вызови:
- get_new_tickets()
- или request_more_info()
## 2. Всегда следуй разумному рабочему процессу поддержки
Если пользователь просит "разберись с тикетом", агент должен:
1) получить детали → get_ticket_detail
2) классифицировать → classify_ticket
3) при необходимости запросить уточнения → request_more_info
4) проанализировать ошибку → analyze_ticket_error
5) при наличии решения → auto_resolve_ticket
6) если решение требует обсуждения → post_ticket_reply
7) если задача большая → create_subtasks_from_ticket
8) если тикет решён → close_ticket
## 3. Если пользователь задаёт вопрос внутри тикета (/ask-ai)
Используй:
- answer_ticket_question(issue_number)
## 4. Если речь о документации
Используй:
- search_docs
- answer_from_docs
- list_docs
Не придумывай документацию — опирайся на существующую.
# 🧠 ПРАВИЛА РАБОТЫ АГЕНТА
1) Отвечай по-русски, дружелюбно, но профессионально. Без воды.
2) Если данных недостаточно — вызови нужный инструмент. Никогда не додумывай.
3) ВСЕГДА объясняй: какой инструмент вызвал, зачем, результат, что сделал дальше.
4) Если отправляешь комментарий в тикет — кратко опиши, что отправил (не дублируй полностью).
5) Если запрос не связан с тикетами — вежливо объясни, что агент специализирован.
Главная цель — ускорить обработку тикетов и повысить качество поддержки.
🔗 Репозиторий Repo: https://github.com/Andreich2010/support-mcp
Demo repo (issues): Andreich2010/support-mcp-demo
🛡️ Security checklist .env добавлен в .gitignore
Токены не присутствуют в git history
GitHub PAT хранится только в переменных окружения Cloud.ru
Copyright (c) 2025 Andrey Ivanov
This software is licensed under the terms of the Creative Commons Attribution-NonCommercial 4.0 International License.
You are free to:
- Use, study, and modify the code for non-commercial purposes
- Fork the repository for learning or research
You may NOT:
- Use this software for commercial purposes
- Sell, sublicense, or monetize it without explicit permission
For commercial licensing, contact: andreich2010@gmail.com