CYBO Attest MCP server
CYBO Attest — консоль авторизации приложений, созданных с помощью конвейера cDSO (Community DevSecOps). MCP-сервер позволяет вам, вашим агентам и ботам работать с Attest через любой MCP-клиент: узнавать, что блокирует сборку, получать упорядоченный план устранения проблем, запускать сканирование и обосновывать выводы, которые нельзя исправить, пока сборка не будет одобрена к выпуску.
В этом репозитории описан сервер. Сам сервер размещён на Ulap — устанавливать ничего не нужно.
Адрес сервера: https://attest.ulapcybo.app/mcp (Streamable HTTP)
Название в реестре: app.ulapcybo/attest
Документация: Подключение AI-агента
Возможности
-
Состояние безопасности. Результаты последнего сканирования каждого контейнера: вердикт, не пройденные контрольные условия, причина блокировки и дальнейшие действия.
-
Планы исправления. Для выбранной сборки — упорядоченный план: одобренный тег базового образа, на котором следует выполнить пересборку, версии пакетов, до которых нужно обновиться, и проблемы, которые необходимо устранить. Также доступен журнал неудачного задания.
-
Результаты проверок. Полная информация о каждом результате, строка манифеста и команды для исправления уязвимого пакета, а также ответы Explainable AI о том, что этот результат означает для вашего приложения.
-
Сканирование. Запуск сканирования приложения, пошаговое отслеживание сборки и проверок, просмотр свидетельств от каждого сканера и журналов заданий.
-
Приложения. Добавление репозитория GitHub, синхронизация приложения с последними коммитами его репозитория, использование исправленного Attest Dockerfile и отправка версии на проверку.
-
Обоснования. Создание и редактирование обоснования для результата, который нельзя исправить, а затем его отправка с указанием причины, которую сможет проверить специалист по оценке мер безопасности.
Решение об одобрении или отклонении сборки по-прежнему принимает специалист по оценке мер безопасности в консоли. Ни один инструмент не может принять такое решение.
Перед началом работы
Вам понадобится учётная запись CYBO Attest: https://attest.ulapcybo.app. MCP-сервер выполняет вход через OAuth в браузере. Все инструменты действуют от вашего имени и с учётом назначенных вам ролей: они могут делать только то, что доступно вам в консоли, и не более того. Каждое изменение фиксируется с указанием вашего имени и использованного клиента.
Настройка клиента
VS Code с GitHub Copilot
Добавьте сервер в .vscode/mcp.json в рабочей области (или в пользовательскую конфигурацию MCP):
{
"servers": {
"cybo-attest": {
"type": "http",
"url": "https://attest.ulapcybo.app/mcp"
}
}
}
Запустите сервер из файла или списка MCP-серверов, затем войдите в систему, когда VS Code откроет браузер. Используйте инструменты в Copilot Chat в режиме агента.
Claude Code
claude mcp add --transport http cybo-attest https://attest.ulapcybo.app/mcp
Затем выполните /mcp в Claude Code и выберите CYBO Attest, чтобы войти в систему.
Другие клиенты
К серверу можно подключиться из любого MCP-клиента, который поддерживает Streamable HTTP и OAuth: https://attest.ulapcybo.app/mcp. Сервер публикует данные для входа по адресу https://attest.ulapcybo.app/.well-known/oauth-protected-resource/mcp, поэтому клиент находит их автоматически.
Использование
Формулируйте запросы обычным языком. Например:
-
«Что блокирует мои приложения в CYBO Attest?»
-
«Составь план исправления для последней сборки моего тестового приложения, а затем исправь Dockerfile и зависимости».
-
«Объясни этот результат и скажи, можно ли его исправить или нужно обосновать».
-
«Запусти сканирование ещё раз и сообщи, когда оно завершится».
-
«Подготовь черновик обоснования для этого результата, чтобы я мог его отредактировать».
Рекомендуемый порядок действий: используйте get_security_posture, чтобы узнать, что заблокировано, затем plan_fixes для выбранной сборки; исправьте код, запустите start_scan и отслеживайте ход проверки с помощью get_application_progress, пока сканирование не завершится. Обосновывайте результат только в том случае, если его нельзя исправить.
Инструменты
Набор инструментов, доступных клиенту, зависит от ваших ролей и предоставленных при входе разрешений.
Просмотр данных
| Инструмент | Описание |
|---|---|
whoami | Информация о пользователе, выполнившем вход |
get_security_posture | Результаты последнего сканирования каждого контейнера: вердикт, не пройденные контрольные условия, причина блокировки и дальнейшие действия |
plan_fixes | Упорядоченный план исправления выбранной сборки |
list_applications, get_application | Ваши приложения, их компоненты и источники |
list_intake_applications | Приложения, подготовленные для вас в Attest |
get_application_progress | Последняя сборка и сканирование с пошаговым описанием |
get_application_config | Конфигурация cDSO, зафиксированная Attest |
get_dockerfile_fix | Ваш Dockerfile и исправленный вариант от Attest |
list_authorization_candidates | Версии, которые можно отправить на авторизацию |
get_github, list_github_repositories | Сведения о подключении GitHub и доступных репозиториях |
list_justifications | Действующие и отозванные обоснования |
console_link | Страница консоли для действий, доступных только в ней |
list_scans, find_scans, get_scan | Сканирования, их этапы, контрольные условия и вердикты |
list_findings, get_finding, get_finding_change | Результаты проверок и способы исправления уязвимых пакетов |
explain_finding, draft_justification | Объяснение результата с помощью Explainable AI и черновик обоснования |
explain_gate, explain_gate_controls, explain_job, explain_assessment | Объяснения с помощью Explainable AI для контрольных условий, связанных с ними мер, неудачных заданий и оценки влияния сканирования |
list_scan_runs, list_scan_jobs, get_scan_job_log | Запуски конвейера, задания и журналы |
list_base_images, list_base_image_tags | Одобренные базовые образы и их теги |
get_scan_evidence, get_scan_artifact, get_scan_source | Записи сканеров, опубликованные файлы и файлы отсканированного репозитория |
get_decision, get_review, get_review_summary | Решения и проверка специалиста по оценке мер безопасности |
Изменение данных
| Инструмент | Описание |
|---|---|
start_scan | Запуск сканирования приложения |
choose_dockerfile, use_fixed_dockerfile | Выбор Dockerfile или сборка с исправленным вариантом от Attest |
add_github_repository | Добавление репозитория GitHub в качестве приложения |
sync_application | Синхронизация приложения с последними коммитами его репозитория |
retry_provisioning | Возобновление неудачного предоставления приложения |
request_authorization | Добавление тега к версии и отправка её на проверку |
propose_justification, withdraw_justification, apply_justifications | Обоснование результата, отзыв обоснования и повторная фиксация обоснований |
remove_application | Удаление приложения (клиент сначала запросит подтверждение) |
Кроме того, сервер предоставляет два промпта — fix_blocking_findings и security_posture_report — и два ресурса: контракт API и справочник по сканерам, контрольным условиям и терминам.
Безопасность
-
Токены для чтения репозиториев не передаются инструментам и поэтому не попадают в модель. Вводите их только в консоли.
-
При каждом вызове проверяются токены с учётом вашей организации и ролей.
-
Конфиденциальность: https://ulapcybo.app/privacy
Поддержка
Вопросы и запросы на предоставление доступа: contact@ulap.co