Español · English
Servidor MCP no oficial para Darktrace (Darktrace MCP server) que conecta la Darktrace Threat Visualizer API con Claude, Cursor, Codex y VS Code mediante Model Context Protocol. Ayuda a tu SOC en la respuesta a incidentes: investigación, Antigena / RESPOND y consultas de Darktrace/Email aún sin validar.
MCP no oficial. Desarrollado por un tercero ajeno a Darktrace, sin afiliación ni autorización de Darktrace.
Investiga en lenguaje natural, con permisos explícitos y aprobación humana de acciones críticas.
Primeros pasos · Herramientas · Configuración · Seguridad · Solución de problemas
-
Prepara la conexión. Node.js 22+,
https://<tu-appliance>y dos tokens API (público y privado, desde System Config → Settings → API Token). -
Ejecuta el asistente y elige
readpara empezar:npx -y @nuoframework/darktrace-mcp@1.1.2 setup
-
Reinicia tu cliente y pide: «Resume los model breaches de la última hora».
Guía de instalación · Primeros pasos · Problemas frecuentes. Windows: consulta las opciones para proteger tokens.
Elige tu cliente: comandos y botones de instalación
| Tu cliente | Instalación directa |
|---|---|
| Claude Desktop | Abre el .mcpb de la release v1.1.2; tokens en el llavero |
| Claude Code | npx -y @nuoframework/darktrace-mcp@1.1.2 setup --client claude-code |
| Codex (CLI e IDE) | npx -y @nuoframework/darktrace-mcp@1.1.2 setup --client codex |
| Cursor | npx -y @nuoframework/darktrace-mcp@1.1.2 setup --client cursor |
| VS Code | npx -y @nuoframework/darktrace-mcp@1.1.2 setup --client vscode |
| Windsurf | npx -y @nuoframework/darktrace-mcp@1.1.2 setup --client windsurf |
| OpenCode | npx -y @nuoframework/darktrace-mcp@1.1.2 setup --client opencode |
| Gemini CLI | npx -y @nuoframework/darktrace-mcp@1.1.2 setup --client gemini |
| Docker (cualquier cliente) | npx -y @nuoframework/darktrace-mcp@1.1.2 setup --runtime docker |
Cursor: el botón añade la entrada; con 1.1.2, ejecuta después npx -y @nuoframework/darktrace-mcp@1.1.2 setup --client cursor para completarla. VS Code e Insiders: piden la dirección y los tokens.
Para desinstalar: npx -y @nuoframework/darktrace-mcp@1.1.2 uninstall. Muestra el plan y pide confirmación; --dry-run solo lo muestra y --docker incluye la imagen fijada.
En main, llega en 1.1.3; no está en npm 1.1.2. Desde un checkout compilado, ejecuta node dist/src/index.js update.
Con Node, verifica el registro npm fijo, las firmas y la procedencia cuando se anuncie, el --check-config de la nueva copia con tus ajustes y una petición firmada antes de mover las entradas. Conserva la versión anterior para update --rollback; update --check muestra versiones y notas, y test avisa de nuevas versiones. El servidor nunca busca actualizaciones. La guía de actualización cubre plugins, .mcpb, Docker, desinstalación y límites. La actualización añade 22 pruebas: 311 funcionales y 1.150 subcasos de seguridad (evidencia).
flowchart LR
C["Cliente de IA"] <-->|stdio| S["Servidor MCP local"]
T["Archivos de token · 0600"] --> S
S <--> P{"Perfiles y política"}
P <-->|"HTTPS firmado HMAC · TLS verificado"| D["Appliance Darktrace"]
S --> A["Auditoría de escrituras en stderr"]
El servidor no abre puertos. Fija un destino HTTPS, rechaza proxies y redirecciones y nunca supera los permisos del token. Los resultados llegan al cliente y a su proveedor: revisa la idoneidad del proveedor, el tratamiento, la retención y la residencia de datos antes de usar producción.
sequenceDiagram
actor H as Persona
participant C as Cliente
participant S as Servidor MCP
participant D as Appliance
C->>S: dryRun:true + argumentos
S-->>C: Vista previa + previewId
H->>C: Revisar y confirmar
C->>S: confirm:true + previewId + mismos argumentos
S-->>C: Diálogo humano (elicitation)
C->>H: Operación y valores exactos
H->>C: Aceptar
C->>S: Aprobación
S->>D: Ejecutar petición firmada
D-->>S: Resultado
S-->>C: Resultado y auditoría en stderr
H->>C: Verificar y solicitar reversión, si existe
C->>S: Acción inversa con sus propios controles
S->>D: Revertir y verificar el estado
La vista previa dura 5 minutos y sirve una sola vez. Rechazar, cancelar o no poder mostrar el diálogo impide la ejecución. La reversión depende de la operación: no hay rollback automático, los comentarios no se borran y un resultado desconocido exige comprobar el appliance antes de repetir.
flowchart LR
R["read · consultas"] --> S["sensitive · datos sensibles"]
R --> W["write · cambios"]
W --> C["critical · impacto alto (requiere write)"]
S -.-> A["sensitive + write o all: confirmación explícita"]
W -.-> A
Es una escala de riesgo, no una herencia automática: selecciona perfiles separados por comas. critical necesita write; all o sensitive + write requiere DARKTRACE_ACKNOWLEDGE_SENSITIVE_WRITE=true. No hay aislamiento de datos entre lectura sensible y escritura. Perfiles y aprobación.
Tres demostraciones: conectar, investigar y rechazar una acción
Grabaciones con un mock HTTPS y datos sintéticos; muestran el flujo, no validan un appliance. Fuentes y transcripciones.

Conecta una vez. El asistente verifica la conexión y configura el cliente.

Investiga. Consulta dispositivos y model breaches y decide qué revisar después.

Conserva el control. La demostración rechaza el diálogo crítico; no se envía la escritura.
50 herramientas · 77 operaciones ejecutables. Por perfil mínimo: read 38, sensitive 18, write 16, critical 5. La referencia generada detalla cada operación, sus límites y la evidencia.
| Área | Herramientas | Operaciones | Ejemplos | Perfiles | ✓ / ◐ / — |
|---|---|---|---|---|---|
| Sistema y referencias | 5 | 6 | Estado, estadísticas de red, enumeraciones | read |
3 / 1 / 2 |
| Dispositivos | 9 | 9 | Búsquedas, conexiones, métricas, etiquetas | read, write |
9 / 0 / 0 |
| Model breaches | 4 | 7 | Consultar, reconocer, comentar | read, write |
7 / 0 / 0 |
| Modelos y métricas | 3 | 6 | Definiciones de modelos, componentes y métricas | read |
4 / 2 / 0 |
| AI Analyst | 8 | 11 | Incidentes, fijación, investigaciones | read, write |
11 / 0 / 0 |
| Respuesta autónoma (Antigena) | 3 | 4 | Listar, activar, ampliar, anular | read, critical |
3 / 1 / 0 |
| Etiquetas | 3 | 10 | Listar, crear, asignar, quitar, borrar | read, write, critical |
7 / 0 / 3 |
| Intel feed y subredes | 4 | 4 | Watched Domains, ajustes de subred | read, critical |
2 / 2 / 0 |
| Capturas de paquetes | 3 | 3 | Listar, solicitar, descargar | read, sensitive, write |
3 / 0 / 0 |
| Advanced Search | 1 | 4 | Consultas, análisis de campos, gráficos | sensitive |
4 / 0 / 0 |
| Darktrace/Email | 7 | 13 | Paneles, metadatos, búsquedas, auditoría | sensitive |
0 / 0 / 13 |
✓ evidencia completa · ◐ evidencia parcial · — sin validar; las cifras cuentan operaciones. Cada herramienta agrupa variantes de la misma API (por ejemplo, lista y detalle por ID), de ahí que haya menos herramientas que operaciones.
53 operaciones tienen evidencia completa, 6 parcial y 18 están sin validar. Son 59 con evidencia, no 59 totalmente validadas. Las campañas se hicieron con Darktrace 7.1.0; no garantizan todas las combinaciones de argumentos ni otras versiones.
- Dispositivos, model breaches, AI Analyst, PCAP y Advanced Search: evidencia para las operaciones listadas. PCAP devuelve Base64 completo solo dentro del límite (unos 45 KB); por encima devuelve tamaño y SHA-256.
- Sistema, modelos y métricas:
models,componentsyenumssolo conresponsedata; CVEs devolvió 500 en el laboratorio no OT yfiltertypes, una redirección 302 rechazada. - Respuesta, intel feed y subredes: cobertura parcial por parámetros; consulta la campaña 1.1.1.
- Etiquetas: las tres eliminaciones se aplicaron, pero devolvieron 502: se informa
write_outcome_unknown, no éxito. - Darktrace/Email en 1.1.2 (sin cambios desde 1.1.1): 14 operaciones inventariadas: 13 lecturas disponibles detrás de
sensitivey una acción excluida de todos los perfiles. Ninguna está validada contra un appliance real. Las 13 rutas API/agemailprobadas con tokens devolvieron 403; más tarde, el servicio devolvió 503 con HTML «Darktrace Labs», sin validación posible. La consola usa otro host y autenticación de sesión; abrirla no demuestra acceso por API. La descarga de correo devuelve solo tamaño y SHA-256, nunca contenido.
Para validar Email hacen falta un despliegue habilitado, un token con permisos Email Logs, el esquema OpenAPI de la instancia revisado y fijado, y pruebas de las 13 lecturas por MCP con datos de laboratorio. La acción requiere además un esquema restrictivo, prueba de firma y efectos/reversión, y una nueva revisión de diseño; liberar un correo implica exposición irreversible. Prueba bloqueada por 403 · API observada en consola y trabajo pendiente.
Matriz de rutas documentadas; no certifica cada versión de cliente o sistema. N: Node con tokens en archivos privados; D: Docker; W: WSL. En Windows nativo, el asistente no garantiza permisos POSIX 0600. WSL ejecuta servidor y cliente en Linux; los clientes Windows necesitan un lanzador WSL explícito. La matriz completa documenta 21 clientes y separa los 13 adaptadores previstos para 1.1.3. Configuración manual.
| Cliente | macOS | Linux | Windows | Ruta |
|---|---|---|---|---|
| Claude Desktop | N / D | No documentado | .mcpb / D |
Extensión o setup |
| Claude Code / Codex | N / D | N / D | W / D | setup o plugin; Codex necesita conexión aparte |
| Cursor / VS Code | N / D | N / D | W / D | setup o enlace de instalación |
| Windsurf / OpenCode | N / D | N / D | W / D | setup o JSON |
| Gemini CLI | N / D | N / D | W / D | setup o CLI |
| Componente | Compatibilidad y evidencia |
|---|---|
| Node.js | Mínimo 22; CI documentada con 22 y 24. Revisa también la versión de OpenSSL, no solo la de Node |
| Docker | Linux amd64 y arm64; ejecución local por stdio, sin puertos. Docker Desktop en macOS/Windows |
| Windows nativo | Tokens en archivos POSIX no garantizados; .mcpb usa el llavero. Alternativas: Docker o WSL |
| WSL | Ruta Linux; usa Node y archivos privados dentro de WSL |
| Darktrace | Laboratorios 7.1.0; inventario basado en API Threat Visualizer 6.1 y SDK. Otras versiones sin validar |
| Firma | compact y spaced observados en 7.1.0. El asistente prueba la alternativa ante 400; el servidor no cambia silenciosamente |
| Cliente / capacidad | Diálogo del servidor | Alternativa y límites |
|---|---|---|
| Claude Code 2.1.289 | Verificado: protocolo 2026-07-28, input_required, formulario por llamada |
No interactivo: cancela; reglas automáticas debilitan la intervención humana |
| Cliente con MCP 2025 y capacidad de formulario | elicitation/create si declara soporte al iniciar |
Hay que verificar la versión concreta del cliente |
| Desktop, Codex, Cursor, VS Code, Windsurf, OpenCode, Gemini CLI | Sin prueba individual de aprobación registrada aquí | Si falta soporte, approval_unavailable; host depende del permiso por herramienta |
El modo crítico host requiere DARKTRACE_ACKNOWLEDGE_HOST_APPROVAL=true y mantiene vista previa y confirmación. No prueba intervención humana. Configuración · Clientes · Notas de corrección del cliente HTTP.
TLS obligatorio, tokens privados, perfiles al arrancar, límites de entrada/salida, escrituras sin reintento y auditoría con cadena de hashes en stderr. Tres escrituras fallidas o desconocidas consecutivas bloquean nuevas escrituras hasta reiniciar. La auditoría no cubre lecturas sensibles ni tiene anclaje externo. Ningún filtro garantiza eliminar todos los datos sensibles o toda inyección de instrucciones.
Evidencia fechada: modelo de amenazas, revisión independiente, rondas adversariales, campañas de laboratorio y revisión final. Los valores fijados 1.1.0 recogen 230 pruebas funcionales y 1.150 subcasos de seguridad; macOS omite tres por plataforma. Las insignias OpenSSF enlazan a sus resultados, no son una certificación. Resumen y límites · Índice de auditorías.
Paquete npm: @nuoframework/darktrace-mcp; el nombre sin ámbito no es este proyecto. Etiquetas vX.Y.Z, títulos Darktrace MCP vX.Y.Z. GitHub Releases distribuye .tgz, .mcpb, SHA256SUMS, SBOM y evidencia; ghcr ofrece las dos arquitecturas. Fija la versión npm y el digest de imagen, y verifica las sumas y la procedencia. Estado por canal y procedimiento · Cambios.
Consulta alertas, comentarios y contexto de dispositivos para priorizar una investigación SOC. Empieza con read y la referencia de herramientas.
En Claude Code, previsualiza un bloqueo de conexión con Antigena / RESPOND; el aislamiento total no está validado. Usa write,critical y revisa la aprobación humana.
Pide a tu cliente que traduzca una pregunta de investigación a una consulta acotada de tráfico. Activa sensitive y consulta los límites de Advanced Search.
Resume incidentes y eventos para priorizar el triaje; añadir comentarios requiere write. Consulta las operaciones de AI Analyst y previsualiza los cambios.
Conecta tu cliente con el asistente o una configuración manual de rutas y tokens privados. Sigue la guía por cliente y distingue 1.1.2 de las novedades de 1.1.3.
Ejecuta por stdio, limita los perfiles y revisa qué datos llegan al proveedor de tu cliente. Consulta el modelo de seguridad y sus límites antes de usar producción.
Lee CONTRIBUTING.md. Para dudas o errores, abre una incidencia (issue) con datos sintéticos. Para vulnerabilidades, usa el canal privado. Licencia Apache-2.0.
Darktrace y su logotipo pertenecen a Darktrace; su uso identifica el producto integrado y no implica respaldo ni autorización. Procedencia del logotipo. Reclamaciones de marca o retirada: contacto@pabloarrabal.com.
Relacionado: npm · Imagen GHCR · MCP Registry · Darktrace API: documentación oficial (requiere acceso al portal).