mcp-diag
Provides a tool to check that the Chatwoot service responds locally.
Provides tools to inspect Docker container status and resource usage, and read logs from allowed containers.
Provides read-only system diagnostics for a Hetzner server, including RAM, disk, uptime, and OOM event detection.
Provides tools to measure Sidekiq queue sizes stored in Redis.
Provides tools to measure Sidekiq queue sizes, helping monitor background job processing.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-diagCheck system stats and Docker status"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP de diagnóstico read-only — Hetzner (Chatwoot)
Servicio chico que corre en el propio server y expone herramientas de diagnóstico de solo lectura vía MCP, para que Claude (claude.ai) pueda revisar el estado del Hetzner igual que hoy revisa Railway y Neon.
Qué puede hacer Claude con esto: ver RAM/disco/uptime, detectar eventos OOM, estado y consumo de containers Docker, leer logs de containers de una allowlist, medir colas de Sidekiq en Redis y chequear que Chatwoot responda en local.
Qué NO puede hacer: ejecutar comandos arbitrarios, escribir, reiniciar nada, leer archivos. Cada herramienta es un comando fijo con timeout.
Instalación (10-15 min)
Todo como root salvo indicación contraria.
1. Bajar el código y crear el usuario
apt update && apt install -y git python3-venv curl
git clone https://github.com/Leonelito08/mcp-diag.git /opt/mcp-diag
useradd -r -s /usr/sbin/nologin -d /opt/mcp-diag mcpdiag
cd /opt/mcp-diag(Actualizaciones futuras: cd /opt/mcp-diag && git pull && systemctl restart mcp-diag.)
2. Entorno Python
python3 -m venv venv
./venv/bin/pip install -r requirements.txt3. Configuración
cp env.example .env
openssl rand -hex 32 # pegar el resultado en MCP_SECRET dentro de .env
docker ps --format '{{.Names}}' # con esto completás ALLOWED_CONTAINERS y REDIS_CONTAINER
nano .env
chown -R mcpdiag:mcpdiag /opt/mcp-diag
chmod 600 .envCHATWOOT_LOCAL_URL: el puerto donde rails escucha en el host
(verificalo con docker ps — columna de puertos, típicamente 3000).
4. Servicio systemd
cp mcp-diag.service /etc/systemd/system/
systemctl daemon-reload
systemctl enable --now mcp-diag
systemctl status mcp-diag # debe decir "active (running)"Prueba local (debe responder algo, aunque sea un error de protocolo MCP — lo importante es que NO sea "connection refused"):
curl -s -o /dev/null -w '%{http_code}\n' http://127.0.0.1:8321/$(grep MCP_SECRET .env | cut -d= -f2)/mcp5. Exponerlo con HTTPS
El servicio escucha solo en 127.0.0.1. Elegí UNA de las dos opciones.
Opción A — Cloudflare Tunnel (recomendada: cero puertos abiertos)
Requiere un dominio tuyo administrado en Cloudflare (sirve un subdominio de cualquiera que ya tengas ahí).
# Instalar cloudflared
curl -L -o /usr/local/bin/cloudflared https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64
chmod +x /usr/local/bin/cloudflared
cloudflared tunnel login # abre URL, elegís el dominio
cloudflared tunnel create mcp-diag
cloudflared tunnel route dns mcp-diag mcp.TUDOMINIO.comCrear /etc/cloudflared/config.yml (el ID del túnel te lo dio create):
tunnel: <TUNNEL_ID>
credentials-file: /root/.cloudflared/<TUNNEL_ID>.json
ingress:
- hostname: mcp.TUDOMINIO.com
service: http://127.0.0.1:8321
- service: http_status:404cloudflared service install
systemctl enable --now cloudflaredOpción B — Caddy (si preferís no depender de Cloudflare)
Necesita un registro DNS A → IP del Hetzner y el puerto 443 abierto.
apt install -y caddy/etc/caddy/Caddyfile:
mcp.TUDOMINIO.com {
reverse_proxy 127.0.0.1:8321
}systemctl reload caddyCaddy gestiona el certificado Let's Encrypt solo.
6. Agregar el conector en claude.ai
En claude.ai: Configuración → Conectores → "+" → Agregar conector personalizado.
Nombre:
Hetzner Chatwoot.URL:
https://mcp.TUDOMINIO.com/<MCP_SECRET>/mcp(el secreto va en la URL — esa URL ES la credencial, no la compartas).Guardar. No hace falta OAuth.
7. Probar
En una conversación nueva: "Revisá el estado del Hetzner". Claude debería
poder llamar system_stats, docker_status, oom_check, etc.
Related MCP server: infra-mcp
Cómo agregar herramientas (para futuras necesidades de monitoreo)
Receta: función con argv fijo + decorador + reiniciar. Ejemplo — chequear que Postgres acepte conexiones:
@mcp.tool()
def postgres_ping() -> str:
"""pg_isready dentro del container de Postgres."""
return run(["docker", "exec", "chatwoot-postgres-1", "pg_isready"], timeout=10)systemctl restart mcp-diagReglas al extender:
Solo lectura. Nada de restart/exec arbitrario/escritura, aunque tiente.
Nunca interpolar strings del modelo en comandos: parámetros solo como números acotados o nombres validados contra allowlist (mirá
container_logscomo plantilla).Siempre
timeout=.
El mismo patrón sirve para cualquier server futuro: copiás la carpeta, cambiás las tools, otro subdominio, otro secreto.
Operación
Rotar credencial: nuevo
openssl rand -hex 32en.env→systemctl restart mcp-diag→ actualizar la URL del conector en claude.ai.Logs del servicio:
journalctl -u mcp-diag -fActualizar fastmcp:
./venv/bin/pip install -U "fastmcp>=2.10,<3"y restart.Si algún día preferís credencial en header en vez de URL: claude.ai tiene soporte (en beta) de request headers para conectores; el cambio en el server es chico — pedírselo a Claude cuando toque.
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
- Alicense-qualityDmaintenanceThis MCP server provides read-only Linux system diagnostics tools for inspecting system information, processes, and log snapshots. It enables AI models to analyze Linux system health, troubleshoot issues, and review security through workflow prompts and HTTP transport with API key authentication.Last updatedMIT
- Alicense-qualityCmaintenanceMCP server that gives Claude Code real-time visibility into local infrastructure — Docker containers and system health.Last updatedMIT
- Alicense-qualityDmaintenanceA sandboxed, read-only MCP server that safely exposes system metrics, container diagnostics, and logs to AI agents with intelligent context compression and strict security measures.Last updatedMIT

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
Uptime, SSL, DNS and domain monitoring you can talk to from Claude or any MCP client.
Hosted MCP server exposing US hospital procedure cost data to AI assistants
MCP server providing access to the Scorecard API to evaluate and optimize LLM systems.
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/Leonelito08/mcp-diag'
If you have feedback or need assistance with the MCP directory API, please join our Discord server