Интеграция облачной версии платформы ТестОпс с GitHub Actions упрощает автоматизацию тестирования и сбор результатов в одной системе. В этом руководстве мы поэтапно настроим трёхстороннюю связку: результаты запусков GitHub Actions будут отправляться в TMS ТестОпс, откуда можно инициировать новые запуски на GitHub. MCP обеспечивает интеллектуальную интеграцию и автоматизацию процессов между всеми системами. Мы рассматриваем требования к окружению, генерацию необходимых токенов, изменение конфигурации рабочего процесса и настройку параметров окружения, а также возможные ошибки.
⚡️ Внимание! Это 2-я часть из серии статей, посвящённых настройке связки MCP + GitHub + ТестОпс. В этой статье подробно разбирается настройка интеграции GitHub и MCP: как подключить MCP-сервер, интегрировать его с GitHub и использовать возможности AI-инструментов для автоматизации и анализа CI/CD процессов. В первой части рассматривается сопряжение GitHub и ТестОпс — настройка интеграции, автоматизация запуска тестов и передача результатов.
Интеграция Cursor и MCP: автоматизация и расширение возможностей
Настройка интеграции — технически сложный процесс, однако современные технологии упрощают его. Особенно стоит отметить связку Cursor и Model Context Protocol (MCP). Эти инструменты на базе искусственного интеллекта автоматизируют задачи интеграции.
Cursor = продвинутая AI-платформа для разработки и тестирования, объединяющая возможности интеллектуального автодополнения кода и чат-ассистента. Она позволяет подключать внешние источники данных и инструменты с помощью протокола MCP (Model Context Protocol).
Простыми словами, MCP открывает для AI-движка доступ к предоставленным в качестве контекста системам и сервисам. Вместо того чтобы вручную объяснять ИИ структуру проекта или копировать токены, можно настроить интеграцию через MCP, и тогда Cursor сможет автоматически получать контекст из GitHub и других ресурсов (при настроенной интеграции).
В данном примере MCP и Cursor можно использовать в следующих целях:
- Автоматизировать подготовку конфигурации. С помощью готовых MCP-серверов для GitHub и ТестОпс AI-ассистент Cursor способен сам найти нужный проект, получить ID проекта или сгенерировать шаблон YAML workflow. Для этого достаточно описать своими словами задачу в чате и инструмент предложит готовый фрагмент кода.
- Извлекать данные для анализа. Cursor может по запросу получить через MCP информацию о последних запусках тестов или статус интеграции. Это удобно для отладки: в естественной форме можно задать вопросы (например: «Какие ошибки в последнем запуске?»), а AI через API находит в GitHub ответ и предоставляет в читабельном для человека виде.
- Обучаться на документации. Подключив MCP к документации (например, к репозиторию в GitHub по API, откуда, в свою очередь, данные могут передаваться в ТестОпс), AI сможет быстрее находить ответы на вопросы по настройке, без необходимости искать в справке вручную.
Важно понимать, что MCP – это дополнительная надстройка для удобства. Она не обязательна для успеха интеграции, но для тех, кто уже использует AI-инструменты в работе, связка Cursor + MCP может существенно ускорить процесс.
В конечном счёте, интеграция MCP с Cursor – это хороший способ повысить эффективность. При этом, она не заменяет ручную настройку (для этого всё ещё нужны токены и понимание шагов), но дополняет её. Как отмечают эксперты, сочетание структурированного контекста MCP с мощным AI-редактором Cursor даёт разработчикам и тестировщикам более интуитивный и быстрый опыт работы. В целях автоматизации рутинных аспектов настройки CI/CD и интеграций, стоит присмотреться к этим новым возможностям.
Подключение Cursor IDE к GitHub MCP
Установка связей между GitHub и MCP‑сервером
Простой способ: через команду NPX
В данном случае необязательно клонировать репозиторий, можно запустить готовый сервер через npx (Node автоматически загружает пакет):
npx -y @modelcontextprotocol/server-github stdioЕсли в выводе появляется сообщение Server listening on stdio…, это означает, что MCP‑сервер готов к работе.
Почему это проще?
- Не нужно git clone и npm install.
- Пакет уже содержит package.json, prebuild‑скрипт и сборку.
- y автоматически отвечает «yes» на вопрос "Install package @modelcontextprotocol/server-github?".
Альтернативный вариант: клонировать и собрать вручную
При наличии исходных материалов:
git clone <https://github.com/modelcontextprotocol/servers.git> mcp-serverscd mcp-servers/githubnpm install # здесь уже есть package.json, в корневом каталоге его нетnode server.js stdioВажно перейти в подпапку github с package.json, иначе npm install даст ошибку «ENOENT: no such file or directory, open package.json», как вы уже увидели.
Binary (Go) сборка
В репозитории GitHub MCP есть вариант на языке «Go». Если установлен Go версии 1.22 и выше:
git clone <https://github.com/github/github-mcp-server.gitcd> github-mcp-servergo build -o github-mcp-server ./cmd/server./github-mcp-server stdioОднако вариант с npx гораздо быстрее.
Подключение MCP-сервера к Cursor IDE
I. Генерируем или добавляем готовый PAT.
- Если нужен новый токен, переходим в GitHub, где переходим в раздел Settings → Developer settings → Personal access tokens.
- Если fine‑grained токен с правами Actions + Issues уже готов — используем его.
- Копируем токен в буфер или сохраняем в отдельном файле.
II. Запускаем MCP‑сервер.
- В отдельном терминале (окно/вкладка) вводим команду:
npx -y @modelcontextprotocol/server-github stdio- Появится строка Server listening on stdio — сворачиваем терминал, он должен оставаться запущенным.
- Открываем Command Palette (Ctrl+Shift+P) → вводим MCP: List Tools.
- Появляется минимум 5–6 GitHub‑методов (list_pull_requests, create_issue, …).
mkdir -p ~/.cursornano ~/.cursor/mcp.json- Вставляем в соответствующую строчку (заменяем токен):
{
"mcp": {
"servers": {
"github": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github", "stdio"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "<Актуальный_PAT>"
}
}
}
}
}- type: "stdio" сообщает Cursor, что сервер общается через stdin/stdout.
- Если используется сборка на "GO", нужно прописать абсолютный путь.
IV. Перезапускаем Cursor IDE (закрываем/открываем окно программы).
- При старте Cursor находит ~/.cursor/mcp.json → поднимает указанный сервер (если он ещё не запущен, запустит сам).
V. Проверяем, что инструменты появились.
- Открываем Command Palette (Ctrl+Shift+P) → вводим MCP: List Tools.
- Появляется минимум 5–6 GitHub‑методов (list_pull_requests, create_issue, …).
VI. Запускаем быстрый тест
- В чат‑панели Cursor вводим команду:
@assistant: list\\_pull\\_requests owner="<your_GIT_login>" repo="project-mcp-github-testops" state="open"Если в ответ бот выводит JSON‑таблицу PR, значит MCP работает корректно.
Частые вопросы
Теперь Cursor умеет вызывать GitHub через MCP — AI‑ассистент видит PR, Issue и может их создавать прямо из IDE.
Проверка всего цикла
1) Открываем hello.test.js, заменяем текст «always passes» → «always fails»:
it('always fails', () => {
expect(true).toBe(false);
});2) Пушим изменения:
git add . && git commit -m "ломаем тест" && git push3) Видим, что GitHub Actions упал (запуск станет красным). В логе отображается ссылка на отчёт ТестОпс, о том, что запуск не выполнен (Launch = Failed).
4) В ТестОпс открываем «Запуски», находим упавший тест, справа Issues → Add → GitHub — создаём новую Issue.
5) Переходим в GitHub → Issue создана; в чате с ассистентом Cursor вводим запрос «show last issue» — ассистент откроет описание.
Готово! Теперь код хранится в репозитории, CI работает, отчёты уходят в ТестОпс, issues связываются, AI‑ассистент видит репозиторий и может выполнять команды.
Управление запусками GitHub Actions через MCP
Этот метод позволяет быстро отменять все «висящие» или «красные» запуски рабочего процесса прямо из Cursor, не открывая сайт GitHub.
⚠️ Важно! Перед тем как управлять запусками через MCP, один раз убедитесь, что GitHub MCP‑сервер поддерживает необходимые инструменты (list_workflow_runs, cancel_workflow_run). Для этого:
- Открываем Командную панель (Command Palette) в Cursor IDE (Ctrl+Shift+P) и выполняем команду MCP: List Tools.
- В списке должны присутствовать методы "list_workflow_runs" и "cancel_workflow_run".
- Если их нет — обновляем сервер командой:
npm i -g @modelcontextprotocol/server-github@latest- После обновления перезапускаем сервер и Cursor.
Когда инструменты стали доступны, для отмены зависших или неудачных запусков GitHub Actions просто выполняем следующие действия:
- В чате Cursor запрашиваем список активных запусков:
- @assistant: list_workflow_runs owner="<your_GIT_login>" repo="<project_title>" status="in_progress"
- Для каждого нужного запуска выполните команду отмены:
- @assistant: cancel_workflow_run owner="<your_GIT_login>" repo="<project_title>" run_id=1234567890
⚠️ Важно! Следует проверить, что у PAT-токена есть необходимые права. В настройках доступа fine-grained токена обязательно должно быть указано "Actions: Read & Write".
Проверка через браузер
- Переходим во вкладку Actions. Здесь можно увидеть, что все «зависшие» прогоны меняют статус на Cancelled.
- Отправляем новый push (или workflow_dispatch) — в маркировке прогонов отображается зелёный кружок.
В результате можно не только запускать, но и останавливать workflow‑runs через MCP напрямую из Cursor, не покидая IDE. Это особенно удобно, если тест завис и CI простаивает.
Рекомендации по улучшению
- Настройте интеграцию с Telegram через вебхуки, чтобы оперативно получать уведомления о статусе запусков тестов. Пошаговая инструкция доступна в этой статье.
- Используйте Дашборды в ТестОпс для наглядного мониторинга и визуализации ключевых метрик тестирования. Подробнее о возможностях дашбордов читайте в документации.
- Применяйте специальные теги, такие как smoke и regress, для маркировки тест-кейсов и удобной фильтрации результатов. Подробности о работе с тегами — в документации.