Linux Diagnostics MCP Server
Servidor MCP de Diagnóstico de Linux - Demostración de Clase
Una adaptación para Python/Linux del repositorio de enseñanza original MCPDemo. Este repositorio alcanza ahora la paridad con el Hito 7 para el flujo de enseñanza público: inspección compacta del sistema, análisis detallado de procesos de Linux, instantáneas de registros como recursos, flujos de trabajo, MCP autenticado sobre HTTP en /mcp, solicitud explícita antes de la terminación de procesos, diagnóstico de Linux asistido por muestreo e instantáneas de /proc y /sys con raíces permitidas.
Qué muestra esta demostración
Esta demostración de clase incluye ahora:
✅ Herramientas: herramientas de diagnóstico de Linux para
get_system_info,get_process_list,get_process_by_id,get_process_by_nameykill_processcon solicitud de confirmación✅ Recursos: recursos de instantáneas de registros paginados
syslog://snapshot/...✅ Prompts: flujos de trabajo MCP para análisis de errores, investigación de CPU, revisión de seguridad y diagnóstico de salud
✅ Transporte HTTP: MCP transmitible sobre
http://127.0.0.1:5000/mcp✅ Autenticación con clave API: cabecera
X-API-Keyo?apiKey=secure-mcp-key✅ Cliente de chat de IA: un cliente de Azure OpenAI en Python que inicia el servidor HTTP local, permite al modelo llamar a herramientas, prompts y recursos de MCP, y maneja la solicitud de formularios locales en la terminal
✅ Implementación en Python 3.12 con el SDK oficial de MCP para Python
✅ Múltiples métodos de prueba
✅ Solicitud del Hito 5 para
kill_process✅ Diagnóstico de Linux asistido por muestreo del Hito 6
✅ Raíces del Hito 7 para instantáneas de solo lectura de
/procy/sys
Related MCP server: troubleshooting-mcp-server
Inicio rápido
1. Instalación
Instalación solo del servidor:
python3 -m pip install --user --break-system-packages -e .Instalar los extras del cliente de chat de la clase:
python3 -m pip install --user --break-system-packages -e '.[llm]'2. Prueba rápida (sin LLM)
python3 scripts/smoke_test.pyEste script:
Inicia el servidor HTTP MCP local
Verifica
401 Unauthorizedsin una clave APIRealiza el saludo de inicialización de MCP en
/mcpConfirma que el flujo
mcp-session-idfunciona entre solicitudesDescubre herramientas, prompts y plantillas de recursos
Ejercita los flujos de sistema, procesos, instantáneas de registros, instantáneas de proc y diagnósticos asistidos por muestreo
Verifica que
kill_processfalla de forma segura cuando el cliente no anuncia soporte para solicitudesVerifica que el cliente de chat de la clase falla de forma segura cuando faltan los ajustes de Azure OpenAI
3. Ejecutar el servidor manualmente
python3 -m mcp_linux_diag_serverEl servidor escucha en:
endpoint:
http://127.0.0.1:5000/mcpclave API de demostración:
secure-mcp-key
4. Probar con MCP Inspector o la configuración de MCP de VS Code
Inicie el servidor en una terminal y luego conéctese usando el endpoint HTTP anterior.
Este repositorio incluye .vscode/mcp.json con la cabecera requerida:
{
"servers": {
"linux-diag-demo": {
"url": "http://127.0.0.1:5000/mcp",
"headers": {
"X-API-Key": "secure-mcp-key"
}
}
}
}Si su inspector acepta una URL directamente, esta forma de cadena de consulta también funciona:
http://127.0.0.1:5000/mcp?apiKey=secure-mcp-key5. Usar el cliente de chat de la clase
Copie el archivo de entorno de muestra y rellene sus ajustes locales de Azure OpenAI:
cp .env.example .env.local
$EDITOR .env.local
python3 -m mcp_linux_diag_server.client --prompt "Summarize this machine."Para reflejar más fielmente el flujo de credenciales original de .NET, establezca:
MCP_DEMO_AZURE_OPENAI_USE_DEFAULT_CREDENTIAL=truey omita la clave API.
Ejecute el chat interactivo:
python3 -m mcp_linux_diag_server.clientO ejecute un solo prompt:
python3 -m mcp_linux_diag_server.client --prompt "What is the system information?"Las herramientas
Información del sistema
get_system_info- Devuelve una instantánea compacta del sistema Linux o WSLNombre del host
Usuario actual
Descripción de la distribución de Linux
Versión del kernel
Arquitectura
Número de CPUs lógicas
Entorno de ejecución de Python
Directorio de trabajo actual
Tiempo de actividad (uptime)
Promedios de carga
Resumen de memoria
Indicador de detección de WSL
Inspección de procesos
get_process_list- Devuelve una lista ligera de procesos en ejecución con nombres y PIDsget_process_by_id- Devuelve información detallada del proceso de Linux para un PIDget_process_by_name- Devuelve información detallada paginada del proceso para un nombre de procesoPor defecto
page_number=1Por defecto
page_size=5Mantiene el flujo de enseñanza de listar primero, detallar después de la demo original
kill_process- Termina un proceso de Linux solo después de una solicitud explícitaSi se omite
process_id, el servidor muestrea los principales consumidores de CPU y pide al cliente que elija unoEl servidor siempre requiere la frase de confirmación escrita
CONFIRM PID {pid}El cliente de la clase maneja estas solicitudes localmente en la terminal cuando stdin/stdout son interactivos
troubleshoot_linux_diagnostics- Utiliza muestreo para convertir una pregunta de diagnóstico de Linux en lenguaje natural en una lectura validada de/proco/sysEl servidor valida la ruta y el campo muestreados contra una lista de permitidos antes de leer nada
Adaptación exacta de Python: la consulta muestreada es una línea segura de
PATHoPATH | grep FIELDen lugar de WQLEl servidor luego muestrea de nuevo para resumir la observación al usuario
create_proc_snapshot- Crea una instantánea inmutable de solo lectura desde una ruta permitida de/proco/sysy devuelve URIs de recursosLas instantáneas de archivos paginan el contenido línea por línea
Las instantáneas de directorios paginan metadatos secundarios deterministas sin seguir enlaces simbólicos
Aplica raíces permitidas explícitas antes de leer nada
request_proc_access- Utiliza la solicitud para pedir acceso de solo lectura a una raíz adicional de/proco/sysAñade la raíz aprobada a la lista de permitidos en memoria del servidor
Permite al modelo pedir acceso de forma proactiva antes de un intento de instantánea bloqueado
Instantáneas de registros
create_log_snapshot- Crea una instantánea inmutable desde un archivo de registro común de Linux y devuelve URIs de recursosSoporta grupos de registros
system,security,kernelypackagefilter_textopcional reduce la instantánea a las líneas coincidentesDevuelve un URI de recurso base más una plantilla de recurso paginada
Recursos
syslog://snapshot/{snapshot_id}- Lee una instantánea de registro de Linux almacenada con paginación por defectosyslog://snapshot/{snapshot_id}?limit={limit}&offset={offset}- Lee una página específica de una instantánea almacenadaproc://snapshot/{snapshot_id}- Lee una instantánea de proc/sys almacenada con paginación por defectoproc://snapshot/{snapshot_id}?limit={limit}&offset={offset}- Lee una página específica de una instantánea de proc/sys almacenada
Cada lectura de recurso devuelve:
metadatos de la instantánea
entradas capturadas
metadatos de paginación (
total_count,returned_count,limit,offset,has_more,next_offset)
Prompts
AnalyzeRecentApplicationErrors- Flujo de trabajo de análisis de registros centrado en erroresExplainHighCpu- Correlaciona procesos con alto uso de CPU con registros de LinuxDetectSecurityAnomalies- Revisa procesos sospechosos más evidencia de registros de autenticación/seguridadDiagnoseSystemHealth- Flujo de trabajo de salud del sistema de extremo a extremoTroubleshootLinuxComponent- Flujo de trabajo de inmersión profunda enfocado que dirige al agente haciatroubleshoot_linux_diagnostics
Proyectos
src/mcp_linux_diag_server/server.py
El servidor HTTP MCP autenticado que expone las herramientas de diagnóstico, recursos y flujos de trabajo de los hitos 1-7.
src/mcp_linux_diag_server/client.py
El cliente de chat de la clase que:
inicia el servidor HTTP local
se conecta a través de HTTP transmitible con la clave API de demostración
expone APIs de prompt/recurso de MCP como herramientas auxiliares para el modelo
cumple con la solicitud de formularios MCP en la terminal local cuando el modelo activa
kill_processcumple con las solicitudes de muestreo de MCP para que el servidor pueda sintetizar consultas y resúmenes de diagnóstico de Linux seguros
enseña al modelo a solicitar acceso a proc/sys antes de tomar instantáneas de rutas bloqueadas
ejecuta turnos de llamada a herramientas
Métodos de prueba
Método | Visual | Interactivo | LLM | Mejor para |
| ❌ No | ❌ No | ❌ No | verificación rápida del comportamiento del servidor M1-M7 |
MCP Inspector / | ✅ Sí | ✅ Sí | ❌ No | desarrollo, depuración, enseñanza |
| ❌ No | ✅ Sí | ✅ Sí | flujo de demostración de clase |
Para la lista de verificación de validación del Hito 1 que aún sustenta el flujo base de la clase, consulte M1_VALIDATION_GUIDE.md.
Estructura del proyecto
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.pyRequisitos
Python 3.12+
mcp[cli]Azure OpenAI solo si desea ejecutar el cliente de chat de la clase
Hitos
✅ Hito 1 - Herramienta de diagnóstico mínima sobre stdio más cliente de chat de clase
✅ Hito 2 - Inspección de procesos
✅ Hito 3 - Recursos de instantáneas de registros y prompts
✅ Hito 4 - Transporte HTTP y seguridad
✅ Hito 5 - kill_process respaldado por solicitud
✅ Hito 6 - Diagnóstico de Linux asistido por muestreo
✅ Hito 7 - Raíces e instantáneas de proc/sys
Licencia
MIT. Consulte LICENSE.txt.
Recursos
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