LastPing MCP

Monitoramento por Agente de IA

Documentação

LastPing

MIT Go Terraform Free


A maioria dos monitoramentos observa uma coisa e avisa quando ela parece errada. O LastPing espera que uma coisa faça check-in e avisa quando ela não faz. Essa inversão é o produto inteiro: um job que quebra não consegue te enviar um erro, mas ele pode falhar em te enviar qualquer coisa — e a ausência é o único sinal que um processo quebrado ainda consegue produzir.

Este repositório contém as peças de código aberto: a CLI lastping e o servidor MCP. O serviço hospedado com o qual eles conversam está em lastping.dev, gratuito para pessoas físicas.

Instalação

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

Nenhum toolchain Go é necessário — isso baixa um binário pré-compilado para macOS e Linux, em amd64 e arm64, e verifica sua soma de verificação. Builds para Windows estão na página de releases.

Se você tiver Go:

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

lastping run — relatórios que você não pode esquecer

Coloque na frente do que você já executa:

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

Ele envia um ping de início, executa seu comando sem alterações e reporta o código de saída quando termina — sucesso em 0, falha em qualquer outro valor, com o final do stderr anexado para que o alerta diga o porquê.

Três propriedades que valem a pena conhecer, porque são a diferença entre um wrapper de monitoramento em que você pode confiar em produção e um que você remove depois de uma noite ruim:

  • Seu código de saída sempre se propaga. O wrapper sai com o mesmo código com que seu comando saiu, então o CI se comporta exatamente como antes de você adicioná-lo.
  • Um ping com falha nunca toca no seu comando. Se o LastPing estiver inacessível, seu job ainda roda, ainda escreve sua saída, ainda sai normalmente.
  • Interativo continua interativo. stdin e stdout são repassados como descritores de arquivo, então envolver um REPL ou uma sessão de agente funciona.

Por que um wrapper em vez de uma instrução? Porque qualquer coisa consultiva se degrada. Um agente de IA instruído a reportar em cada tarefa vai parar de fazer isso, e uma linha de cron que você pretendia adicionar com um curl nunca recebe isso. Um wrapper reporta a partir do ciclo de vida do processo, então nada depende de alguém se lembrar.

Servidor MCP — deixe um agente configurar seu próprio monitoramento

// 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" }
    }
  }
}

O servidor hospedado é o caminho recomendado — nada para instalar, e ele sempre carrega o conjunto atual de ferramentas.

Um binário stdio também está aqui se você preferir executá-lo você mesmo:

go install github.com/tp322d/lastping-app/cmd/lastping-mcp@latest
Ferramentas no binário stdio deste repositório (37)

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

Descoberta: discover_monitors_reconcile

Relatórios: get_ping_instructions · declare_run_expectations

Incidentes e execuções: list_incidents · get_run_history · get_incident (a linha do tempo registrada de um incidente)

O loop de falha: list_open_incidents · add_incident_note

Roteamento de alertas: set_route

Destinos: list_destinations · create_destination · update_destination · test_destination · delete_destination

Modelos de alerta: get_alert_templates · set_alert_template

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

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

Chaves de API: create_api_key (scope opcional: leitura / escrita / admin) · list_api_keys · revoke_api_key (cascata para cada chave que criou)

Terraform: export_terraform

Este binário carrega o mesmo conjunto de ferramentas que o servidor hospedado em mcp.lastping.dev. Ele é um cliente REST enxuto em toda a extensão: cada ferramenta é uma chamada HTTP direta à API de gerenciamento, então ele continua gratuito para executar você mesmo, com nenhum atraso em relação à superfície hospedada além de um novo release.

O que mais importa é o get_ping_instructions: um agente chama create_monitor, depois pede seus próprios comandos de ping e os conecta ao seu próprio trabalho — em uma única conversa, sem um humano abrir um dashboard.

API de Ping

Cada monitor recebe uma URL. Não há nada para instalar e nenhuma biblioteca para manter atualizada; qualquer coisa que consiga fazer uma requisição HTTP pode reportar.

O que aconteceuRequisição
terminou com sucessoPOST <ping-url>
iniciou uma execuçãoPOST <ping-url>/start
falhouPOST <ping-url>/fail com o erro como corpo
saiu com um códigoPOST <ping-url>/<exit-code>
aguardando um humanoPOST <ping-url>/blocked
progresso que vale registrarPOST <ping-url>/note

Adicione ?rid=<id> para parear o início de uma execução com seu resultado, para que o LastPing consiga agrupar os pings de uma execução e cronometrá-la.

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

Monitoramento 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
}

O provider está no Terraform Registry como lastping-dev/lastping, com o código-fonte em lastping-dev/terraform-provider-lastping.

Links

Licença

MIT. Veja LICENSE.