Интеграция TRON.ASOC с MCP-клиентами
TRON.ASOC поддерживает протокол MCP (Model Context Protocol) — стандарт взаимодействия ИИ-агентов с внешними инструментами и данными. TRON.ASOC выступает в роли MCP-сервера и предоставляет ИИ-агентам доступ к функциям управления уязвимостями, сканированиями, проектами и другими сущностями системы.
Характеристики реализации:
- протокол — JSON-RPC 2.0;
- передача данных — Streamable HTTP (основной способ), SSE (устаревший способ).
Перед началом работы
Перед подключением убедитесь, что:
- доступен сервер TRON.ASOC версии 1.6 и выше;
- на рабочей машине установлен совместимый MCP-клиент (Claude Code, Cursor и др.);
- для учетной записи пользователя в TRON.ASOC создан API-токен с необходимыми правами доступа. Подробнее о создании API-токена см. раздел Создание API-токена.
Аутентификация
Для подключения к MCP-серверу TRON.ASOC используется заголовок X-API-Token с действительным API-токеном пользователя.
Права доступа к инструментам определяются ролями и политиками пользователя, от имени которого выполняется запрос.
Конфигурация сервера
MCP-сервер настраивается в конфигурационном файле config.yml:
mcp:
enabled: true
tools: [] # пустой массив = все инструменты включены
Чтобы ограничить доступные инструменты, укажите их названия в массиве tools:
mcp:
enabled: true
tools:
- asoc_list_projects
- asoc_get_project
- asoc_list_issues
Подключение MCP-клиента
В этом разделе описано подключение MCP-клиента Claude Code.
Чтобы подключить MCP-клиент, выполните следующие шаги:
-
Создайте или отредактируйте файл
~/mcp.json:{"mcpServers": {"asoc": {"type": "http","url": "https://<asoc-host>/mcp","headers": {"X-API-Token": "<api-токен>"}}}} -
Проверьте подключение с помощью
curl:TOKEN="<api-токен>"URL="https://<asoc-host>/mcp"# 1. Инициализация сессииSESSION=$(curl -s -D - -X POST $URL \-H "Content-Type: application/json" \-H "X-API-Token: $TOKEN" \-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}' \| grep -i "Mcp-Session-Id" | awk '{print $2}' | tr -d '\r')# 2. Подтверждение готовности клиентаcurl -s -X POST $URL \-H "Content-Type: application/json" \-H "X-API-Token: $TOKEN" \-H "Mcp-Session-Id: $SESSION" \-d '{"jsonrpc":"2.0","method":"notifications/initialized","params":{}}'# 3. Получение списка инструментовcurl -s -X POST $URL \-H "Content-Type: application/json" \-H "X-API-Token: $TOKEN" \-H "Mcp-Session-Id: $SESSION" \-d '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'# 4. Вызов инструментаcurl -s -X POST $URL \-H "Content-Type: application/json" \-H "X-API-Token: $TOKEN" \-H "Mcp-Session-Id: $SESSION" \-d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"asoc_list_projects","arguments":{}}}'Результат шага: ответ на запрос 3 содержит список инструментов MCP-сервера TRON.ASOC.
Доступные MCP-инструменты
В таблицах ниже представлены MCP-инструменты для действий с сущностями системы (например, создание проекта или слоя, изменение статуса уязвимости, запуск сканирования и т. д.).
Проекты
| Инструмент | Назначение | Необходимые права |
|---|---|---|
asoc_list_projects | Получение списка проектов | Просмотр проектов |
asoc_get_project | Получение определенного проекта | Просмотр проектов |
asoc_create_project | Создание проекта | Создание и редактирование проектов |
Слои
| Инструмент | Назначение | Необходимые права |
|---|---|---|
asoc_get_project_layer_tree | Получение иерархии слоев проекта | Просмотр слоев |
asoc_list_layers | Получение списка слоев | Просмотр слоев |
asoc_get_layer | Получение информации о слое по ID | Просмотр слоев |
asoc_create_layer | Создание слоя | Создание и редактирование слоев |
Уязвимости
| Инструмент | Назначение | Необходимые права |
|---|---|---|
asoc_list_issues | Получение списка уязвимостей | Просмотр проблем безопасности |
asoc_get_issue | Получение информации об уязвимости по ID | Просмотр проблем безопасности |
asoc_update_issue_status | Изменение статуса уязвимости | Обновление проблем безопасности |
asoc_get_issue_statuses | Получение статусов уязвимостей | — |
asoc_group_update_status | Массовое изменение статуса уязвимостей | Обновление проблем безопасности |
asoc_group_update_severity | Массовое изменение критичности уязвимостей | Обновление проблем безопасности |
asoc_assign_issue | Назначение ответственного | Назначение ответственного |
asoc_get_issue_characteristics | Получение уровней критичности уязвимостей | — |
asoc_get_comments | Получение комментариев | Просмотр комментариев |
asoc_add_comment | Добавление комментария | Комментирование |
asoc_delete_comment | Удаление комментария | Удаление комментариев |
asoc_get_mentions | Получение упоминаний текущего пользователя | — |
asoc_mark_mentions_read | Отметка упоминаний прочитанными | — |
asoc_mark_comments_read | Отметка комментариев прочитанными | Просмотр комментариев |
Сканирования
| Инструмент | Назначение | Необходимые права |
|---|---|---|
asoc_list_scans | Получение списка сканирований | Просмотр проверок безопасности |
asoc_get_scan | Получение информации о сканировании | Просмотр проверок безопасности |
asoc_stop_scan | Остановка сканирования | Управление проверками безопасности |
asoc_list_scan_filters | Получение фильтров сканирования | Просмотр проверок безопасности |
asoc_compare_scans | Сравнение двух сканирований | Просмотр проверок безопасности |
Проверки безопасности
| Инструмент | Назначение | Необходимые права |
|---|---|---|
asoc_create_check | Создание проверки безопасности | Управление проверками безопасности |
asoc_get_check | Получение информации о проверке безопасности | Просмотр проверок безопасности |
asoc_run_check | Запуск проверки безопасности | Запуск проверок безопасности |
Статистика
| Инструмент | Назначение | Необходимые права |
|---|---|---|
asoc_stats_open | Получение данных об открытых уязвимостях | Просмотр проблем безопасности |
asoc_stats_all | Получение общей статистики | Просмотр проблем безопасности |
asoc_stats_severity | Получение статистики по критичности | Просмотр проблем безопасности |
asoc_stats_tool | Получение статистики по инструментам | Просмотр проблем безопасности |
asoc_stats_project | Получение статистики по проектам | Просмотр проблем безопасности |
asoc_stats_vulnerability | Получение статистики по CWE/CVE | Просмотр проблем безопасности |
Контроли качества
| Инструмент | Назначение | Необходимые права |
|---|---|---|
asoc_list_gates | Получение списка контролей качества | Просмотр шаблонов контролей качества |
asoc_get_gate | Получение данных о контроле качества | Просмотр шаблонов контролей качества |
asoc_get_gate_status_for_layer | Получение статуса контроля качества для слоя | Просмотр шаблонов контролей качества |
asoc_get_gate_status_for_check | Получение статуса контроля качества для проверки | Просмотр шаблонов контролей качества |
asoc_create_gate | Создание контроля качества | Управление шаблонами контролей качества |
asoc_attach_gate_to_check | Привязка контроля качества к проверке | Управление шаблонами контролей качества |
asoc_create_condition | Создание условия контроля качества | Управление шаблонами контролей качества |
Пользователи
| Инструмент | Назначение | Необходимые права |
|---|---|---|
asoc_list_users | Получение списка пользователей | — |
asoc_get_user | Получение данных о пользователе по ID | — |
asoc_get_current_user | Получение данных о текущем пользователе | — |
asoc_list_user_api_tokens | Получение списка API-токенов пользователя | — |
asoc_delete_api_token | Удаление API-токена | — |
Трекеры задач
| Инструмент | Назначение | Необходимые права |
|---|---|---|
asoc_list_trackers | Получение списка настроенных трекеров | Просмотр трекеров |
asoc_get_tracker | Получение информации о трекере | Просмотр трекеров |
asoc_sync_tracker_task | Синхронизация с задачей трекера | Создание задач для трекера |
asoc_unlink_tracker_task | Отвязка задачи трекера | Создание задач для трекера |
SBOM и зависимости
| Инструмент | Назначение | Необходимые права |
|---|---|---|
asoc_list_sboms | Получение списка SBOM-файлов | Просмотр зависимостей |
asoc_list_dependencies | Получение списка зависимостей | Просмотр зависимостей |
asoc_get_dependency | Получение данных о зависимости | Просмотр зависимостей |
FP-анализ
| Инструмент | Назначение | Необходимые права |
|---|---|---|
asoc_fp_analyze | Запуск FP-анализа | Работа с FP-анализом |
asoc_fp_get_analysis | Получение результата FP-анализа | Работа с FP-анализом |
Прочие инструменты
| Инструмент | Назначение | Необходимые права |
|---|---|---|
asoc_list_reports | Получение списка отчетов | Просмотр отчетов |
asoc_list_severities | Получение данных об уровнях критичности | — |
asoc_list_tools | Получение списка инструментов | Просмотр инструментов |
asoc_create_tool | Создание инструмента | Создание и редактирование инструментов |
asoc_update_tool | Обновление инструмента | Создание и редактирование инструментов |
asoc_list_sources | Получение списка источников | Просмотр источников |
asoc_create_source | Создание источника | Создание и редактирование источников |
asoc_update_source | Обновление источника | Создание и редактирование источников |
asoc_visibility_filter | Проверка доступа к сущностям | — |