mcp-syslog
mcp-syslog-crunchtools
Servidor MCP para los logs recopilados por crunchtools/syslog.
Construido para RT #1460, para cerrar una brecha concreta: Nagios avisa a Hermes y Hermes puede reiniciar un servicio, pero no puede leer los logs del servicio — así que toda corrección es un reinicio a ciegas. Esto la convierte en una corrección informada.
Capacidades
Herramienta | Qué responde |
| ¿Qué puedo consultar? |
| Muéstrame los ERR de este servicio en los últimos 15 minutos |
| ¿Dónde aparece esta cadena en toda la flota? |
| ¿Cuáles son las líneas más recientes de este servicio? |
| ¿Qué decía todo alrededor de las 03:14? |
| ¿Qué servicio es el más ruidoso y cuál está realmente en mal estado? |
Related MCP server: cloudwatch-mcp
El bucle de triaje
nagios_current_problems_tool → what is broken
syslog_search_tool(source=…, → why it broke
severity="ERR",
since="15m")
syslog_context_tool(timestamp=…) → what else was happening at that moment
nagios_schedule_check_tool → confirm the fixsyslog_context_tool sin un source es el que justifica su valor. Abarca todas las fuentes
a la vez, que es como se conecta "la aplicación se ha caído" con "el contenedor de la
base de datos se quedó sin memoria (OOM) cuatro segundos antes".
Notas de diseño
Cada resultado está limitado y avisa cuando lo está. Los logs no tienen límite y esta salida va a parar a la ventana de contexto de un modelo. Cada herramienta limita sus resultados, limita cuántas líneas escaneará y anota la respuesta cuando se alcanza cualquiera de los límites:
[!] Stopped after the 2,000,000-line scan limit, so this result is INCOMPLETE
and an empty or short result does not mean nothing happened.Esa anotación es esencial. Quien realiza la llamada no sepa distinguir entre "no ha habido errores" y "he dejado de buscar" sacará una conclusión equivocada de un resultado vacío — y este servidor existe para fundamentar las decisiones de corrección.
El filtrado por tiempo es barato. El colector pone la fecha en el nombre del archivo, así que una consulta de diez minutos abre un solo archivo en lugar de leer noventa días de historial.
Los nombres de las fuentes no son fiables. Vienen de un modelo y se usan para
construir una ruta del sistema de archivos. Cada una se resuelve y luego se confirma
que sigue dentro de la raíz de los logs, lo que detecta el traversal de rutas, las rutas
absolutas y los enlaces simbólicos que apuntan fuera del árbol — ver
tests/test_security.py.
La severidad es "al menos este nivel". severity="ERR" devuelve ERR, CRIT, ALERT
y EMERG. Una severidad no reconocida se mantiene en lugar de descartarse, porque ocultar
una línea que no entiendes es peor que mostrarla — pero no se cuenta como error en
syslog_stats_tool, o un servicio sano reportaría una tasa de error del 57%.
La severidad no es maldad. Podman registra cualquier cosa que un contenedor escribe
en stderr con prioridad err, y no son pocos los servicios que registran ahí un INFO
rutinario. En lotor, mcp-trentina ronda el 65% de "ERR" mientras está completamente
sano:
PRIORITY=3 | 2026-08-23 15:55:24 INFO httpx: HTTP Request: GET https://... "200 OK"El colector es fiel al registro del journal; el journal está informando del descriptor de archivo. Lee el mensaje y prefiere un cambio en la tasa de errores a su valor absoluto. Esta misma advertencia está en las instrucciones MCP del servidor, para que un agente que lo consulte reciba exactamente esa indicación.
Se procesan dos formatos de línea. El colector emitía cinco campos antes de 2026-08-23 y seis después, y las líneas antiguas permanecen en retención durante 90 días. La disposición que usa una línea se decide según dónde se encuentre una severidad real, no contando campos.
Formato de logs
El colector escribe seis campos separados por espacios:
2026-08-23T15:41:52+00:00 crunchtools.com crunchtools.com httpd ERR AH00169: caught SIGTERM
└─ timestamp ───────────┘ └─ host ──────┘ └─ source ────┘ └prog┘ └sev┘ └─ message ────────┘source es el flujo de logs — normalmente un nombre de contenedor. program es
el proceso dentro de él, algo relevante para los contenedores systemd donde httpd,
php-fpm y mariadb se archivan bajo un mismo nombre de servicio.
Configuración
Variable | Predeterminado | Propósito |
|
| Raíz de logs, montada en solo lectura |
|
| Límite de entradas devueltas por llamada |
|
| Límite de líneas examinadas por llamada |
No hay credenciales: el servidor lee archivos de un bind mount de solo lectura.
Ejecución
podman run -d --name mcp-syslog \
--network crunchtools \
-p 127.0.0.1:8027:8027 \
-v /srv/syslog.crunchtools.com/data/logs:/logs:ro \
quay.io/crunchtools/mcp-syslog:latest \
--transport streamable-http --host 0.0.0.0 --port 8027Monta :ro. Este servidor nunca necesita escribir, y un montaje de solo lectura hace que
un error aquí no pueda destruir el registro forense que existe para proteger.
Desarrollo
uv sync
uv run ruff check src tests
uv run mypy src
uv run pytest -vMaintenance
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
- -licenseNot gradedqualityNot gradedmaintenanceProvides comprehensive logging and monitoring capabilities for MCP services with real-time log tailing, advanced search, error analysis, and anomaly detection. Enables centralized log aggregation, correlation tracking, and health monitoring across all MCP ecosystem services.
- FlicenseAqualityDmaintenanceEnables searching and analyzing AWS CloudWatch logs with support for configurable log groups, time-based searches, and service-specific log stream filtering.5
- FlicenseNot gradedqualityDmaintenanceEnables querying and analyzing logs from multiple remote Unix hosts via the Log Collector API, with tools for search, error detection, and summary generation.
- FlicenseNot gradedqualityBmaintenanceProvides telemetry tools for retrieving recent logs and system metrics to support root-cause analysis of infrastructure incidents. Enables autonomous incident triage with grounded verification and human-in-the-loop remediation.1
Related MCP Connectors
Read-only access to Auralogs production logs: search logs, inspect errors, review AI analyses.
Investigate errors, track deployments, analyze performance, and manage application monitoring
Software component catalog: search your org's services, docs, APIs, dependencies, and ownership.
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/crunchtools/mcp-syslog'
If you have feedback or need assistance with the MCP directory API, please join our Discord server