Purple AI MCP Server
Servidor MCP de Purple AI
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=stdioAlmacenamiento 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-tokenSe 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-tokenAgregar 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:latestNota: Los contenedores de Docker no pueden acceder al almacén de credenciales del sistema operativo anfitrión, por lo que
PURPLEMCP_CONSOLE_TOKENdebe 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/mcpSugerimos 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 alertalist_alerts(first, after, view_type)- Enumere alertas recientessearch_alerts(filters, first)- Busque con filtrosget_alert_notes(alert_id)- Obtenga comentarios de la alertaget_alert_history(alert_id)- Vea la línea de tiempo de la alerta
Vulnerabilidades
get_vulnerability(id)- Obtenga detalles de la vulnerabilidadlist_vulnerabilities(first, after)- Enumere vulnerabilidades recientessearch_vulnerabilities(filters, first)- Busque CVE y hallazgosget_vulnerability_notes(id)- Obtenga comentariosget_vulnerability_history(id)- Vea la línea de tiempo
Configuraciones erróneas
get_misconfiguration(id)- Obtenga detalles de la configuración errónealist_misconfigurations(first, after)- Enumere problemas recientessearch_misconfigurations(filters, first)- Busque por criteriosget_misconfiguration_notes(id)- Obtenga comentariosget_misconfiguration_history(id)- Vea la línea de tiempo
Inventario de activos
get_inventory_item(item_id)- Obtenga detalles del activolist_inventory_items(limit, skip, surface)- Enumere activos por tipo de superficiesearch_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),sseostreamable-httpPURPLEMCP_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 mypyPruebas
# 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=htmlSolució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
--verbosepara 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.
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