mcpField
L
LastPing

LastPing

远程服务
lastping.dev云与基础设施31 周前更新

关于 LastPing

LastPing 通过检测预期签到是否缺失,监控 AI Agent、定时任务和 CI/CD 流水线。其命令行工具报告命令生命周期,MCP 服务则让 Agent 配置和查看监控。

主要功能

  1. 01缺少签到时发送告警
  2. 02命令行工具报告命令生命周期
  3. 03配置 OpenTelemetry 跟踪导出
  4. 04由 Agent 管理监控配置
  5. 05提供事件、运行和告警工具

适用场景

  1. 01发现停滞或未启动的 AI Agent 运行
  2. 02监控定时任务和 CI/CD 命令
  3. 03让 Agent 创建并查看监控

MCP 相关

托管 MCP 服务和 stdio 程序提供管理监控、查询运行与事件、配置告警和跟踪的工具。Agent 可创建监控并获取运行所需的签到指令。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://mcp.lastping.dev/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

全部服务地址
Streamable HTTPhttps://mcp.lastping.dev/mcp需要授权

工具

详细介绍

LastPing。AI Agent 监控:当你的 Agent 失败、停滞或需要你时发出提醒。还支持 cron 任务和 CI/CD。个人用户免费。

网站 MCP 服务文档 API 文档 状态

版本发布 许可证:MIT Go 1.26 Terraform:lastping-dev/lastping 个人用户免费

LastPing 会在你的 AI Agent 失败、停滞、等待你批准或始终未启动时发出提醒,还会监控相关的 cron 任务和 CI/CD 流水线。个人用户免费。

大多数监控会关注某项任务,并在发现异常时通知你。LastPing 则会等待任务报到,并在它没有报到时通知你。这种反转就是产品的核心:出故障的任务无法向你发送错误信息,但可以不发送任何信息,而缺席是故障进程仍能发出的唯一信号。

此仓库包含客户端组件:lastping CLI 可包装任意命令,并报告其启动情况、退出代码和跟踪信息;MCP 服务则让 AI Agent 能够设置并查看自己的监控。它们连接的托管服务位于 lastping.dev,个人用户免费。

快速开始

# 1. Install the CLI (macOS and Linux, amd64 and arm64)
curl -fsSL https://raw.githubusercontent.com/lastping-dev/lastping-app/main/install.sh | sh

# 2. Wrap a job: a start ping, your command untouched, then its exit code
lastping run --monitor <monitor-id> -- ./backup.sh
# 3. Or give your AI assistant the hosted MCP server, and sign in
https://mcp.lastping.dev/mcp

在 app.lastping.dev 创建监控并获取其 ID,或者通过 MCP 让你的助手来创建。各客户端的连接步骤请见 lastping.dev/mcp/。

安装

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

无需安装 Go 工具链——此命令会下载适用于 macOS 和 Linux 的预构建二进制文件,支持 amd64 和 arm64,并验证其校验和。Windows 版本可在 版本发布页面获取。

如果你已安装 Go:

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

lastping run — 不会忘记的报告

将它放在你已经运行的任何命令前面:

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

它会发送开始 ping,原样运行你的命令,并在命令结束时报告退出代码——退出代码为 0 表示成功,其他值表示失败;同时附上 stderr 末尾内容,让告警说明原因。

以下三项值得了解,因为它们决定了这个监控包装器能否在生产环境中值得信赖,还是会在某个糟糕的夜晚后被你移除:

  • 你的退出代码始终会传递。 包装器会以你的命令退出时使用的代码退出,因此 CI 的行为和添加包装器之前完全一致。
  • ping 失败绝不会影响你的命令。 如果 LastPing 无法访问,你的任务仍会运行、仍会写入输出,也仍会正常退出。
  • 交互体验保持不变。 stdin 和 stdout 会作为文件描述符传递,因此用包装器运行 REPL 或 Agent 会话也可行。

为什么要用包装器,而不是一条指示?因为任何建议性的做法都会逐渐失效。告诉 AI Agent 每项任务都要报告,它最终会不再这么做;你打算添加 curl 的 cron 条目,也可能一直没加上。包装器会根据进程生命周期发送报告,因此不依赖任何人记得去做。

追踪

lastping run 始终只在被包装命令的环境中配置其 OpenTelemetry 导出器,因此自动插桩的 Agent 无需修改代码,就能导出自己的追踪跨度:

  • OTEL_EXPORTER_OTLP_TRACES_ENDPOINT — 未设置 LASTPING_API_KEY 时,使用不带标头的监控 URL 形式(<ping url>/v1/traces),让不带标头的导出器也能进行身份验证;设置了该变量时,则使用 ping 主机的 /v1/traces(Bearer 形式)。
  • OTEL_RESOURCE_ATTRIBUTES — 将 lastping.monitor_id=<id>,lastping.run_id=<rid> 附加到你已设置的值后面,让追踪中的跨度与周围 ping 所报告的同一次运行关联起来。
  • OTEL_EXPORTER_OTLP_HEADERS — 仅当设置了 LASTPING_API_KEY,且你尚未自行设置该变量时,使用 Authorization=Bearer <your key>。

你已设置的上述三个变量中的任何一个都会保持原样。该密钥绝不会用于 ping 身份验证;如上所述,ping URL 按设计保持无需身份验证。

MCP 服务 — 让 Agent 自行为自己设置监控

Claude Desktop 扩展

适用于 macOS 和 Windows 上 Claude Desktop 的一键安装方式,密钥会保存在系统钥匙串中。无需 Node.js。

  1. 下载 lastping.mcpb。
  2. 双击该文件;Claude Desktop 会打开安装对话框。
  3. 粘贴从 app.lastping.dev 的“设置”中“API 密钥”处获取的写入范围密钥。

该扩展会在你的计算机上运行此仓库的 stdio 二进制文件(如下)。每当标记版本时,都会通过 mcpb/build.sh 构建,并且每个发行版都会经过签名;如果构建的发行版未签名,构建将失败,而不会发布未签名的包。证书为自签名证书,因此 Claude Desktop 会将该扩展显示为未验证。尽管如此,签名仍能证明该包来自此仓库的发行流水线,并且签名后未被篡改。未提供签名密钥的情况下在本地运行 mcpb/build.sh,生成的包不会签名,并会明确说明这一点。MCPB_CERT_CA_ISSUED 保留供将来使用公共 CA 颁发的证书。

通过 mcp-remote 桥接连接 Claude Desktop

Claude Desktop 的配置文件只能运行本地程序,因此 LastPing 通过 mcp-remote 桥接连接。将以下内容添加到 claude_desktop_config.json(macOS:~/Library/Application Support/Claude/,Windows:%APPDATA%\Claude\):

{
  "mcpServers": {
    "lastping": {
      "command": "/ABSOLUTE/PATH/TO/npx",
      "args": [
        "-y", "mcp-remote",
        "https://mcp.lastping.dev/mcp",
        "--header", "Authorization:${LASTPING_AUTH}"
      ],
      "env": {
        "PATH": "/FOLDER/THAT/HOLDS/npx:/usr/bin:/bin",
        "LASTPING_AUTH": "Bearer lp_your_key"
      }
    }
  }
}
  • 需要 Node.js。Claude Desktop 不会读取 shell 的 PATH,因此请提供完整路径:在终端中运行 which npx,并将结果填入 command(使用 nvm 时,路径类似于 /Users/you/.nvm/versions/node/v22.11.0/bin/npx),并在 env 的 PATH 开头添加其所在文件夹。
  • 退出并重新打开 Claude Desktop;它只会在启动时读取该文件。依次进入 Settings、Connectors,即可看到 lastping。
  • 如果没有密钥,也可以改为将 LastPing 添加为自定义连接器(依次选择 Customize、Connectors、Add custom connector,然后粘贴 https://mcp.lastping.dev/mcp),并在浏览器中登录 LastPing。同一个连接器适用于 claude.ai、Claude 移动应用和 Cowork。
其他客户端

Claude Code 可直接连接,无需桥接: claude mcp add --transport http --scope user lastping https://mcp.lastping.dev/mcp --header "Authorization: Bearer <key>"。 Cursor、Windsurf、Codex CLI、Gemini CLI 和其他客户端: lastping.dev/mcp/#connect。

推荐使用托管服务,它始终包含最新的工具集。大多数客户端只需添加 URL 并登录 LastPing 即可连接,无需安装任何内容;Cursor 和 Windsurf 则使用 URL 和 API 密钥。使用密钥时,Claude Desktop 可通过扩展或上文的 mcp-remote 桥接连接。

如果你更愿意自行运行,也可以使用这里的 stdio 二进制文件:

go install github.com/lastping-dev/lastping-app/cmd/lastping-mcp@latest
此仓库 stdio 二进制文件中的工具(50)

监控器:create_monitor · get_monitor · list_monitors · update_monitor · delete_monitor · pause_monitor · resume_monitor · snooze_monitor

发现:discover_monitors_reconcile

报告:get_ping_instructions · declare_run_expectations

事件与运行:list_incidents · get_run_history · get_run (单次运行的完整时间线、断言判定和跨度)· list_runs (所有监控器的运行,包含追踪运行,并支持筛选)· get_incident(单个事件的记录时间线)

追踪:get_trace_setup(服务器为某个工具提供的设置步骤)· create_ingest_key(绑定到单个监控器的追踪密钥;写入密钥即可)· get_trace_diagnostics(已发送的跨度被拒绝的原因)

Agent 可观测性:get_agent_dependencies · get_agent_usage · list_dependencies · list_discovered_agents · adopt_discovered_agent

故障处理循环:list_open_incidents · add_incident_note

警报路由:set_route · delete_route

投递日志:list_deliveries,列出所有监控器近期的警报投递,不分页

目标:list_destinations · create_destination · update_destination · test_destination · delete_destination

警报模板:get_alert_templates · set_alert_template

Agent 注册表:register_agent · list_agents · get_agent · update_agent · delete_agent

状态页:list_status_pages · create_status_page · update_status_page · delete_status_page

API 密钥:create_api_key(可选的 scope:read / write / admin / ingest)· list_api_keys · regenerate_api_key(生成新密钥,同一密钥;不会级联)· revoke_api_key(级联撤销其创建的所有密钥)

Terraform:export_terraform

此二进制文件与 mcp.lastping.dev 上的托管服务使用相同的工具集。它全程都是轻量级 REST 客户端:每个工具都会直接调用管理 API,因此你可以免费自行运行,且除非发布新版本,否则其功能始终与托管服务保持同步。

最重要的是 get_ping_instructions:Agent 调用 create_monitor,然后获取自己的 ping 命令,并将其接入自己的工作流程——一段对话即可完成,无需人工打开仪表板。

Ping API

每个监控项都有一个 URL。无需安装任何内容,也无需维护库;任何能发起 HTTP 请求的工具都可以上报。

发生的情况请求
成功完成POST <ping-url>
开始运行POST <ping-url>/start
失败POST <ping-url>/fail,并在请求正文中附上错误信息
以某个代码退出POST <ping-url>/<exit-code>
等待人工处理POST <ping-url>/blocked
值得记录的进度POST <ping-url>/note

添加 ?rid=<id>,将一次运行的开始与结果关联起来,以便 LastPing 将该运行的 ping 分组并计时。

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

POST https://ping.lastping.dev/v1/traces 接受 OTLP/HTTP 导出数据(application/x-protobuf 或 application/json,也接受 gzip),并使用 Bearer 密钥(绑定到监控项的 ingest 密钥,通过 create_ingest_key 创建;也可以使用写入密钥或管理员密钥),或者对于无法设置请求头的导出器,使用 POST <ping-url>/v1/traces。Span 需要包含资源属性 lastping.monitor_id;若包含 lastping.run_id,则会关联到该运行;若不包含,则每条 trace 都会成为独立运行。解压后的载荷上限为 1 MiB,每个请求最多 500 个 Span,每次运行最多 2,000 个 Span。lastping run 会为你完成所有设置——详见上文的 Traces。

将监控作为代码管理

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

该 Provider 已发布在 Terraform Registry 上,名称为 lastping-dev/lastping,源代码位于 lastping-dev/terraform-provider-lastping。

链接

许可证

MIT。请参阅 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。