MCP Infra Lens
mcp-infra-lens
Erklären Sie Linux-Vorfälle über SSH mit Baseline-fähigen MCP-Tools.
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
stdiound 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 |
| Erfasst einen Stichproben-Snapshot, speichert ihn und erklärt Anomalien |
|
| Erfasst und speichert die aktuellen Metriken ohne Analyse |
|
| Speichert eine markierte Stichprobe des Normalzustands für zukünftige Vergleiche |
|
| Vergleicht den aktuellen Zustand mit einer benannten Baseline und erklärt die Deltas |
|
| Gibt historische CPU-, Speicher- oder Lastpunkte aus SQLite zurück |
|
Schnellstart
1. Ausführen via npx
npx -y mcp-infra-lens2. 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-lensKonfiguration
Umgebungsvariable | Standard | Beschreibung |
|
| Pfad zur SQLite-Datenbank. Verwenden Sie |
|
| Bind-Adresse für den HTTP-Transport |
|
| Port für den HTTP-Transport |
Gesundheits-Score
90-100: gesund, keine signifikanten Anomalien erkannt70-89: leichte oder isolierte Belastung40-69: mehrere Warnungen oder ein größeres Problem im Gange0-39: kritischer Zustand, sofortige Maßnahmen erforderlich
Empfohlener Workflow
Zeichnen Sie
record_baseline-Stichproben während normaler Betriebsfenster auf.Verwenden Sie
analyze_serverbei Vorfällen oder Lastspitzen.Verwenden Sie
compare_to_baselinefür eine genauere Differenzansicht gegenüber einer benannten Baseline.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:latestKonfigurieren 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-sqlite3für die Container-Architektur in beiden Stufen neuLäuft als Nicht-Root-
appuserSpeichert 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.mdund.agent/rules/repository.mdfür repository-spezifische KI-Coding-Richtlinien
Operative / CI-Hinweise
azure-pipelines.ymlist die kanonische CI-Pipeline und führt nun eineQuality-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.ymlbleibt die manuelle npm-Release-Pipeline.azure/pipelines/mirror.ymlbleibt für Repository-Mirroring-Workflows verfügbarVerö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
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