Xolotl
Integrates Trivy as a scanning engine for software composition analysis, secret detection, container image scanning, and infrastructure-as-code misconfiguration scanning, exposed through the scan_static, scan_container_image, and scan_iac tools.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
🐕🔥 Xolotl
Un guardián que baja al inframundo de tu código.
Servidor MCP + plugin de Claude Code que une siete escáneres de seguridad open source en una sola herramienta y pone a un agente de IA a hacer lo que los escáneres no hacen: leer el código, descartar falsos positivos con criterio, priorizar y verificar que cada arreglo funcione.
SAST · SCA · Secretos · Contenedores · IaC · DAST · Triage con IA
En la mitología mexica, Xolotl es el dios con forma de perro que guía y protege a las almas en su viaje por el Mictlán, el inframundo. Esta herramienta hace ese viaje por las capas que nadie mira: el historial de git, las dependencias transitivas, los Dockerfiles y las rutas de la API.
Qué hace
Análisis | Qué detecta | Motor | Herramienta MCP |
SAST | Inyecciones, | Semgrep, Bandit, CodeQL |
|
SCA | Dependencias con CVE y la versión que las corrige | OSV-Scanner, Trivy |
|
Secretos | Tokens, claves y contraseñas, también en todo el historial de git | Gitleaks, Trivy |
|
Contenedores | Paquetes vulnerables y secretos dentro de imágenes | Trivy |
|
IaC | Dockerfile, compose, Kubernetes, Helm, Terraform, CloudFormation mal configurados | Trivy |
|
DAST | Malas configuraciones, exposiciones y CVE en apps, APIs y servicios en ejecución | Nuclei |
|
IA para AppSec | Triage, explicación, priorización, parche y verificación | El agente (Claude u otro cliente MCP) | skills, prompts, |
Los resultados de todas las herramientas se normalizan a un mismo formato y se deduplican: si Trivy y OSV reportan la misma CVE, o Gitleaks y Trivy el mismo secreto, queda un solo hallazgo con ambas fuentes.
Related MCP server: MCPAmpel
Qué tiene de nuevo
Los escáneres de seguridad existen hace años. El problema nunca fue encontrar hallazgos: es que un reporte de 300 líneas, la mitad falsos positivos, termina ignorado. Xolotl cambia el modelo de uso en cinco puntos:
El agente cierra el ciclo completo. Escanear → leer el código de cada hallazgo → decidir si es explotable → parchear → re-escanear → comparar corridas. Lo que antes eran cinco herramientas y una tarde de un analista, pasa en una conversación.
El triage tiene memoria. Cada decisión (
false_positive,accepted_risk,fixed) se guarda con su justificación y una huella estable del hallazgo. El siguiente escaneo ya llega filtrado, y si algo marcado como corregido reaparece, se reabre solo como regresión.Los límites de seguridad están en el servidor, no en el prompt. El DAST solo corre contra objetivos registrados con quién autorizó y con qué evidencia. Los secretos se guardan redactados. Ningún proceso se lanza con shell. Ningún binario se instala si su SHA-256 no coincide. Un agente confundido no puede saltarse estas reglas.
Verificación de parches por diferencia.
runs_diffresponde lo que importa en una revisión: qué se resolvió, qué es nuevo y qué persiste. Un arreglo que solo esquiva la regla, o que introduce otro problema, se ve de inmediato.Cero infraestructura. Sin Docker, sin servidor, sin cuentas.
xolotl_installbaja los binarios oficiales a una carpeta propia. Funciona igual en Claude Code, Claude Desktop o cualquier cliente MCP.
Alcances
Cubre
Código fuente en cualquier lenguaje que soporte Semgrep (30+), con análisis profundo de flujo de datos en los lenguajes de CodeQL (JS/TS, Python, Java, C#, Go, Ruby, C/C++, Swift, Rust, GitHub Actions).
Dependencias de npm, pip/poetry/uv, Maven/Gradle, Go, Cargo, Composer, NuGet, RubyGems y más (todo lo que leen OSV-Scanner y Trivy).
Historial completo de git para secretos.
Imágenes de contenedor desde un registro, el daemon local o un
.tar.Aplicaciones y servicios en ejecución con las plantillas de la comunidad de Nuclei (miles de CVE, paneles expuestos, malas configuraciones, TLS).
Informes en Markdown, HTML autocontenido, SARIF 2.1.0 (GitHub/GitLab code scanning, VS Code) y JSON.
No cubre (y no pretende)
Lógica de negocio y control de acceso: IDOR, permisos mal aplicados, flujos de pago. Ningún escáner por patrones los encuentra bien. El agente puede revisarlos a mano siguiendo las rutas de la API, pero eso es revisión manual asistida, no detección automática.
Pruebas de penetración completas: Nuclei detecta lo conocido por plantillas; no reemplaza a un pentester.
Seguridad en tiempo de ejecución: no monitorea producción.
Semgrep Assistant (la IA de Semgrep) es comercial y no está incluida; ese papel lo cumple el agente.
Formas de usarlo
Modo | Cómo |
Auditor en pareja | En el editor: "audita la seguridad de este repo". El agente escanea, hace el triage, explica y propone parches. |
Compuerta antes del PR | "revisa la seguridad de mis cambios": escaneo, |
Remediación guiada | "corrige F-012": parche mínimo, re-escaneo con la misma herramienta y verificación por diferencia (skill |
Escaneo programado | Una rutina de Claude Code ( |
DAST después del despliegue | Tras desplegar en staging: |
Respuesta a un secreto filtrado | Gitleaks lo ubica en el historial; la skill guía revocar, rotar, limpiar y revisar el uso indebido, en ese orden. |
Instalación
Requiere Node.js 20+. Opcional: uv para instalar o ejecutar Semgrep y Bandit al vuelo.
git clone https://github.com/Ricardoarangob26/xolotl.git
cd xolotl
npm install && npm run buildComo plugin de Claude Code (MCP + skills)
claude plugin marketplace add ./xolotl
claude plugin install xolotl@xolotlSolo el servidor MCP (Claude Code, Claude Desktop, otro cliente)
claude mcp add xolotl --scope user -- node /ruta/a/xolotl/dist/index.js{ "mcpServers": { "xolotl": { "command": "node", "args": ["/ruta/a/xolotl/dist/index.js"] } } }Luego, en el chat:
revisa qué escáneres faltan e instálalos
audita la seguridad de /ruta/al/proyecto
Herramientas del MCP
Tool | Para qué |
| Qué escáneres hay, versión y de dónde se ejecutan |
| Instala o actualiza escáneres (releases oficiales de GitHub con SHA-256; Semgrep/Bandit con |
| SAST + SCA + secretos + IaC sobre una carpeta, deduplicado |
| Análisis de flujo de datos con la suite |
| Trivy sobre una imagen |
| Trivy config sobre infraestructura como código |
| Alcance autorizado para DAST: quién autorizó y con qué evidencia |
| Nuclei por perfiles ( |
| Navegar corridas y hallazgos, con el código alrededor de la línea |
|
|
| Resueltos, nuevos y persistentes entre dos corridas |
| Informe Markdown, HTML, SARIF o JSON |
Prompts MCP: triage_run, fix_finding, review_patch.
Skills: appsec-audit, appsec-triage, appsec-dast, appsec-fix.
Modelo de seguridad de la propia herramienta
Procesos sin shell, con argumentos en arreglo: nada de inyección por comillas en rutas o parámetros.
Gitleaks corre con
--redact; Trivy enmascara; las cabeceras de autenticación del DAST se redactan antes de guardar.DAST solo contra
localhosty los objetivos descope.json. Se rechazan alcances como*, comodines de TLD o rangos mayores a/16. Plantillas intrusivas (dos, fuzz, fuerza bruta, default-login, rce) y detección fuera de banda (interactsh) desactivadas salvo que se pidan explícitamente.Instalación solo desde releases oficiales; si el SHA-256 publicado no coincide, se aborta.
Descartar un hallazgo exige una justificación escrita.
Herramientas que lo complementan
Todas open source. Varias encajan como un escáner más (cualquier herramienta con salida SARIF ya se puede leer con parseSarif).
Necesidad | Herramienta | Qué agrega |
DAST más profundo | OWASP ZAP | Rastreo autenticado, escaneo activo, APIs desde OpenAPI. Complementa a Nuclei, que va por plantillas. |
Fuzzing de APIs | Schemathesis, RESTler | Genera casos desde el esquema OpenAPI/GraphQL y encuentra errores 500, fugas y validaciones rotas. |
Reconocimiento autorizado | httpx, katana, subfinder, naabu (ProjectDiscovery) | Descubren hosts, rutas y puertos para alimentar a Nuclei. |
SBOM y cartera de dependencias | Syft + Grype, OWASP Dependency-Track | Inventario de componentes (CycloneDX/SPDX) y seguimiento de CVE en el tiempo por proyecto. |
Gestión de vulnerabilidades | DefectDojo | Centraliza hallazgos de varios equipos y proyectos; importa SARIF y JSON. |
Verificar secretos vivos | TruffleHog | Comprueba contra el proveedor si una credencial filtrada sigue activa. |
IaC adicional | Checkov, KICS, Hadolint, kube-linter | Más reglas para Terraform/K8s y buenas prácticas de Dockerfile. |
Cadena de suministro | OpenSSF Scorecard, zizmor | Postura del repositorio y seguridad de los workflows de GitHub Actions. |
Confirmar inyecciones SQL | sqlmap | Prueba la explotabilidad real (solo en objetivos autorizados). |
Apps móviles | MobSF | Análisis estático y dinámico de APK/IPA. |
Apps con LLM | garak, promptfoo | Red teaming de inyección de prompts, fugas y jailbreaks. |
Calidad + seguridad continua | SonarQube Community | Paneles por proyecto y deuda técnica. |
Tiempo de ejecución | Falco | Detección de comportamiento anómalo en contenedores en producción. |
Datos y configuración
Todo vive en ~/.xolotl (cámbialo con XOLOTL_HOME):
~/.xolotl/
├── tools/ binarios gestionados (tienen prioridad sobre los del PATH)
├── runs/<id>/ salida cruda de cada escáner, findings.json, meta.json e informes
├── scope.json alcance DAST autorizado
└── triage.json decisiones de triage por huellaGITHUB_TOKEN (opcional) evita el límite de la API de GitHub al instalar escáneres.
Desarrollo
npm run build # typecheck + bundle en dist/index.js (sin dependencias en tiempo de ejecución)
node scripts/selftest.mjs # levanta el MCP y escanea un proyecto vulnerable generado al vuelo
node scripts/selftest.mjs --install # instala antes los escáneres que falten
node scripts/call.mjs scan_static '{"path":"/ruta"}' # llama cualquier tool desde la terminalEstructura: src/scanners.ts lanza cada herramienta, src/parsers.ts traduce su salida al formato común, src/findings.ts normaliza y deduplica, src/store.ts guarda corridas y triage, src/scope.ts aplica el alcance DAST, src/report.ts genera los informes. Agregar un escáner es una función en cada uno de los dos primeros.
Probado en Windows 11 con Semgrep 1.181, Bandit 1.9, OSV-Scanner 2.7, Trivy 0.76, Gitleaks 8.30 y Nuclei 3.11. Linux y macOS están contemplados (instalador y rutas), pero aún sin probar. CodeQL está integrado pero todavía no se ha probado de punta a punta.
Licencia
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Zero-config MCP security scanner for AI-generated apps. 25K+ vulnerability patterns.
Security scanner for AI-written code: SAST, secrets, dependencies, IaC, containers and DAST.
Agent security: prompt injection, PII & secret scans, TLS/header/CORS audits, MCP checks. Free.
Threat modeling, code/cloud/pipeline scanning, shadow-AI discovery, compliance checks and fixes.
Related MCP Servers
- AlicenseAqualityAmaintenanceagent-bom is an open security scanner and self-hosted control plane for AI, MCP, and cloud infrastructure. The default scan profile in MCP server mode exposes 8 MCP tools. Additional profiles provide inventory, findings, compliance, graph, and runtime workflows. See the published Glama release for its packaged version.8723 PyPI36Apache 2.0
- AlicenseAqualityDmaintenanceA security scanner that evaluates installed MCP servers for vulnerabilities by aggregating findings from 16 scanning engines into detailed trust scores. It enables users to scan their local AI agent configurations or specific repository URLs for potential security risks.421 PyPI2Apache 2.0
- AlicenseAqualityCmaintenanceUnifies NVD, EPSS, CISA KEV, GitHub Advisory, and OSV into a single MCP server, enabling AI agents to query vulnerability intelligence conversationally with 23 tools for incident response, prioritization, dependency audits, and threat monitoring.41292 npm30MIT
- AlicenseBqualityCmaintenanceUnifies 21 supply chain security data sources into a single MCP server, enabling AI agents to perform comprehensive package audits, vulnerability checks, provenance verification, and risk assessment across multiple ecosystems.90145 npm4MIT