Skip to main content
Glama
wojtekkura

Purple AI MCP Server

by wojtekkura

Purple AI MCP-Server

License: MIT

Der Purple AI MCP-Server ermöglicht Ihnen den Zugriff auf SentinelOne-Dienste mit jedem beliebigen MCP-Client.

Funktionen

Dieser Server stellt die SentinelOne-Plattform über das Model Context Protocol bereit:

  • Purple AI: Sicherheitsfragen stellen, Bedrohungen untersuchen

  • Events: PowerQueries auf Ereignisse in Ihrem SentinelOne Data Lake ausführen

  • Alerts: Warnmeldungen abfragen, durchsuchen und untersuchen

  • Vulnerabilities: CVEs und Sicherheitsergebnisse nachverfolgen

  • Misconfigurations: Probleme bei der Sicherheitskonfiguration analysieren

  • Inventory: Fragen zu Endpunkten, Cloud-Ressourcen, Identitäten und Netzwerkgeräten stellen

Purple AI MCP ist ein schreibgeschützter Dienst – Sie können über dieses MCP keine Änderungen an Ihrem Konto oder an Objekten innerhalb Ihres Kontos vornehmen.

Related MCP server: Datadog MCP Server

Schnellstart

Verwendung von uv (Empfohlen für lokale Entwicklung oder Bereitstellung)

# 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

⚠️ Sicherheitshinweis ⚠️

Für Produktionsumgebungen oder sicherheitssensible Umgebungen sollten Sie auf einen spezifischen Commit-Hash festlegen, anstatt den Standard-Branch zu verwenden, um das Risiko in der Lieferkette zu verringern. Nutzen Sie dazu unsere Releases oder unsere verifizierten Commits im main Branch.

# Run with pinned hash
uvx --from git+https://github.com/Sentinel-One/purple-mcp.git@<commit-hash> purple-mcp --mode=stdio

Sichere Token-Speicherung (Empfohlen)

Anstatt PURPLEMCP_CONSOLE_TOKEN in Klartext-Konfigurationsdateien oder Umgebungsvariablen zu speichern, können Sie es im Anmeldeinformations-Manager Ihres Betriebssystems ablegen. Dies verwendet den Windows Credential Manager unter Windows, den Keychain unter macOS oder den Secret Service unter Linux.

1. Speichern Sie Ihr Token (einmalige Einrichtung):

uvx --from git+https://github.com/Sentinel-One/purple-mcp.git purple-mcp-store-token

Sie werden aufgefordert, das Token einzugeben und zu bestätigen. Die Eingabe ist verborgen.

2. Aktualisieren Sie Ihre Client-Konfiguration, um PURPLEMCP_CONSOLE_TOKEN aus env zu entfernen:

{
  "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"
      }
    }
  }
}

Das Token wird beim Start automatisch aus dem Anmeldeinformationsspeicher abgerufen. Wenn PURPLEMCP_CONSOLE_TOKEN zusätzlich als Umgebungsvariable gesetzt ist, hat die Umgebungsvariable Vorrang.

So entfernen Sie ein gespeichertes Token:

uvx --from git+https://github.com/Sentinel-One/purple-mcp.git purple-mcp-delete-token

Manuelles Hinzufügen des Tokens zum Windows Credential Manager

Wenn Sie das Token lieber direkt hinzufügen möchten, ohne den Befehl purple-mcp-store-token auszuführen, verwenden Sie PowerShell:

cmdkey /generic:"purple-mcp/PURPLEMCP_CONSOLE_TOKEN" /user:"PURPLEMCP_CONSOLE_TOKEN" /pass:"your-token-here"

Um zu überprüfen, ob es gespeichert wurde:

cmdkey /list:purple-mcp*

Zum Entfernen:

cmdkey /delete:"purple-mcp/PURPLEMCP_CONSOLE_TOKEN"

Verwendung von 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

Hinweis: Docker-Container können nicht auf den Anmeldeinformationsspeicher des Host-Betriebssystems zugreifen, daher muss PURPLEMCP_CONSOLE_TOKEN als Umgebungsvariable übergeben werden. Verwenden Sie die Secrets-Verwaltung Ihrer Plattform (z. B. Docker Secrets, AWS Secrets Manager), um eine Hardcodierung zu vermeiden.

Verwendung von Amazon Bedrock AgentCore

Folgen Sie den Anweisungen für die Amazon Bedrock AgentCore-Bereitstellung hier

Verwendung von Amazon Elastic Container Service (ECS)

Folgen Sie den Anweisungen für die Amazon Elastic Container Service-Bereitstellung hier

Für Produktionsbereitstellungen siehe Deployment Guide.

Hinweis: Purple AI MCP enthält keine integrierte Authentifizierung. Platzieren Sie den Server bei netzwerkexponierten Bereitstellungen hinter einem Reverse Proxy oder Load Balancer. Siehe Production Setup für Konfigurationen von Cloud Load Balancern (AWS ALB, GCP Cloud Load Balancing, Azure Application Gateway) oder nginx-Beispiele für selbst gehostete Bereitstellungen.


Ihr Token benötigt Berechtigungen auf Konto- oder Standortebene (nicht global). Sie erhalten ein solches Token unter Policy & Settings → User Management → Service Users in Ihrer Konsole. Derzeit unterstützt dieser Server nur Token, die Zugriff auf ein einzelnes Konto oder einen einzelnen Standort haben. Wenn Sie auf mehrere Standorte zugreifen müssen, müssen Sie mehrere MCP-Server mit kontospezifischen oder standortspezifischen Token ausführen.

Clients

Purple AI MCP unterstützt die Protokolle stdio, sse und streamable-http und sollte in jedem Client funktionieren, der MCP unterstützt. Einige Beispielkonfigurationen sind unten aufgeführt.

Claude Desktop

Bearbeiten Sie ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) oder %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

Führen Sie diesen Befehl in einem Terminal aus:

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

Führen Sie diesen Befehl in einem Terminal aus:

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

Hier ist ein Beispiel für Python-Code zur Verwendung von Purple MCP mit einem Pydantic AI Agent.

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

Bearbeiten Sie ~/.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"
      }
    }
  }
}

Andere Clients

Für das Debugging oder um den Server für mehrere Clients zu hosten, führen Sie ihn im streamable-http-Modus aus und verbinden Sie sich über 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

Wir empfehlen, Purple AI MCP derzeit nicht in einem Netzwerk freizugeben, da keine Authentifizierung erzwungen wird und jeder auf ein konfiguriertes SentinelOne-Konto zugreifen könnte.

Verfügbare Tools

Purple AI

  • purple_ai(query) - Sicherheitsfragen stellen

Data Lake

  • powerquery(query, start_time, end_time) - PowerQuery-Analysen ausführen

Alerts

  • get_alert(alert_id) - Details zu Warnmeldungen abrufen

  • list_alerts(first, after, view_type) - Aktuelle Warnmeldungen auflisten

  • search_alerts(filters, first) - Mit Filtern suchen

  • get_alert_notes(alert_id) - Kommentare zu Warnmeldungen abrufen

  • get_alert_history(alert_id) - Zeitverlauf der Warnmeldung anzeigen

Vulnerabilities

  • get_vulnerability(id) - Details zu Schwachstellen abrufen

  • list_vulnerabilities(first, after) - Aktuelle Schwachstellen auflisten

  • search_vulnerabilities(filters, first) - CVEs und Ergebnisse durchsuchen

  • get_vulnerability_notes(id) - Kommentare abrufen

  • get_vulnerability_history(id) - Zeitverlauf anzeigen

Misconfigurations

  • get_misconfiguration(id) - Details zu Fehlkonfigurationen abrufen

  • list_misconfigurations(first, after) - Aktuelle Probleme auflisten

  • search_misconfigurations(filters, first) - Nach Kriterien suchen

  • get_misconfiguration_notes(id) - Kommentare abrufen

  • get_misconfiguration_history(id) - Zeitverlauf anzeigen

Asset Inventory

  • get_inventory_item(item_id) - Asset-Details abrufen

  • list_inventory_items(limit, skip, surface) - Assets nach Oberflächentyp auflisten

  • search_inventory_items(filters, limit) - Mit erweiterten Filtern suchen

Umgebungsvariablen

  • PURPLEMCP_CONSOLE_TOKEN - Service-Benutzer-Token (Konto- oder Standortebene)

  • PURPLEMCP_CONSOLE_BASE_URL - Konsolen-URL (z. B. https://console.sentinelone.net)

  • PURPLEMCP_TRANSPORT_MODE - MCP-Transportmodus: stdio (Standard), sse oder streamable-http

  • PURPLEMCP_STATELESS_HTTP - Aktiviert den zustandslosen HTTP-Modus für serverlose Bereitstellungen (z. B. Amazon Bedrock AgentCore) – siehe Deployment Guide

Entwicklung

Wir freuen uns über Ihre Pull Requests oder das Einreichen von Issues.

Einrichtung

# Install all dependencies
uv sync --group dev --group test

# Format and lint
uv run ruff format
uv run ruff check
uv run mypy

Testen

# 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

Fehlerbehebung

  • Authentifizierungsfehler: Überprüfen Sie, ob Ihr Token über Berechtigungen auf Konto-/Standortebene verfügt (nicht global) und ob es nicht abgelaufen ist

  • PowerQuery liefert keine erwarteten Ergebnisse: Überprüfen Sie, ob Ihr Token über Berechtigungen auf Konto-/Standortebene verfügt (nicht global)

  • Verbindungsfehler: Überprüfen Sie Ihre Konsolen-URL und den Netzwerkzugriff; verwenden Sie --verbose für Debug-Protokolle

Lizenz

Dieses Projekt ist unter der MIT-Lizenz lizenziert – siehe die Datei LICENSE für Details.

Support

Bei Problemen mit diesem MCP-Server eröffnen Sie ein Issue.

Dieses Projekt ist Open Source und wird von der Community getrieben. Obwohl es kein offizielles SentinelOne-Produkt ist, wird es von SentinelOne in Partnerschaft mit der breiteren Open-Source-Entwickler-Community gepflegt. Weitere Informationen finden Sie in unserer LICENSE-Datei.

Für Support zur SentinelOne-Plattform verwenden Sie den entsprechenden Support-Kanal.

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