F6 XDR MCP Server
MCP-сервер к платформе F6 XDR. Даёт ИИ-ассистенту доступ к алертам, инцидентам, письмам, файлам, хостам и журналу — поиском на языке запросов платформы.
Тулы
| Тул | Назначение |
|---|---|
xdr_search |
Поиск по секции; пустой запрос возвращает секцию целиком |
xdr_count |
Количество записей |
xdr_get_mapping |
Доступные поля поиска |
xdr_get_filters |
Доступные значения фильтров |
xdr_get_suggestions |
Реальные значения поля по префиксу |
xdr_list_artifacts |
Артефакты, собранные с хостов: багрепорты, логи, конфиги, дампы |
xdr_get_artifact_structure |
Файлы и папки внутри собранного артефакта |
xdr_download_artifact |
Скачать артефакт или его часть в локальную папку |
xdr_list_artifact_presets |
Пользовательские артефакты: сохранённые в консоли списки путей и команд |
xdr_collect_artifacts |
Запустить сбор артефактов с хоста |
xdr_abort_artifact_collection |
Остановить сбор, который ещё идёт |
xdr_mark_event |
Пометить объект: закрыть алерт, отметить ложное срабатывание |
Секции: alerts, incidents, emails, files, events, connections, assets,
modules, audit, applications, application_versions.
Первые семь тулов только читают. xdr_download_artifact пишет файлы на диск,
xdr_mark_event изменяет данные, а три тула сбора действуют на хостах; все они по
умолчанию выключены, см. раздел «Безопасность».
Быстрый старт
Нужен Python 3.10+ и персональный API-токен пользователя XDR.
{
"mcpServers": {
"xdr": {
"command": "uvx",
"args": ["xdr-mcp"],
"env": {
"XDR_BASE_URL": "https://<your-xdr-host>",
"XDR_API_KEY": "<token>"
}
}
}
}
Этот блок подходит для Claude Desktop, Cursor и VS Code. Для Claude Code:
claude mcp add xdr \
-e XDR_BASE_URL=https://<your-xdr-host> -e XDR_API_KEY=<token> \
-- uvx xdr-mcp
Вместо uvx можно использовать pip install xdr-mcp и команду xdr-mcp, либо
контейнер — docker run -i --rm -e XDR_BASE_URL -e XDR_API_KEY ghcr.io/f6-security/xdr-mcp
(образ собран под linux/amd64 и linux/arm64).
Переменные окружения
| Переменная | Назначение |
|---|---|
XDR_BASE_URL |
Адрес вашей инсталляции XDR |
XDR_API_KEY |
Персональный API-токен пользователя |
XDR_ALLOW_WRITE |
1 включает xdr_mark_event. По умолчанию выключен |
XDR_ALLOW_COLLECT |
1 включает сбор артефактов с хостов: xdr_collect_artifacts, xdr_abort_artifact_collection и xdr_list_artifact_presets. По умолчанию выключен |
XDR_PASSWORD_PROMPT |
1: когда консоль просит второй фактор для защищённых частей сбора, сервер сам спрашивает его у вас в отдельном окне (macOS или zenity) и передаёт прямо в консоль, минуя модель. По умолчанию выключен |
XDR_DOWNLOAD_DIR |
Папка, куда xdr_download_artifact сохраняет артефакты; заданная, включает тул. В контейнере — путь внутри примонтированного тома |
XDR_CA_BUNDLE |
PEM-бандл для инсталляции за внутренним УЦ |
Примеры запросов
alerts severity : "critical" AND resolved : "false"
alerts timestamp >= now-1d AND NOT false_positive : "true"
incidents closed : "false" AND timestamp >= now-30d
emails is_blocked : "true" AND timestamp >= now-1d
assets edr_active : "true"
applications vendor : "Microsoft Corporation"
audit success : "false" AND timestamp >= now-7d
Условия объединяются через AND, OR, NOT и группируются скобками. Время —
обычно поле timestamp, относительное (now-1d, now-6h) или абсолютное.
Какие поля доступны в секции, покажет xdr_get_mapping; в application_versions
для дат используются first_seen и last_seen.
В строковых значениях работает * в любой позиции: name : "VDI-5*",
file_name : "*.exe". Без него значение должно совпасть точно. Если запрос ничего не
вернул, а значение могло писаться иначе, точное написание подскажет
xdr_get_suggestions: платформа отвечает на несовпавшее значение нулём записей, а не
ошибкой.
Версии программного обеспечения
applications возвращает программное обеспечение, а application_versions —
записи его версий на активах. Сначала найдите нужное ПО в applications, затем
используйте его uuid в поле software_id:
application_versions software_id : "<software_uuid>"
application_versions software_id : "<software_uuid>" AND version : "1.2.3"
application_versions asset : "<machine_id>" AND last_seen >= now-7d
software_id поддерживается поиском, хотя отсутствует в xdr_get_mapping.
Поле asset принимает machine_id или точный current_name, соответствующий
одному активу. Ответ включает version, uuid, ts_created, ts_updated
и сведения об активе, например machine_id и computer_name.
Для секции доступны все пять тулов, принимающих секцию. Пагинация использует page_size
и offset; сортировка — version, ts_created, ts_updated с необязательным
префиксом -. xdr_count считает записи версий на активах: одинаковая версия
на разных активах может встречаться несколько раз. Поле version имеет
show_suggestions=false, поэтому пустой список подсказок допустим.
Безопасность
Всё, что возвращают читающие тулы, попадает в контекст языковой модели: адреса и темы писем, имена файлов, хосты, журнал действий. Выдавайте серверу токен с минимально необходимыми правами.
xdr_mark_event создаёт матчер — правило, которое применяется ко всем объектам,
подходящим под выражение, и этим тулом не отменяется. Поэтому тул выключен по
умолчанию; включайте XDR_ALLOW_WRITE осознанно и не добавляйте его в
авто-подтверждение MCP-клиента.
Собранные артефакты — одни из самых чувствительных данных платформы: дампы памяти,
учётные данные, история команд. xdr_download_artifact кладёт их на диск, а модели
возвращает только путь и размер — содержимое в контекст не попадает. Тул включается,
только когда задана XDR_DOWNLOAD_DIR; выбирайте для неё папку с ограниченным
доступом. Для списка и скачивания токену нужны права на артефакты.
xdr_collect_artifacts запускает на хосте сбор с правами SYSTEM или root. Сбор
нагружает хост, а пользовательские артефакты могут нести команды, которые на нём
выполнятся. Поэтому тулы сбора включаются своей переменной XDR_ALLOW_COLLECT, а не
XDR_ALLOW_WRITE. Произвольных команд тул не принимает, только пользовательские
артефакты, сохранённые человеком в консоли. За вызов — один хост, массового запуска
нет. Пути проверяются до запроса: неподходящий путь роняет весь сбор. Для путей,
пользовательских артефактов, багрепорта, дампов памяти, истории команд и ещё
нескольких частей платформа просит одноразовый код, если у пользователя токена нет
списка разрешённых IP. С XDR_PASSWORD_PROMPT=1 сервер спрашивает его в отдельном
окне и отправляет прямо в консоль. Модель его не видит, а окно показывает, что и с
какого хоста собирается. Без этой переменной модель спросит код в чате. Остановить
можно только сбор, который ещё идёт: отмену завершённого платформа тоже принимает, и
его архив после этого не читается. Не добавляйте тулы сбора в авто-подтверждение
MCP-клиента.
Модель угроз и порядок сообщения об уязвимостях — SECURITY.md.
Участие в разработке
См. CONTRIBUTING.md.
Лицензия
Metadata
Release files for xdr-mcp 1.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| xdr_mcp-1.3.0.tar.gz | 78.7 kB | With provenance | Details for xdr_mcp-1.3.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| xdr_mcp-1.3.0-py3-none-any.whl | Python 3 | none | any | Details for xdr_mcp-1.3.0-py3-none-any.whl |
Total release size: 110.1 kB
Release files / xdr_mcp-1.3.0.tar.gz
| Download URL | xdr_mcp-1.3.0.tar.gz |
|---|---|
| Size | 78.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
70e2faacce1a3d27d80cd51a4703d8c052b49d26c5fc6234a56fadc9c1601398
|
|
BLAKE2b-256 checksum How to use checksums |
a0dc241ff541bf4b8e994cd6fa9641b0e7ec9852a3fa99682219b937940f050f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 4, 2026.
Transparency logRelease files / xdr_mcp-1.3.0-py3-none-any.whl
| Download URL | xdr_mcp-1.3.0-py3-none-any.whl |
|---|---|
| Size | 31.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3e6aa7ded138b836855d09157dde3d8703c3a8a89e5062354a8b9c5a9d0c549e
|
|
BLAKE2b-256 checksum How to use checksums |
b8522db70e59f079a0e6cf251981519ec7e870a2dea403d46417abe0f17c54f5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 4, 2026.
Transparency logSecurity for xdr-mcp 1.3.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for xdr_mcp-1.3.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 4, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.