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