LastPing MCP
Monitoreo por Agente de IA
Documentación
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 éxito | POST <ping-url> |
| inició una ejecución | POST <ping-url>/start |
| falló | POST <ping-url>/fail con el error como cuerpo |
| salió con un código | POST <ping-url>/<exit-code> |
| esperando a un humano | POST <ping-url>/blocked |
| progreso que vale la pena registrar | POST <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
- lastping.dev — el servicio alojado, gratuito para individuos
- Monitoreo de agentes de IA — la guía centrada en agentes
- Servidor MCP — conecta configuraciones por cliente
- Proveedor de Terraform — monitoreo como código
- Guías de integración — cron, Kubernetes, systemd, GitHub Actions, Python, Node
Licencia
MIT. Consulta LICENSE.