¿Qué hace skilltotal?
Escanea componentes de IA (servidores MCP, habilidades de agentes, paquetes npm/PyPI) en busca de malware y capacidades riesgosas. Local, determinista, basado en evidencia. Gratuito y de código abierto.
Características
- Análisis local y determinista: no se envían datos a servidores externos; los resultados son reproducibles.
- Basado en evidencias: muestra el fragmento de código o configuración exacto que genera cada alerta.
- Cobertura amplia: soporta servidores MCP, habilidades de agentes, paquetes npm y PyPI.
- Integración CI/CD: puede ejecutarse como comando CLI o integrado en pipelines.
- Gratuito y de código abierto: sin costos, transparente y auditable.
Cómo funciona
Skilltotal descarga o recibe un componente (por ejemplo, un paquete npm o un servidor MCP) y ejecuta un conjunto de reglas de análisis que buscan patrones sospechosos. Cada regla verifica:
- Acceso a archivos: lectura o escritura fuera de rutas permitidas.
- Ejecución de comandos: invocación de shells o procesos del sistema.
- Red: conexiones a servidores externos, exfiltración de datos.
- Entorno: modificación de variables de entorno o configuración del sistema.
- Ofuscación: código empaquetado, ofuscado o base64 que oculta intenciones.
Los resultados se entregan como un reporte claro con evidencias ancladas al código.
Instalación
npm install -g skilltotal
o clona el repositorio y usa el comando directamente:
git clone https://github.com/pezhik/skilltotal.git
cd skilltotal
./bin/skilltotal --help
Uso básico
Escanear un paquete npm
skilltotal scan npm:[email protected]
Escanear un servidor MCP
skilltotal scan mcp:https://example.com/mcp-server
Escanear un directorio local
skilltotal scan ./path/to/skill
Salida en JSON
skilltotal scan npm:some-package --format json
Opciones
| Opción | Descripción |
|---|---|
--format | Formato de salida: text (predeterminado) o json |
--verbose | Muestra información detallada de cada verificación |
--output | Archivo de salida para el reporte |
--ignore-rules | Lista separada por comas de reglas a ignorar |
--timeout | Tiempo máximo de análisis en segundos (predeterminado: 30) |
Reglas de análisis
Skilltotal incluye un conjunto de reglas configurables. Puedes listarlas con:
skilltotal rules list
Ejemplo de reglas:
| Regla | Descripción |
|---|---|
file-access | Detecta acceso a archivos fuera de rutas permitidas |
command-exec | Detecta ejecución de comandos del sistema |
network-send | Detecta envío de datos a servidores externos |
env-modify | Detecta modificación de variables de entorno críticas |
obfuscation | Detecta código ofuscado o empaquetado |
Integración en CI/CD
Puedes agregar skilltotal a tu pipeline de GitHub Actions:
- name: Analizar dependencias
run: skilltotal scan npm:tu-paquete --format json --output report.json
O en un script de shell:
if skilltotal scan ./dist --verbose > report.txt; then
echo "Sin riesgos encontrados"
else
echo "¡Se encontraron riesgos! Revisa report.txt"
exit 1
fi
Plataformas soportadas
- Agentes: Claude Code, Cursor, Codex, Copilot, y otros que usen MCP.
- Registros: npm, PyPI.
- Formatos: servidores MCP (URL o archivo), directorios locales, paquetes remotos.
Licencia
MIT - Ver archivo LICENSE para más detalles.
Contribución
Las contribuciones son bienvenidas. Por favor, consulta la guía de contribución.
Seguridad
Si encuentras una vulnerabilidad en skilltotal, por favor abre un issue en el repositorio. No reportes problemas de seguridad en público; usa el canal privado indicado en el repositorio.