MCP Infra Lens
mcp-infra-lens
Explica incidentes de Linux a través de SSH con herramientas MCP conscientes de la línea base.
Demo

Respuesta de ejemplo de analyze_server cuando Claude pregunta: "¿Qué le pasa a prod-01?":
{
"host": "prod-01.internal",
"health_score": 42,
"summary": "Found 2 anomalies on prod-01.internal. Most urgent signal: CPU is at 91% (3.4σ above baseline 28.2%). Load is 7.2/6.8/5.1. Top CPU consumer: java (87%).",
"anomalies": [
{
"metric": "cpu",
"severity": "high",
"value": 91,
"z_score": 3.4,
"explanation": "CPU is at 91% (3.4σ above baseline 28.2%). Load is 7.2/6.8/5.1. Top CPU consumer: java (87%).",
"recommendation": "Investigate java (PID 18432) and review application logs or scale-out options."
},
{
"metric": "disk:/",
"severity": "high",
"value": 91,
"explanation": "Disk / is 91% full (182GB/200GB).",
"recommendation": "Run du -sh //* | sort -rh | head -20 and clean logs or temporary files."
}
]
}Qué hace
mcp-infra-lens se conecta a hosts Linux a través de SSH, captura una instantánea de la infraestructura en tiempo real, la compara con líneas base registradas recientemente y explica las anomalías en lenguaje sencillo.
Recopila datos de CPU, memoria, disco, red, procesos y SO sin modificar el host de destino
Registra el historial de métricas local en SQLite para líneas base, comparaciones y búsquedas de tendencias
Utiliza análisis de puntuación z para la detección de anomalías de CPU una vez que existen suficientes muestras de línea base
Explica la causa probable de la presión, no solo el valor de la métrica sin procesar
Admite MCP a través de
stdioy HTTP transmitible
Cómo funciona
flowchart TD
A["Claude / Cursor / VS Code / Windsurf"] --> B["mcp-infra-lens"]
B --> C["server-core.ts"]
C --> D["collector.ts"]
C --> E["analyzer.ts"]
C --> F["baseline.ts + db.ts"]
D --> G["ssh.ts"]
G --> H["Linux host over SSH"]
F --> I["SQLite history + baselines"]analyze_server ahora realiza una recopilación muestreada real durante los duration_minutes solicitados, promedia la presión de CPU y memoria durante la ventana de recopilación, persiste la instantánea resultante y luego ejecuta la detección de anomalías contra la línea base seleccionada.
Herramientas
Herramienta | Qué hace | Parámetros clave |
| Recopila una instantánea muestreada, la almacena y explica anomalías |
|
| Captura y almacena las métricas del momento actual sin análisis |
|
| Guarda una muestra etiquetada de estado saludable para futuras comparaciones |
|
| Compara el estado actual con una línea base nombrada y explica las diferencias |
|
| Devuelve puntos históricos de CPU, memoria o carga desde SQLite |
|
Inicio rápido
1. Ejecutar mediante npx
npx -y mcp-infra-lens2. Claude Desktop
Paquete publicado:
{
"mcpServers": {
"infra-lens": {
"command": "npx",
"args": ["-y", "mcp-infra-lens"],
"env": {
"INFRA_LENS_DB": "/Users/you/.mcp-infra-lens/metrics.db"
}
}
}
}Desarrollo local:
{
"mcpServers": {
"infra-lens": {
"command": "node",
"args": ["/absolute/path/to/mcp-infra-lens/dist/mcp.js"],
"env": {
"INFRA_LENS_DB": "/Users/you/.mcp-infra-lens/metrics.db"
}
}
}
}3. Docker
docker build -t mcp-infra-lens .
docker run --rm -it \
-v "$HOME/.mcp-infra-lens:/home/appuser/.mcp-infra-lens" \
mcp-infra-lensConfiguración
Variable de entorno | Predeterminado | Descripción |
|
| Ruta de la base de datos SQLite. Usa |
|
| Dirección de enlace para el transporte HTTP |
|
| Puerto para el transporte HTTP |
Puntuación de salud
90-100: saludable, no se detectaron anomalías significativas70-89: presión leve o aislada40-69: múltiples advertencias o un problema importante en curso0-39: condición crítica con necesidad de remediación urgente
Flujo de trabajo recomendado
Registra muestras con
record_baselinedurante ventanas de operación saludable.Usa
analyze_serverdurante incidentes o picos de carga.Usa
compare_to_baselinepara una vista diferencial más ajustada contra una línea base nombrada.Usa
get_historypara inspeccionar tendencias y separar instantáneas predeterminadas de sesiones de línea base etiquetadas.
Autenticación
El esquema de entrada SSH admite:
Autenticación por contraseña
Autenticación por clave privada en línea
Soporte opcional de frase de contraseña para claves cifradas
Los campos de credenciales se redactan de los registros estructurados antes de escribirse en stderr.
Notas de seguridad
La recopilación SSH es de solo lectura en el host de destino
Las credenciales SSH nunca se almacenan en SQLite
La verificación de la clave del host es permisiva en la v1 por compatibilidad; las implementaciones de producción deben restringir el acceso a la red saliente y planificar la aplicación de una verificación estricta del host en una versión posterior
El transporte HTTP no tiene autenticación integrada; enlaza a loopback y colócalo detrás de un proxy inverso autenticado en cualquier implementación no local
Consulta SECURITY.md para conocer la política de informes y el alcance de los datos almacenados.
Integraciones
Claude Desktop
{
"mcpServers": {
"infra-lens": {
"command": "npx",
"args": ["-y", "mcp-infra-lens"],
"env": {
"INFRA_LENS_DB": "/Users/you/.mcp-infra-lens/metrics.db"
}
}
}
}Cursor IDE
{
"mcpServers": {
"infra-lens": {
"command": "npx",
"args": ["-y", "mcp-infra-lens"]
}
}
}VS Code (extensión MCP)
{
"inputs": [],
"servers": {
"infra-lens": {
"type": "stdio",
"command": "npx",
"args": ["-y", "mcp-infra-lens"]
}
}
}Windsurf
{
"mcpServers": {
"infra-lens": {
"command": "npx",
"args": ["-y", "mcp-infra-lens"]
}
}
}Docker (transporte HTTP)
docker run -d \
-p 3000:3000 \
-v $HOME/.mcp-infra-lens:/home/appuser/.mcp-infra-lens \
ghcr.io/oaslananka/mcp-infra-lens:latestLuego configura tu cliente MCP para usar http://localhost:3000.
Docker
La imagen de Docker incluida:
Compila el proyecto TypeScript en una etapa separada
Recompila
better-sqlite3para la arquitectura del contenedor en ambas etapasSe ejecuta como un
appuserno rootAlmacena datos de SQLite en
/home/appuser/.mcp-infra-lens/metrics.db
Contribución
Las contribuciones son bienvenidas. Comienza con CONTRIBUTING.md, luego usa:
docs/usage.md para ejemplos de herramientas
docs/architecture.md para el mapa de componentes
docs/testing.md para validación local y comprobaciones de publicación
RELEASE_POLICY.md para las reglas de versiones de npm y MCP Registry
AGENTS.md,CLAUDE.md,GEMINI.md,.github/copilot-instructions.mdy.agent/rules/repository.mdpara orientación de codificación de IA específica del repositorio
Notas operativas / CI
azure-pipelines.ymles la canalización de CI canónica y ahora ejecuta una etapa deQualityen Node 20 y Node 22, publica artefactos JUnit y Cobertura, y ejecuta cobertura e2e SSH respaldada por Docker en Node 20.azure/pipelines/publish.ymlsigue siendo la canalización de lanzamiento manual de npm.azure/pipelines/mirror.ymlsigue estando disponible para flujos de trabajo de duplicación de repositoriosPublica solo después de que la lista de verificación previa a la publicación local y la CI pasen limpiamente en Node 20
Sigue RELEASE_POLICY.md al decidir si un cambio necesita publicación de pre-lanzamiento de npm, MCP Registry o solo de registro
Licencia
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/oaslananka/mcp-infra-lens'
If you have feedback or need assistance with the MCP directory API, please join our Discord server