Linux Diagnostics MCP Server
Linux-Diagnose-MCP-Server - Vorlesungs-Demo
Eine Python/Linux-Adaption des ursprünglichen MCPDemo-Lehr-Repositorys. Dieses Repo erreicht nun Meilenstein-7-Parität für den öffentlichen Lehrablauf: kompakte Systeminspektion, Linux-Prozess-Detailansicht, Protokoll-Snapshots als Ressourcen, Workflow-Prompts, authentifiziertes MCP über HTTP auf /mcp, explizite Aufforderung vor Prozessbeendigung, sampling-gestützte Linux-Diagnose und erlaubte Root-Proc/Sys-Snapshots.
Was diese Demo zeigt
Diese Vorlesungs-Demo enthält nun:
✅ Tools: Linux-Diagnosetools für
get_system_info,get_process_list,get_process_by_id,get_process_by_nameund eine durch Aufforderung geschütztekill_process-Funktion✅ Ressourcen: gepagte
syslog://snapshot/...Protokoll-Snapshot-Ressourcen✅ Prompts: MCP-Workflow-Prompts für Fehleranalyse, CPU-Untersuchung, Sicherheitsüberprüfung und Gesundheitsdiagnose
✅ HTTP-Transport: streamfähiges MCP über
http://127.0.0.1:5000/mcp✅ API-Key-Authentifizierung:
X-API-Key-Header oder?apiKey=secure-mcp-key✅ KI-Chat-Client: ein Python Azure OpenAI-Client, der den lokalen HTTP-Server startet, dem Modell erlaubt, MCP-Tools, Prompts und Ressourcen aufzurufen, und lokale Formular-Aufforderungen im Terminal handhabt
✅ Python 3.12-Implementierung mit dem offiziellen MCP Python SDK
✅ Mehrere Testmethoden
✅ Meilenstein-5-Aufforderung für
kill_process✅ Meilenstein-6-sampling-gestützte Linux-Diagnose
✅ Meilenstein-7-Roots für schreibgeschützte
/proc- und/sys-Snapshots
Related MCP server: troubleshooting-mcp-server
Schnellstart
1. Installation
Nur-Server-Installation:
python3 -m pip install --user --break-system-packages -e .Installation der Vorlesungs-Chat-Client-Extras:
python3 -m pip install --user --break-system-packages -e '.[llm]'2. Schneller Rauchtest (Kein LLM)
python3 scripts/smoke_test.pyDieses Skript:
Startet den lokalen HTTP-MCP-Server
Verifiziert
401 Unauthorizedohne API-KeyFührt den MCP-Initialisierungs-Handshake auf
/mcpdurchBestätigt, dass der
mcp-session-id-Ablauf über Anfragen hinweg funktioniertErkennt Tools, Prompts und Ressourcenvorlagen
Führt die System-, Prozess-, Protokoll-Snapshot-, Proc-Snapshot- und sampling-gestützten Diagnoseabläufe aus
Verifiziert, dass
kill_processsicher fehlschlägt, wenn der Client keine Unterstützung für Aufforderungen ankündigtVerifiziert, dass der Vorlesungs-Chat-Client sicher fehlschlägt, wenn Azure OpenAI-Einstellungen fehlen
3. Server manuell ausführen
python3 -m mcp_linux_diag_serverDer Server lauscht auf:
Endpunkt:
http://127.0.0.1:5000/mcpDemo-API-Key:
secure-mcp-key
4. Test mit MCP Inspector oder VS Code MCP-Konfiguration
Starten Sie den Server in einem Terminal und verbinden Sie sich dann über den oben genannten HTTP-Endpunkt.
Dieses Repo enthält .vscode/mcp.json mit dem erforderlichen Header:
{
"servers": {
"linux-diag-demo": {
"url": "http://127.0.0.1:5000/mcp",
"headers": {
"X-API-Key": "secure-mcp-key"
}
}
}
}Wenn Ihr Inspector eine URL direkt akzeptiert, funktioniert auch diese Query-String-Form:
http://127.0.0.1:5000/mcp?apiKey=secure-mcp-key5. Den Vorlesungs-Chat-Client verwenden
Kopieren Sie die Beispiel-Umgebungsdatei und füllen Sie Ihre lokalen Azure OpenAI-Einstellungen aus:
cp .env.example .env.local
$EDITOR .env.local
python3 -m mcp_linux_diag_server.client --prompt "Summarize this machine."Um den ursprünglichen .NET-Anmeldeinformationsablauf genauer abzubilden, setzen Sie:
MCP_DEMO_AZURE_OPENAI_USE_DEFAULT_CREDENTIAL=trueund lassen Sie den API-Key weg.
Interaktiven Chat ausführen:
python3 -m mcp_linux_diag_server.clientOder einen einzelnen Prompt ausführen:
python3 -m mcp_linux_diag_server.client --prompt "What is the system information?"Die Tools
Systeminformationen
get_system_info- Gibt einen kompakten Linux- oder WSL-System-Snapshot zurückHostname
Aktueller Benutzer
Beschreibung der Linux-Distribution
Kernel-Release
Architektur
Anzahl der logischen CPUs
Python-Laufzeit
Aktuelles Arbeitsverzeichnis
Betriebszeit (Uptime)
Lastdurchschnitte (Load Averages)
Speicherzusammenfassung
WSL-Erkennungs-Flag
Prozessinspektion
get_process_list- Gibt eine leichtgewichtige Liste laufender Prozesse mit Namen und PIDs zurückget_process_by_id- Gibt detaillierte Linux-Prozessinformationen für eine PID zurückget_process_by_name- Gibt gepagte detaillierte Prozessinformationen für einen Prozessnamen zurückStandardmäßig
page_number=1Standardmäßig
page_size=5Behält den Listen-zuerst, Details-danach-Lehrablauf aus der ursprünglichen Demo bei
kill_process- Beendet einen Linux-Prozess erst nach expliziter AufforderungWenn
process_idweggelassen wird, sampelt der Server die Prozesse mit der höchsten CPU-Auslastung und bittet den Client, einen auszuwählenDer Server erfordert immer den getippten Bestätigungssatz
CONFIRM PID {pid}Der Vorlesungs-Client handhabt diese Aufforderungen lokal im Terminal, wenn stdin/stdout interaktiv sind
troubleshoot_linux_diagnostics- Verwendet Sampling, um eine natürlichsprachliche Linux-Diagnosefrage in einen validierten/proc- oder/sys-Lesezugriff umzuwandelnDer Server validiert den gesampelten Pfad und das Feld gegen eine Erlaubnisliste, bevor er irgendetwas liest
Exakte Python-Adaption: die gesampelte Abfrage ist eine einzelne sichere
PATH- oderPATH | grep FIELD-Zeile anstelle von WQLDer Server sampelt dann erneut, um die Beobachtung für den Benutzer zusammenzufassen
create_proc_snapshot- Erstellt einen unveränderlichen, schreibgeschützten Snapshot von einem erlaubten/proc- oder/sys-Pfad und gibt Ressourcen-URIs zurückDatei-Snapshots paginieren den Inhalt Zeile für Zeile
Verzeichnis-Snapshots paginieren deterministische Kind-Metadaten, ohne symbolischen Links zu folgen
Erzwingt explizite erlaubte Roots, bevor irgendetwas gelesen wird
request_proc_access- Verwendet Aufforderungen, um schreibgeschützten Zugriff auf eine zusätzliche/proc- oder/sys-Root anzufordernFügt die genehmigte Root zur In-Memory-Erlaubnisliste des Servers hinzu
Ermöglicht es dem Modell, proaktiv Zugriff anzufordern, bevor ein blockierter Snapshot-Versuch unternommen wird
Protokoll-Snapshots
create_log_snapshot- Erstellt einen unveränderlichen Snapshot von einer gängigen Linux-Protokolldatei und gibt Ressourcen-URIs zurückUnterstützt die Protokollgruppen
system,security,kernelundpackageOptionales
filter_textschränkt den Snapshot auf übereinstimmende Zeilen einGibt eine Basis-Ressourcen-URI plus eine paginierte Ressourcenvorlage zurück
Ressourcen
syslog://snapshot/{snapshot_id}- Liest einen gespeicherten Linux-Protokoll-Snapshot mit Standard-Paginierungsyslog://snapshot/{snapshot_id}?limit={limit}&offset={offset}- Liest eine bestimmte Seite aus einem gespeicherten Snapshotproc://snapshot/{snapshot_id}- Liest einen gespeicherten Proc/Sys-Snapshot mit Standard-Paginierungproc://snapshot/{snapshot_id}?limit={limit}&offset={offset}- Liest eine bestimmte Seite aus einem gespeicherten Proc/Sys-Snapshot
Jeder Ressourcen-Lesezugriff gibt zurück:
Snapshot-Metadaten
erfasste Einträge
Paginierungs-Metadaten (
total_count,returned_count,limit,offset,has_more,next_offset)
Prompts
AnalyzeRecentApplicationErrors- Fehlerfokussierter Protokollanalyse-WorkflowExplainHighCpu- Korreliert CPU-intensive Prozesse mit Linux-ProtokollenDetectSecurityAnomalies- Überprüft verdächtige Prozesse sowie Beweise aus Auth-/SicherheitsprotokollenDiagnoseSystemHealth- End-to-End-Systemgesundheits-WorkflowTroubleshootLinuxComponent- Fokussierter Deep-Dive-Workflow, der den Agenten in Richtungtroubleshoot_linux_diagnosticslenkt
Projekte
src/mcp_linux_diag_server/server.py
Der authentifizierte HTTP-MCP-Server, der die Diagnose-Tools, Ressourcen und Workflow-Prompts der Meilensteine 1-7 bereitstellt.
src/mcp_linux_diag_server/client.py
Der Vorlesungs-Chat-Client, der:
den lokalen HTTP-Server startet
sich über streamfähiges HTTP mit dem Demo-API-Key verbindet
MCP-Prompt-/Ressourcen-APIs als Hilfswerkzeuge für das Modell bereitstellt
MCP-Formular-Aufforderungen im lokalen Terminal erfüllt, wenn das Modell
kill_processauslöstMCP-Sampling-Anfragen erfüllt, damit der Server sichere Linux-Diagnoseabfragen und Zusammenfassungen synthetisieren kann
dem Modell beibringt, Proc/Sys-Zugriff anzufordern, bevor blockierte Pfade gesnapshotet werden
Tool-Aufruf-Turns ausführt
Testmethoden
Methode | Visuell | Interaktiv | LLM | Am besten für |
| ❌ Nein | ❌ Nein | ❌ Nein | schnelle Verifizierung des M1-M7-Serververhaltens |
MCP Inspector / | ✅ Ja | ✅ Ja | ❌ Nein | Entwicklung, Debugging, Lehre |
| ❌ Nein | ✅ Ja | ✅ Ja | Vorlesungs-Demo-Ablauf |
Für die M1-Validierungs-Checkliste, die dem Basis-Lehrablauf immer noch zugrunde liegt, siehe M1_VALIDATION_GUIDE.md.
Projektstruktur
MCPPythonDemo/
├── README.md
├── LICENSE.txt
├── pyproject.toml
├── .env.example
├── .vscode/
│ └── mcp.json
├── scripts/
│ └── smoke_test.py
├── src/
│ └── mcp_linux_diag_server/
│ ├── __main__.py
│ ├── client.py
│ ├── http_config.py
│ ├── server.py
│ └── tools/
│ ├── log_snapshots.py
│ ├── proc_snapshots.py
│ ├── processes.py
│ └── system_info.py
├── tests/
│ ├── http_harness.py
│ ├── test_client.py
│ ├── test_m1_smoke.py
│ ├── test_m2_smoke.py
│ ├── test_m3_smoke.py
│ ├── test_m4_http.py
│ ├── test_log_snapshots.py
│ ├── test_processes.py
│ └── test_system_info.pyAnforderungen
Python 3.12+
mcp[cli]Azure OpenAI nur, wenn Sie den Vorlesungs-Chat-Client ausführen möchten
Meilensteine
✅ Meilenstein 1 - Minimales Diagnose-Tool über stdio plus Vorlesungs-Chat-Client
✅ Meilenstein 2 - Prozessinspektion
✅ Meilenstein 3 - Protokoll-Snapshot-Ressourcen und Prompts
✅ Meilenstein 4 - HTTP-Transport und Sicherheit
✅ Meilenstein 5 - Aufforderungs-gestütztes kill_process
✅ Meilenstein 6 - Sampling-gestützte Linux-Diagnose
✅ Meilenstein 7 - Roots und Proc/Sys-Snapshots
Lizenz
MIT. Siehe LICENSE.txt.
Ressourcen
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseBqualityBmaintenanceAn MCP server for read-only Linux system administration and diagnostics on RHEL-based systems via SSH. It enables users to troubleshoot remote hosts by accessing system information, services, logs, and network configurations through natural language.Last updated19272Apache 2.0
- Alicense-qualityDmaintenanceA comprehensive MCP server that provides system troubleshooting and diagnostic tools, enabling LLMs to diagnose system issues, monitor resources, check logs, and test connectivity.Last updated1MIT
- Alicense-qualityBmaintenanceA read-only MCP server for Linux and macOS system administration, diagnostics, and troubleshooting, supporting remote SSH execution and multi-host management.Last updatedApache 2.0

masaro-infra-mcpofficial
Flicense-qualityCmaintenanceA secure MCP server providing read-only tools to interact with Cloudflare, Coolify, and other infrastructure services, enabling AI clients to safely diagnose and validate environments.Last updated
Related MCP Connectors
Security scanner for MCP servers. Detect vulnerabilities, prompt injection, and tool poisoning.
Operate your Linux servers from your LLM. Every action runs through an auditable allowlist.
Security-first WordPress MCP server. 129 tools for Claude, ChatGPT, Gemini. Free on wp.org.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/alonf/MCPPythonDemo'
If you have feedback or need assistance with the MCP directory API, please join our Discord server