Skip to main content
Glama
oaslananka

MCP Infra Lens

mcp-infra-lens

Erklären Sie Linux-Vorfälle über SSH mit Baseline-fähigen MCP-Tools.

npm version npm downloads License: MIT Node 20+ MCP SDK Azure Pipelines

Demo

mcp-infra-lens demo

Beispiel für eine analyze_server-Antwort, wenn Claude fragt: „Was stimmt mit prod-01 nicht?“:

{
  "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."
    }
  ]
}

Was es tut

mcp-infra-lens verbindet sich über SSH mit Linux-Hosts, erstellt einen Live-Infrastruktur-Snapshot, vergleicht diesen mit kürzlich aufgezeichneten Baselines und erklärt Anomalien in einfacher Sprache.

  • Erfasst CPU-, Speicher-, Festplatten-, Netzwerk-, Prozess- und OS-Daten, ohne den Ziel-Host zu verändern

  • Zeichnet lokale Metrik-Historien in SQLite für Baselines, Vergleiche und Trendanalysen auf

  • Verwendet Z-Score-Analyse zur CPU-Anomalieerkennung, sobald genügend Baseline-Stichproben vorhanden sind

  • Erklärt die wahrscheinliche Ursache von Belastungen, nicht nur den reinen Metrikwert

  • Unterstützt MCP über stdio und Streamable HTTP

Funktionsweise

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 führt nun eine echte Stichprobenerhebung über die angeforderte duration_minutes durch, mittelt die CPU- und Speicherauslastung über das Erfassungsfenster, speichert den resultierenden Snapshot und führt dann eine Anomalieerkennung gegen die ausgewählte Baseline durch.

Tools

Tool

Was es tut

Wichtige Parameter

analyze_server

Erfasst einen Stichproben-Snapshot, speichert ihn und erklärt Anomalien

connection, duration_minutes, include_processes, include_network

snapshot

Erfasst und speichert die aktuellen Metriken ohne Analyse

connection

record_baseline

Speichert eine markierte Stichprobe des Normalzustands für zukünftige Vergleiche

connection, label

compare_to_baseline

Vergleicht den aktuellen Zustand mit einer benannten Baseline und erklärt die Deltas

connection, baseline_label

get_history

Gibt historische CPU-, Speicher- oder Lastpunkte aus SQLite zurück

host, metric, hours, label?

Schnellstart

1. Ausführen via npx

npx -y mcp-infra-lens

2. Claude Desktop

Veröffentlichtes Paket:

{
  "mcpServers": {
    "infra-lens": {
      "command": "npx",
      "args": ["-y", "mcp-infra-lens"],
      "env": {
        "INFRA_LENS_DB": "/Users/you/.mcp-infra-lens/metrics.db"
      }
    }
  }
}

Lokale Entwicklung:

{
  "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-lens

Konfiguration

Umgebungsvariable

Standard

Beschreibung

INFRA_LENS_DB

~/.mcp-infra-lens/metrics.db

Pfad zur SQLite-Datenbank. Verwenden Sie :memory: für Tests

HOST

127.0.0.1

Bind-Adresse für den HTTP-Transport

PORT

3000

Port für den HTTP-Transport

Gesundheits-Score

  • 90-100: gesund, keine signifikanten Anomalien erkannt

  • 70-89: leichte oder isolierte Belastung

  • 40-69: mehrere Warnungen oder ein größeres Problem im Gange

  • 0-39: kritischer Zustand, sofortige Maßnahmen erforderlich

Empfohlener Workflow

  1. Zeichnen Sie record_baseline-Stichproben während normaler Betriebsfenster auf.

  2. Verwenden Sie analyze_server bei Vorfällen oder Lastspitzen.

  3. Verwenden Sie compare_to_baseline für eine genauere Differenzansicht gegenüber einer benannten Baseline.

  4. Verwenden Sie get_history, um Trends zu untersuchen und Standard-Snapshots von markierten Baseline-Sitzungen zu trennen.

Authentifizierung

Das SSH-Eingabeschema unterstützt:

  • Passwort-Authentifizierung

  • Inline-Private-Key-Authentifizierung

  • Optionale Passphrase-Unterstützung für verschlüsselte Schlüssel

Anmeldedaten werden aus strukturierten Protokollen entfernt, bevor sie in stderr geschrieben werden.

Sicherheitshinweise

  • Die SSH-Erfassung erfolgt schreibgeschützt auf dem Ziel-Host

  • SSH-Anmeldedaten werden niemals in SQLite gespeichert

  • Die Host-Key-Verifizierung ist in v1 aus Kompatibilitätsgründen permissiv; Produktionsbereitstellungen sollten den ausgehenden Netzwerkzugriff einschränken und planen, eine strikte Host-Verifizierung in einem späteren Release zu erzwingen

  • Der HTTP-Transport verfügt über keine integrierte Authentifizierung; binden Sie ihn an Loopback und platzieren Sie ihn in nicht-lokalen Bereitstellungen hinter einem authentifizierten Reverse-Proxy

Siehe SECURITY.md für die Meldungsrichtlinie und den Umfang der gespeicherten Daten.

Integrationen

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 (MCP-Erweiterung)

{
  "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 (HTTP-Transport)

docker run -d \
  -p 3000:3000 \
  -v $HOME/.mcp-infra-lens:/home/appuser/.mcp-infra-lens \
  ghcr.io/oaslananka/mcp-infra-lens:latest

Konfigurieren Sie dann Ihren MCP-Client für die Verwendung von http://localhost:3000.

Docker

Das gebündelte Docker-Image:

  • Erstellt das TypeScript-Projekt in einer separaten Stufe

  • Erstellt better-sqlite3 für die Container-Architektur in beiden Stufen neu

  • Läuft als Nicht-Root-appuser

  • Speichert SQLite-Daten in /home/appuser/.mcp-infra-lens/metrics.db

Mitwirken

Beiträge sind willkommen. Beginnen Sie mit CONTRIBUTING.md und verwenden Sie dann:

  • docs/usage.md für Tool-Beispiele

  • docs/architecture.md für die Komponentenübersicht

  • docs/testing.md für lokale Validierung und Veröffentlichungsprüfungen

  • RELEASE_POLICY.md für npm- und MCP-Registry-Versionsregeln

  • AGENTS.md, CLAUDE.md, GEMINI.md, .github/copilot-instructions.md und .agent/rules/repository.md für repository-spezifische KI-Coding-Richtlinien

Operative / CI-Hinweise

  • azure-pipelines.yml ist die kanonische CI-Pipeline und führt nun eine Quality-Stufe auf Node 20 und Node 22 aus, veröffentlicht JUnit- und Cobertura-Artefakte und führt Docker-basierte SSH-E2E-Abdeckung auf Node 20 aus

  • .azure/pipelines/publish.yml bleibt die manuelle npm-Release-Pipeline

  • .azure/pipelines/mirror.yml bleibt für Repository-Mirroring-Workflows verfügbar

  • Veröffentlichen Sie erst, nachdem die lokale Pre-Publish-Checkliste und die CI auf Node 20 erfolgreich durchlaufen wurden

  • Befolgen Sie RELEASE_POLICY.md, wenn Sie entscheiden, ob eine Änderung eine npm-, MCP-Registry- oder nur eine Registry-interne Vorabveröffentlichung erfordert

Lizenz

MIT

Install Server
A
security – no known vulnerabilities
A
license - permissive license
B
quality - B tier

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