Purple AI MCP Server
Purple AI MCP Server
Purple AI MCP Server позволяет вам получать доступ к службам SentinelOne с помощью любого MCP-клиента.
Возможности
Этот сервер предоставляет доступ к платформе SentinelOne через протокол Model Context Protocol:
Purple AI: Задавайте вопросы по безопасности, расследуйте угрозы
События (Events): Запускайте PowerQueries для событий в вашем хранилище данных SentinelOne
Оповещения (Alerts): Выполняйте запросы, поиск и расследование оповещений
Уязвимости (Vulnerabilities): Отслеживайте CVE и результаты проверок безопасности
Неправильные конфигурации (Misconfigurations): Анализируйте проблемы состояния безопасности
Инвентаризация (Inventory): Задавайте вопросы об эндпоинтах, облачных ресурсах, идентификационных данных и сетевых устройствах
Purple AI MCP — это служба только для чтения; вы не можете вносить изменения в свою учетную запись или любые объекты внутри нее с помощью этого MCP.
Related MCP server: Sprinklr MCP Server
Быстрый старт
Использование uv (Рекомендуется для локальной разработки или развертывания)
# Install uv if you don't have it
curl -LsSf https://astral.sh/uv/install.sh | sh
# Store your token securely (one-time setup, see Secure Token Storage below)
uvx --from git+https://github.com/Sentinel-One/purple-mcp.git purple-mcp-store-token
# Set base URL
export PURPLEMCP_CONSOLE_BASE_URL="https://your-console.sentinelone.net"
# Run
uvx --from git+https://github.com/Sentinel-One/purple-mcp.git purple-mcp --mode=stdio⚠️ Примечание по безопасности ⚠️
Для производственных или критически важных сред фиксируйте версию на конкретном хеше коммита вместо использования ветки по умолчанию, чтобы снизить риски для цепочки поставок из наших релизов или наших проверенных коммитов в ветке main.
# Run with pinned hash
uvx --from git+https://github.com/Sentinel-One/purple-mcp.git@<commit-hash> purple-mcp --mode=stdioБезопасное хранение токенов (Рекомендуется)
Вместо хранения PURPLEMCP_CONSOLE_TOKEN в конфигурационных файлах в виде обычного текста или переменных окружения, вы можете хранить его в менеджере учетных данных вашей операционной системы. Это использует Диспетчер учетных данных Windows в Windows, Keychain в macOS или Secret Service в Linux.
1. Сохраните ваш токен (однократная настройка):
uvx --from git+https://github.com/Sentinel-One/purple-mcp.git purple-mcp-store-tokenВам будет предложено ввести и подтвердить токен. Ввод скрыт.
2. Обновите конфигурацию вашего клиента, чтобы удалить PURPLEMCP_CONSOLE_TOKEN из env:
{
"mcpServers": {
"purple-mcp": {
"command": "uvx",
"args": ["--from", "git+https://github.com/Sentinel-One/purple-mcp.git", "purple-mcp", "--mode", "stdio"],
"env": {
"PURPLEMCP_CONSOLE_BASE_URL": "https://your-console.sentinelone.net"
}
}
}
}Токен автоматически извлекается из хранилища учетных данных при запуске. Если PURPLEMCP_CONSOLE_TOKEN также задан как переменная окружения, переменная окружения имеет приоритет.
Чтобы удалить сохраненный токен:
uvx --from git+https://github.com/Sentinel-One/purple-mcp.git purple-mcp-delete-tokenДобавление токена в Диспетчер учетных данных Windows вручную
Если вы предпочитаете добавить токен напрямую без запуска команды purple-mcp-store-token, используйте PowerShell:
cmdkey /generic:"purple-mcp/PURPLEMCP_CONSOLE_TOKEN" /user:"PURPLEMCP_CONSOLE_TOKEN" /pass:"your-token-here"Чтобы проверить, что он был сохранен:
cmdkey /list:purple-mcp*Чтобы удалить его:
cmdkey /delete:"purple-mcp/PURPLEMCP_CONSOLE_TOKEN"Использование Docker
# Build the image
docker build -t purple-mcp:latest .
docker run -p 8000:8000 \
-e PURPLEMCP_CONSOLE_TOKEN="your_token" \
-e PURPLEMCP_CONSOLE_BASE_URL="https://your-console.sentinelone.net" \
-e MCP_MODE=streamable-http \
purple-mcp:latestПримечание: Контейнеры Docker не имеют доступа к хранилищу учетных данных хост-ОС, поэтому
PURPLEMCP_CONSOLE_TOKENдолжен передаваться как переменная окружения. Используйте систему управления секретами вашей платформы (например, Docker secrets, AWS Secrets Manager), чтобы избежать жесткого кодирования.
Использование Amazon Bedrock AgentCore
Следуйте инструкциям по развертыванию Amazon Bedrock AgentCore здесь
Использование Amazon Elastic Container Service (ECS)
Следуйте инструкциям по развертыванию Amazon Elastic Container Service здесь
Для производственных развертываний см. Руководство по развертыванию.
Примечание: Purple AI MCP не включает встроенную аутентификацию. Для развертываний, доступных из сети, разместите его за обратным прокси-сервером или балансировщиком нагрузки. См. Настройка для производства для конфигураций облачных балансировщиков нагрузки (AWS ALB, GCP Cloud Load Balancing, Azure Application Gateway) или примеры nginx для самостоятельных развертываний.
Ваш токен должен иметь разрешения на уровне учетной записи (Account) или сайта (Site) (не глобальные). Получите его в разделе Policy & Settings → User Management → Service Users в вашей консоли. В настоящее время этот сервер поддерживает только токены, имеющие доступ к одной учетной записи или одному сайту. Если вам нужен доступ к нескольким сайтам, вам потребуется запустить несколько MCP-серверов с токенами, специфичными для учетной записи или сайта.
Клиенты
Purple AI MCP поддерживает протоколы stdio, sse и streamable-http и должен работать в любом клиенте, поддерживающем MCP. Некоторые примеры конфигураций приведены ниже.
Claude Desktop
Отредактируйте ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) или %APPDATA%/Claude/claude_desktop_config.json (Windows):
{
"mcpServers": {
"purple-mcp": {
"command": "uvx",
"args": ["--from", "git+https://github.com/Sentinel-One/purple-mcp.git", "purple-mcp", "--mode", "stdio"],
"env": {
"PURPLEMCP_CONSOLE_BASE_URL": "https://your-console.sentinelone.net"
}
}
}
}Claude Code
Выполните эту команду в терминале:
claude mcp add --transport stdio purple-mcp --env PURPLEMCP_CONSOLE_BASE_URL=https://your-console.sentinelone.net -- uvx --from git+https://github.com/Sentinel-One/purple-mcp.git purple-mcp --mode stdio
OpenAI Codex
Выполните эту команду в терминале:
codex mcp add purple-mcp --env PURPLEMCP_CONSOLE_BASE_URL=https://your-console.sentinelone.net -- uvx --from git+https://github.com/Sentinel-One/purple-mcp.git purple-mcp --mode stdio
Pydantic AI
Вот пример кода на Python для использования Purple MCP с агентом Pydantic AI.
from pydantic_ai import Agent
from pydantic_ai.mcp import MCPServerStdio
server = MCPServerStdio(
'uvx', args=["--from", "git+https://github.com/Sentinel-One/purple-mcp.git", "purple-mcp", "--mode", "stdio"], timeout=10
)
agent = Agent('anthropic:claude-haiku-4-5', toolsets=[server])Zed
Отредактируйте ~/.zed/mcp.json:
{
"mcpServers": {
"purple-mcp": {
"enabled": true,
"source": "custom",
"command": "uvx",
"args": ["--from", "git+https://github.com/Sentinel-One/purple-mcp.git", "purple-mcp", "--mode", "stdio"],
"env": {
"PURPLEMCP_CONSOLE_BASE_URL": "https://your-console.sentinelone.net"
}
}
}
}Другие клиенты
Для отладки или размещения сервера для нескольких клиентов запустите его в режиме streamable-http и подключитесь через mcp-remote:
# Terminal 1: Start server
export PURPLEMCP_CONSOLE_BASE_URL="https://your-console.sentinelone.net"
uvx --from git+https://github.com/Sentinel-One/purple-mcp.git purple-mcp --mode streamable-http --host localhost --port 8000
# Terminal 2: Connect with any client
npx -y mcp-remote http://127.0.0.1:8000/mcpМы рекомендуем не открывать Purple AI MCP в сети в настоящее время, так как аутентификация не принудительна, и любой может получить доступ к настроенной учетной записи SentinelOne.
Доступные инструменты
Purple AI
purple_ai(query)- Задавать вопросы по безопасности
Data Lake
powerquery(query, start_time, end_time)- Запуск аналитики PowerQuery
Оповещения (Alerts)
get_alert(alert_id)- Получить детали оповещенияlist_alerts(first, after, view_type)- Список недавних оповещенийsearch_alerts(filters, first)- Поиск с фильтрамиget_alert_notes(alert_id)- Получить комментарии к оповещениюget_alert_history(alert_id)- Просмотреть хронологию оповещения
Уязвимости (Vulnerabilities)
get_vulnerability(id)- Получить детали уязвимостиlist_vulnerabilities(first, after)- Список недавних уязвимостейsearch_vulnerabilities(filters, first)- Поиск CVE и результатов проверокget_vulnerability_notes(id)- Получить комментарииget_vulnerability_history(id)- Просмотреть хронологию
Неправильные конфигурации (Misconfigurations)
get_misconfiguration(id)- Получить детали неправильной конфигурацииlist_misconfigurations(first, after)- Список недавних проблемsearch_misconfigurations(filters, first)- Поиск по критериямget_misconfiguration_notes(id)- Получить комментарииget_misconfiguration_history(id)- Просмотреть хронологию
Инвентаризация активов (Asset Inventory)
get_inventory_item(item_id)- Получить детали активаlist_inventory_items(limit, skip, surface)- Список активов по типу поверхностиsearch_inventory_items(filters, limit)- Поиск с расширенными фильтрами
Переменные окружения
PURPLEMCP_CONSOLE_TOKEN- Токен сервисного пользователя (уровень учетной записи или сайта)PURPLEMCP_CONSOLE_BASE_URL- URL консоли (например, https://console.sentinelone.net)PURPLEMCP_TRANSPORT_MODE- Режим транспорта MCP:stdio(по умолчанию),sseилиstreamable-httpPURPLEMCP_STATELESS_HTTP- Включить режим stateless HTTP для бессерверных развертываний (например, Amazon Bedrock AgentCore) - см. руководство по развертыванию
Разработка
Мы приветствуем ваши pull-запросы или сообщения об ошибках.
Настройка
# Install all dependencies
uv sync --group dev --group test
# Format and lint
uv run ruff format
uv run ruff check
uv run mypyТестирование
# Run unit tests
uv run pytest tests/unit/ -v
# Run integration tests (requires .env.test with real credentials)
uv run pytest tests/integration/ -v
# All tests with coverage
uv run pytest --cov=src/purple_mcp --cov-report=htmlУстранение неполадок
Ошибки аутентификации: Проверьте, что ваш токен имеет разрешения на уровне учетной записи/сайта (не глобальные) и что срок действия токена не истек
PowerQuery не возвращает ожидаемых результатов: Проверьте, что ваш токен имеет разрешения на уровне учетной записи/сайта (не глобальные)
Сбои подключения: Проверьте URL консоли и сетевой доступ; используйте
--verboseдля журналов отладки
Лицензия
Этот проект лицензирован по лицензии MIT - подробности см. в файле LICENSE.
Поддержка
По вопросам, связанным с этим MCP-сервером, откройте issue.
Этот проект является открытым исходным кодом и поддерживается сообществом. Хотя это не официальный продукт SentinelOne, он поддерживается SentinelOne в партнерстве с более широким сообществом разработчиков открытого ПО. Дополнительную информацию см. в нашем файле LICENSE.
Для получения поддержки по платформе SentinelOne используйте соответствующий канал поддержки.
This server cannot be deployed
Maintenance
Related MCP Connectors
Query your org's data in natural language — read-only MCP access to SQL, NoSQL, files & warehouses.
Read-only MCP access to sessions, funnels, campaigns, errors, live visitors, and anomalies.
Query OneLens cloud-cost data in natural language: breakdowns, trends, cost centers. Read-only.
Read-only access to InfluSense influencer discovery, ratings, watchlists, and reports via MCP.
Related MCP Servers
AlicenseBqualityBmaintenanceEnables MCP clients to interact with SentinelOne's cybersecurity platform for security analysis, threat investigation, and asset management through natural language queries. Provides read-only access to alerts, vulnerabilities, misconfigurations, and inventory data.3399MIT- AlicenseNot gradedqualityCmaintenanceEnables AI assistants read-only access to Sprinklr data via MCP, allowing querying reports, searching cases, and calling Sprinklr API endpoints.5 npmISC
- AlicenseAqualityDmaintenanceEnables natural-language queries about Azure resource compliance, including VM compliance, patch status, orphaned RBAC, and infrastructure health, through read-only MCP tools.3MIT
- AlicenseNot gradedqualityBmaintenanceProvides read-only, guarded access to business databases via MCP. Enables natural language querying with built-in security barriers like table allowlists, PII masking, and audit logging.MIT