Интеграция TRON.ASOC с MCP-клиентами
Система поддерживает протокол MCP (Model Context Protocol) — стандарт взаимодействия ИИ-агентов с внешними инструментами и данными. TRON.ASOC выступает в роли MCP-сервера, предоставляя ИИ-агентам доступ к функциям управления уязвимостями, сканированиями, проектами и другими сущностями системы.
Характеристики реализации:
- Протокол: JSON-RPC 2.0;
- Передача данных: Streamable HTTP (основной), SSE (legacy).
Требования
Перед началом работы убедитесь в следующем:
- на вашей рабочей машине установлен TRON.ASOC версии 1.7;
- на вашей рабочей машине установлен совместимый 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-клиента, выполните следующие шаги:
- Создайте или отредактируйте файл
\~/.claude/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":{}}}'
Доступные 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 | Проверка доступа к сущностям | — |