Skip to main content
Glama
wojtekkura

Purple AI MCP Server

by wojtekkura

Purple AI MCP Server

License: MIT

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-http

  • PURPLEMCP_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 используйте соответствующий канал поддержки.

A
license - permissive license
Not graded
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    A
    quality
    B
    maintenance
    Enables 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.
    33
    90
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables natural-language investigation of Datadog data including logs, metrics, monitors, traces, hosts, dashboards, events, and incidents, all through read-only API access.
    2,053
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants read-only access to Sprinklr data via MCP, allowing querying reports, searching cases, and calling Sprinklr API endpoints.
    7
    ISC

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

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