Skip to main content
Glama
wojtekkura

Purple AI MCP Server

by wojtekkura

Servidor MCP de Purple AI

License: MIT

El servidor MCP de Purple AI le permite acceder a los servicios de SentinelOne con cualquier cliente MCP.

Características

Este servidor expone la plataforma de SentinelOne a través del Protocolo de Contexto de Modelo (MCP):

  • Purple AI: Realice preguntas de seguridad, investigue amenazas

  • Eventos: Ejecute PowerQueries sobre eventos en su lago de datos de SentinelOne

  • Alertas: Consulte, busque e investigue alertas

  • Vulnerabilidades: Realice un seguimiento de CVE y hallazgos de seguridad

  • Configuraciones erróneas: Analice problemas de postura de seguridad

  • Inventario: Realice preguntas sobre endpoints, recursos en la nube, identidades y dispositivos de red

Purple AI MCP es un servicio de solo lectura: no puede realizar cambios en su cuenta ni en ningún objeto dentro de su cuenta desde este MCP.

Related MCP server: Datadog MCP Server

Inicio rápido

Uso de uv (Recomendado para desarrollo local o despliegue)

# 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

⚠️ Nota de seguridad ⚠️

Para entornos de producción o sensibles a la seguridad, fije una versión a un hash de confirmación específico en lugar de utilizar la rama predeterminada para reducir el riesgo en la cadena de suministro desde nuestros lanzamientos o nuestras confirmaciones verificadas en la rama main.

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

Almacenamiento seguro de tokens (Recomendado)

En lugar de mantener PURPLEMCP_CONSOLE_TOKEN en archivos de configuración de texto plano o variables de entorno, puede almacenarlo en el administrador de credenciales de su sistema operativo. Esto utiliza el Administrador de credenciales de Windows en Windows, Keychain en macOS o Secret Service en Linux.

1. Almacene su token (configuración única):

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

Se le pedirá que introduzca y confirme el token. La entrada está oculta.

2. Actualice la configuración de su cliente para eliminar PURPLEMCP_CONSOLE_TOKEN de 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"
      }
    }
  }
}

El token se recupera automáticamente del almacén de credenciales al iniciar. Si PURPLEMCP_CONSOLE_TOKEN también está configurado como una variable de entorno, la variable de entorno tiene prioridad.

Para eliminar un token almacenado:

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

Agregar el token al Administrador de credenciales de Windows manualmente

Si prefiere agregar el token directamente sin ejecutar el comando purple-mcp-store-token, utilice PowerShell:

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

Para verificar que se almacenó:

cmdkey /list:purple-mcp*

Para eliminarlo:

cmdkey /delete:"purple-mcp/PURPLEMCP_CONSOLE_TOKEN"

Uso de 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

Nota: Los contenedores de Docker no pueden acceder al almacén de credenciales del sistema operativo anfitrión, por lo que PURPLEMCP_CONSOLE_TOKEN debe pasarse como una variable de entorno. Utilice la gestión de secretos de su plataforma (por ejemplo, Docker secrets, AWS Secrets Manager) para evitar codificarlo de forma rígida.

Uso de Amazon Bedrock AgentCore

Siga las instrucciones para el despliegue de Amazon Bedrock AgentCore aquí

Uso de Amazon Elastic Container Service (ECS)

Siga las instrucciones para el despliegue de Amazon Elastic Container Service aquí

Para despliegues de producción, consulte la Guía de despliegue.

Nota: Purple AI MCP no incluye autenticación integrada. Para despliegues expuestos a la red, colóquelo detrás de un proxy inverso o balanceador de carga. Consulte Configuración de producción para configuraciones de balanceador de carga en la nube (AWS ALB, GCP Cloud Load Balancing, Azure Application Gateway) o ejemplos de nginx para despliegues autohospedados.


Su token necesita permisos a nivel de Cuenta o Sitio (no Globales). Obtenga uno en Policy & Settings → User Management → Service Users en su consola. Actualmente, este servidor solo admite tokens que tengan acceso a una única Cuenta o Sitio. Si necesita acceder a varios sitios, deberá ejecutar varios servidores MCP con tokens específicos de Cuenta o Sitio.

Clientes

Purple AI MCP admite los protocolos stdio, sse y streamable-http y debería funcionar en cualquier cliente que admita MCP. A continuación se enumeran algunas configuraciones de ejemplo.

Claude Desktop

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

Ejecute este comando en una terminal:

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

Ejecute este comando en una terminal:

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

Aquí tiene un ejemplo de código Python para usar Purple MCP con un agente de 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

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

Otros clientes

Para depurar o alojar el servidor para varios clientes, ejecute en modo streamable-http y conéctese a través de 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

Sugerimos que no exponga Purple AI MCP en una red en este momento, ya que no se aplica autenticación y cualquiera podría acceder a una cuenta de SentinelOne configurada.

Herramientas disponibles

Purple AI

  • purple_ai(query) - Realice preguntas de seguridad

Data Lake

  • powerquery(query, start_time, end_time) - Ejecute análisis de PowerQuery

Alertas

  • get_alert(alert_id) - Obtenga detalles de la alerta

  • list_alerts(first, after, view_type) - Enumere alertas recientes

  • search_alerts(filters, first) - Busque con filtros

  • get_alert_notes(alert_id) - Obtenga comentarios de la alerta

  • get_alert_history(alert_id) - Vea la línea de tiempo de la alerta

Vulnerabilidades

  • get_vulnerability(id) - Obtenga detalles de la vulnerabilidad

  • list_vulnerabilities(first, after) - Enumere vulnerabilidades recientes

  • search_vulnerabilities(filters, first) - Busque CVE y hallazgos

  • get_vulnerability_notes(id) - Obtenga comentarios

  • get_vulnerability_history(id) - Vea la línea de tiempo

Configuraciones erróneas

  • get_misconfiguration(id) - Obtenga detalles de la configuración errónea

  • list_misconfigurations(first, after) - Enumere problemas recientes

  • search_misconfigurations(filters, first) - Busque por criterios

  • get_misconfiguration_notes(id) - Obtenga comentarios

  • get_misconfiguration_history(id) - Vea la línea de tiempo

Inventario de activos

  • get_inventory_item(item_id) - Obtenga detalles del activo

  • list_inventory_items(limit, skip, surface) - Enumere activos por tipo de superficie

  • search_inventory_items(filters, limit) - Busque con filtros avanzados

Variables de entorno

  • PURPLEMCP_CONSOLE_TOKEN - Token de usuario de servicio (nivel de Cuenta o Sitio)

  • PURPLEMCP_CONSOLE_BASE_URL - URL de la consola (por ejemplo, https://console.sentinelone.net)

  • PURPLEMCP_TRANSPORT_MODE - Modo de transporte MCP: stdio (predeterminado), sse o streamable-http

  • PURPLEMCP_STATELESS_HTTP - Habilite el modo HTTP sin estado para despliegues sin servidor (por ejemplo, Amazon Bedrock AgentCore) - consulte la guía de despliegue

Desarrollo

Agradecemos sus solicitudes de extracción o envíos de problemas.

Configuración

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

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

Pruebas

# 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

Solución de problemas

  • Errores de autenticación: Compruebe que su token tenga permisos a nivel de Cuenta/Sitio (no Globales) y que su token no haya caducado

  • PowerQuery no devuelve los resultados esperados: Compruebe que su token tenga permisos a nivel de Cuenta/Sitio (no Globales)

  • Fallos de conexión: Verifique la URL de su consola y el acceso a la red; utilice --verbose para obtener registros de depuración

Licencia

Este proyecto tiene licencia MIT; consulte el archivo LICENSE para obtener más detalles.

Soporte

Para problemas con este servidor MCP, abra un problema.

Este proyecto es de código abierto y está impulsado por la comunidad. Aunque no es un producto oficial de SentinelOne, es mantenido por SentinelOne en asociación con la comunidad de desarrolladores de código abierto más amplia. Consulte nuestro archivo LICENSE para obtener más información.

Para obtener soporte de la plataforma SentinelOne, utilice el canal de soporte adecuado.

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