LastPing
dev.lastpingPublished by lastping.devOfficial publisherv0.2.2Updated Oct 24, 2026
AI agent monitoring: alerts when your agents fail, stall or need you
Overview
LastPing is a hosted monitoring service whose MCP server lets an AI assistant create, read and manage check-in monitors, incidents and alerts for agents and job
- What you can do
- Create, read, update, pause, snooze and delete monitors, and discover existing ones to reconcile them with the agent's own setup. Retrieve ping instructions and declare run expectations so an agent can wire reporting into its own work. Inspect incidents, run history, single runs with timelines and spans, and open incidents, adding notes to them. Configure tracing: get trace setup steps, create ingest keys bound to a monitor, and diagnose refused spans. Manage alert routing, destinations, alert templates, delivery logs, status pages and API keys, and export configuration as Terraform. Register and track agents, their dependencies and usage, and adopt discovered agents.
- When to use it
- Use it when you run AI agents, cron jobs or CI/CD pipelines and want to be alerted when they fail, stall, wait for approval or never start. It suits letting an assistant set up and read its own monitoring in one conversation without opening a dashboard.
- Requirements
- A remote MCP endpoint at mcp.lastping.dev over streamable HTTP, with OAuth sign-in or an Authorization header carrying a LastPing API key. A LastPing account is needed; keys are created in the app settings. Some clients need the mcp-remote bridge and Node.js, or the Claude Desktop extension. A self-hosted stdio binary is also offered.
Installation
In SourceWeft
- Open LastPing in the dashboard and add it to a workspace.
- Connect the required credentials. They are stored privately and never shown on public pages.
- Enable the server for the chats that should use its tools.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Use with an agent
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/dev.lastping%2Flastping/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.Other MCP clients
Add this to your client's mcpServers config. The client completes OAuth sign-in on first connect.
{
"mcpServers": {
"lastping": {
"type": "http",
"url": "https://mcp.lastping.dev/mcp"
}
}
}README
[Website] [MCP server docs] [API docs] [Status]
[Release] [License: MIT] [Go 1.26] [Terraform: lastping-dev/lastping] [Free for individuals]
LastPing alerts you when your AI agents fail, stall, wait for your approval or never start, and watches the cron jobs and CI/CD pipelines around them. Free for individuals.
Most monitoring watches a thing and tells you when it looks wrong. LastPing waits for a thing to check in and tells you when it doesn't. That inversion is the whole product: a job that breaks can't send you an error, but it can fail to send you anything, and absence is the one signal a broken process can still produce.
This repository holds the client pieces: the lastping CLI, which wraps
any command and reports its start, exit code and traces, and the MCP server,
which lets an AI agent set up and read its own monitoring. The hosted service
they talk to is at lastping.dev, free for
individuals.
Quick start
Create the monitor, and get its id, at app.lastping.dev, or let your assistant do it over MCP. Connect steps for each client are at lastping.dev/mcp/.
Install
No Go toolchain needed — that pulls a prebuilt binary for macOS and Linux, on amd64 and arm64, and verifies its checksum. Windows builds are on the releases page.
If you do have Go:
lastping run — reporting you can't forget
Put it in front of whatever you already run:
It sends a start ping, runs your command untouched, and reports the exit code when it finishes — success on 0, failure on anything else, with the tail of stderr attached so the alert says why.
Three properties worth knowing, because they are the difference between a monitoring wrapper you can trust in production and one you remove after a bad night:
- Your exit code always propagates. The wrapper exits with whatever your command exited with, so CI behaves exactly as it did before you added it.
- A failed ping never touches your command. If LastPing is unreachable, your job still runs, still writes its output, still exits normally.
- Interactive stays interactive. stdin and stdout are handed over as file descriptors, so wrapping a REPL or an agent session works.
Why a wrapper rather than an instruction? Because anything advisory decays. An
AI agent told to report on every task will stop doing it, and a cron line you
meant to add a curl to never gets it. A wrapper reports from the process
lifecycle, so nothing depends on anybody remembering.
Traces
lastping run always configures your wrapped command's OpenTelemetry
exporter, in its environment only, so an auto-instrumented agent can export
its own trace spans with no code change:
OTEL_EXPORTER_OTLP_TRACES_ENDPOINT— the header-free monitor-URL form (<ping url>/v1/traces) whenLASTPING_API_KEYis not set, so a headerless exporter can still authenticate; the ping host's/v1/traces(the Bearer form) when it is set.OTEL_RESOURCE_ATTRIBUTES—lastping.monitor_id=<id>,lastping.run_id=<rid>appended to whatever you already set, so a trace's spans join the same run the surrounding pings report.OTEL_EXPORTER_OTLP_HEADERS—Authorization=Bearer <your key>, only whenLASTPING_API_KEYis set and you have not already set that variable yourself.
Any of the three you already set is left alone. The key is never used to authenticate a ping; the ping URL stays unauthenticated by design, as above.
MCP server — let an agent set up its own monitoring
Claude Desktop extension
A one-click install for Claude Desktop on macOS and Windows that keeps your key in the system keychain. It needs no Node.js.
- Download lastping.mcpb.
- Double-click it; Claude Desktop opens its install dialog.
- Paste a write-scope key from Settings, API keys at app.lastping.dev.
The extension runs this repository's stdio binary (below) on your computer.
It is built by mcpb/build.sh when a version is tagged, and every release is
signed; the release build fails rather than ship an unsigned bundle. The
certificate is self-signed, so Claude Desktop shows the extension as
unverified. The signature still proves the bundle came from this repository's
release pipeline and was not altered after it was signed. A local build of
mcpb/build.sh without the signing secrets is unsigned and says so.
MCPB_CERT_CA_ISSUED is kept for a future certificate from a public CA.
Claude Desktop through the mcp-remote bridge
Claude Desktop's config file runs local programs only, so LastPing connects
through the mcp-remote bridge. Add this to claude_desktop_config.json
(macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\):
- Needs Node.js. Claude Desktop does not read your shell's PATH, so give it
the full path: run
which npxin a terminal and put the result incommand(with nvm it looks like/Users/you/.nvm/versions/node/v22.11.0/bin/npx), and its folder at the front ofPATHinenv. - Quit and reopen Claude Desktop; it reads the file only at start-up. Settings, Connectors then lists lastping.
- Without a key, add LastPing as a custom connector instead (Customize,
Connectors, Add custom connector, then paste
https://mcp.lastping.dev/mcp) and sign in to LastPing in the browser. The same connector covers claude.ai, the Claude mobile apps and Cowork.
Other clients
Claude Code connects directly, no bridge:
claude mcp add --transport http --scope user lastping https://mcp.lastping.dev/mcp --header "Authorization: Bearer <key>".
Cursor, Windsurf, Codex CLI, Gemini CLI and other clients:
lastping.dev/mcp/#connect.
The hosted server is the recommended path, and it always carries the current tool set. Most clients connect by adding the URL and signing in to LastPing, with nothing to install; Cursor and Windsurf use the URL and an API key. With a key, Claude Desktop connects through the extension or the mcp-remote bridge above.
A stdio binary is also here if you would rather run it yourself:
Tools in this repository's stdio binary (50)
Monitors: create_monitor · get_monitor · list_monitors ·
update_monitor · delete_monitor · pause_monitor · resume_monitor ·
snooze_monitor
Discovery: discover_monitors_reconcile
Reporting: get_ping_instructions · declare_run_expectations
Incidents & runs: list_incidents · get_run_history · get_run
(one run's full timeline, assertion verdicts and spans) · list_runs
(runs across every monitor, traced runs included, with filters) ·
get_incident (one incident's recorded timeline)
Tracing: get_trace_setup (the set-up steps for one tool, from the server) ·
create_ingest_key (a tracing key bound to one monitor; a write key is
enough) · get_trace_diagnostics (why a sent span was refused)
Agent observability: get_agent_dependencies · get_agent_usage ·
list_dependencies · list_discovered_agents · adopt_discovered_agent
The failure loop: list_open_incidents · add_incident_note
Alert routing: set_route · delete_route
Delivery log: list_deliveries, recent alert deliveries across every
monitor, no paging
Destinations: list_destinations · create_destination ·
update_destination · test_destination · delete_destination
Alert templates: get_alert_templates · set_alert_template
Agent registry: register_agent · list_agents · get_agent ·
update_agent · delete_agent
Status pages: list_status_pages · create_status_page ·
update_status_page · delete_status_page
API keys: create_api_key (optional scope: read / write / admin / ingest) ·
list_api_keys · regenerate_api_key (new secret, same key; does not
cascade) · revoke_api_key (cascades to every key it created)
Terraform: export_terraform
This binary carries the same tool set as the hosted server at
mcp.lastping.dev. It is a thin REST client throughout: every tool is a
direct HTTP call to the management API, so it stays free to run yourself with
no lag behind the hosted surface beyond a new release.
The one that matters most is get_ping_instructions: an agent calls
create_monitor, then asks for its own ping commands, and wires them into its
own work — in one conversation, without a human opening a dashboard.
Ping API
Every monitor gets a URL. There is nothing to install and no library to keep current; anything that can make an HTTP request can report.
Add ?rid=<id> to pair a run's start with its result, so LastPing can group a
run's pings and time it.
Traces
POST https://ping.lastping.dev/v1/traces accepts an OTLP/HTTP export
(application/x-protobuf or application/json, gzip accepted) with a
Bearer key (an ingest key bound to the monitor, from create_ingest_key;
a write or admin key also works), or POST <ping-url>/v1/traces for exporters that
cannot set headers. Spans need the resource attribute lastping.monitor_id;
with lastping.run_id they join that run, and without it each trace becomes a
run of its own. A payload is capped at 1 MiB decompressed,
500 spans per request and 2,000 spans per run. lastping run sets all of
this up for you — see Traces above.
Monitoring as code
The provider is on the
Terraform Registry
as lastping-dev/lastping, with source at
lastping-dev/terraform-provider-lastping.
Links
- lastping.dev — the hosted service, free for individuals
- AI agent monitoring — the agent-first guide
- MCP server — connect configs per client
- Terraform provider — monitoring as code
- Integration guides — cron, Kubernetes, systemd, GitHub Actions, Python, Node
License
MIT. See LICENSE.
Source: README.md at commit 253f01a
Tools
0Version history
4- v0.2.2LatestOct 13, 2026
- v0.2.1Oct 13, 2026
- v0.2.0Oct 2, 2026
- v0.1.0Sep 16, 2026
Score
85% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 daysRequired25 pts
- Auth declaredRequired10 pts
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts