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: Datadog 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 installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
AlicenseAqualityBmaintenanceEnables 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.3390MIT- AlicenseNot gradedqualityDmaintenanceEnables natural-language investigation of Datadog data including logs, metrics, monitors, traces, hosts, dashboards, events, and incidents, all through read-only API access.2,053MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants read-only access to Sprinklr data via MCP, allowing querying reports, searching cases, and calling Sprinklr API endpoints.7ISC
- AlicenseAqualityBmaintenanceEnables natural-language queries about Azure resource compliance, including VM compliance, patch status, orphaned RBAC, and infrastructure health, through read-only MCP tools.3MIT
Related MCP Connectors
Read-only MCP access to sessions, funnels, campaigns, errors, live visitors, and anomalies.
Official Microsoft MCP Server to query Microsoft Entra data using natural language
A paid remote MCP for AI SDK data query MCP, built to return verdicts, receipts, usage logs, and aud
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/wojtekkura/purple-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server