LastPing MCP

Monitoreo por Agente de IA

Documentación

LastPing

MIT Go Terraform Free


La mayoría de los sistemas de monitoreo observan una cosa y te avisan cuando se ve mal. LastPing espera a que una cosa se registre y te avisa cuando no lo hace. Esa inversión es todo el producto: un trabajo que falla no puede enviarte un error, pero sí puede dejar de enviarte algo — y la ausencia es la única señal que un proceso roto aún puede producir.

Este repositorio contiene las piezas de código abierto: el CLI lastping y el servidor MCP. El servicio alojado con el que se comunican está en lastping.dev, gratuito para individuos.

Instalación

curl -fsSL https://raw.githubusercontent.com/tp322d/lastping-app/main/install.sh | sh

No se necesita el kit de herramientas de Go — eso descarga un binario precompilado para macOS y Linux, en amd64 y arm64, y verifica su suma de verificación. Las compilaciones para Windows están en la página de versiones.

Si tienes Go:

go install github.com/tp322d/lastping-app/cmd/lastping@latest

lastping run — informes que no puedes olvidar

Ponlo delante de lo que ya ejecutas:

lastping run --monitor <monitor-id> -- python nightly_etl.py
lastping run --monitor <monitor-id> -- ./backup.sh
lastping run --monitor <monitor-id> -- claude

Envía un ping de inicio, ejecuta tu comando sin modificarlo, e informa el código de salida cuando termina — éxito en 0, fallo en cualquier otro caso, con el final de stderr adjunto para que la alerta diga por qué.

Tres propiedades que vale la pena conocer, porque son la diferencia entre un envoltorio de monitoreo en el que puedes confiar en producción y uno que eliminas después de una mala noche:

  • Tu código de salida siempre se propaga. El envoltorio sale con el mismo código con el que salió tu comando, así que CI se comporta exactamente como antes de agregarlo.
  • Un ping fallido nunca toca tu comando. Si LastPing no está disponible, tu trabajo aún se ejecuta, aún escribe su salida, aún sale normalmente.
  • Lo interactivo sigue siendo interactivo. stdin y stdout se entregan como descriptores de archivo, así que envolver un REPL o una sesión de agente funciona.

¿Por qué un envoltorio en lugar de una instrucción? Porque cualquier cosa basada en consejos se degrada. Un agente de IA al que se le dice que informe sobre cada tarea dejará de hacerlo, y una línea de cron a la que pensabas agregar un curl nunca lo recibe. Un envoltorio informa desde el ciclo de vida del proceso, así que nada depende de que alguien lo recuerde.

Servidor MCP — deja que un agente configure su propio monitoreo

// claude_desktop_config.json, .mcp.json, or your client's equivalent
{
  "mcpServers": {
    "lastping": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.lastping.dev/mcp",
               "--header", "Authorization: Bearer ${LASTPING_API_KEY}"],
      "env": { "LASTPING_API_KEY": "lp__your_key_here" }
    }
  }
}

El servidor alojado es la ruta recomendada — nada que instalar, y siempre lleva el conjunto de herramientas actual.

También hay un binario stdio aquí si prefieres ejecutarlo tú mismo:

go install github.com/tp322d/lastping-app/cmd/lastping-mcp@latest
Herramientas en el binario stdio de este repositorio (37)

Monitores: create_monitor · get_monitor · list_monitors · update_monitor · delete_monitor · pause_monitor · resume_monitor · snooze_monitor

Descubrimiento: discover_monitors_reconcile

Informes: get_ping_instructions · declare_run_expectations

Incidentes y ejecuciones: list_incidents · get_run_history · get_incident (el cronograma registrado de un incidente)

El bucle de fallo: list_open_incidents · add_incident_note

Enrutamiento de alertas: set_route

Destinos: list_destinations · create_destination · update_destination · test_destination · delete_destination

Plantillas de alertas: get_alert_templates · set_alert_template

Registro de agentes: register_agent · list_agents · get_agent · update_agent · delete_agent

Páginas de estado: list_status_pages · create_status_page · update_status_page · delete_status_page

Claves API: create_api_key (scope opcional: lectura / escritura / administrador) · list_api_keys · revoke_api_key (en cascada a cada clave que creó)

Terraform: export_terraform

Este binario lleva el mismo conjunto de herramientas que el servidor alojado en mcp.lastping.dev. Es un cliente REST ligero en todo: cada herramienta es una llamada HTTP directa a la API de gestión, así que sigue siendo gratuito ejecutarlo tú mismo sin retraso respecto a la superficie alojada más allá de una nueva versión.

La que más importa es get_ping_instructions: un agente llama a create_monitor, luego pide sus propios comandos de ping, y los integra en su propio trabajo — en una sola conversación, sin que un humano abra un panel.

API de ping

Cada monitor obtiene una URL. No hay nada que instalar ni ninguna biblioteca que mantener actualizada; cualquier cosa que pueda hacer una solicitud HTTP puede informar.

Qué sucedióSolicitud
terminó con éxitoPOST <ping-url>
inició una ejecuciónPOST <ping-url>/start
fallóPOST <ping-url>/fail con el error como cuerpo
salió con un códigoPOST <ping-url>/<exit-code>
esperando a un humanoPOST <ping-url>/blocked
progreso que vale la pena registrarPOST <ping-url>/note

Agrega ?rid=<id> para emparejar el inicio de una ejecución con su resultado, para que LastPing pueda agrupar los pings de una ejecución y cronometrarla.

# The classic one-liner, at the end of a cron job:
curl -fsS -m 10 --retry 3 https://ping.lastping.dev/<monitor-id>

Monitoreo como código

resource "lastping_monitor" "nightly_etl" {
  name          = "nightly-etl"
  slug          = "nightly-etl"
  schedule_kind = "cron"
  cron_expr     = "0 3 * * *"
  tz            = "Europe/Berlin"
  grace_s       = 900
}

El proveedor está en el Registro de Terraform como lastping-dev/lastping, con el código fuente en lastping-dev/terraform-provider-lastping.

Enlaces

Licencia

MIT. Consulta LICENSE.