The monitor your agents set up for themselves.
LastPing's MCP server lets an AI agent create its own dead-man's-switch
monitor in a single conversation — calling create_monitor and
get_ping_instructions to wire in the check-in pings on the spot.
Nothing to install. Hosted at mcp.lastping.dev (Streamable HTTP).
Works with Claude, Cursor, and Windsurf.
Connect your client — copy and paste
The server speaks Model Context Protocol over Streamable HTTP. Add a URL and a Bearer token — nothing else to install. Get an API key at app.lastping.dev → Settings → API Keys.
Add to claude_desktop_config.json
(macOS: ~/Library/Application Support/Claude/):
One command — adds LastPing to your user-scope MCP config:
Add to ~/.cursor/mcp.json (user-scope)
or .cursor/mcp.json (project-scope):
Add to ~/.codeium/windsurf/mcp_config.json
(note: Windsurf uses serverUrl):
One conversation. The agent instruments itself.
The MCP server closes the loop: the agent doesn't just read monitoring data, it creates the monitor and wires in the pings. Three tool calls. No dashboard. No human in the loop.
Create the monitor
Call create_monitor with a name, a stable
slug (makes re-runs idempotent — upsert, not
duplicate), and a schedule. Heartbeat monitors expect a ping
every N seconds or on a cron; CI monitors track pipeline runs;
HTTP monitors probe a URL.
Get ping snippets
Call get_ping_instructions with the monitor's UUID.
The tool returns the ping URL plus ready-to-run
curl_success, curl_start, and
curl_fail commands — no URL construction, no
format guessing. This is the tool that makes one-conversation
self-instrumentation possible.
Wire pings into the work
The agent adds the success ping to the end of its workflow, the fail ping on any error path, and the start ping at launch to arm overrun detection. From that point on — crash, hang, or a scheduled run that silently stops firing — LastPing opens an incident and alerts the operator. No human check-in required.
14 tools — the full MCP surface
Every tool is implemented in
github.com/tp322d/lastping-app
and ships in both the hosted server and the self-host stdio binary.
-
Monitors
create_monitor— create or upsert a monitor by slug (heartbeat · ci · http); upsert-by-slug makes it idempotent and safe for agents to retrylist_monitors— list all monitors in the project with id, name, slug, status, and ping_urlget_monitor— get a single monitor's full config by UUIDupdate_monitor— update an existing monitor's schedule and config by UUIDdelete_monitor— permanently delete a monitor (cannot be undone)pause_monitor— pause alerting; the monitor still receives pings but does not open incidentsresume_monitor— resume a paused monitor; alerting resumes on the next missed pingsnooze_monitor— set or clear a maintenance window (by duration e.g. "1h", RFC 3339 timestamp, or clear=true) -
Incidents
list_incidents— list recent incidents for a monitor, newest first; an open incident hasclosed_at=null; includes the failure detail captured by the CI/CD integration or a/failping -
Destinations
list_destinations— list all notification destinations in the project (email, webhook, Slack, Discord, Telegram, ntfy, Pushover, Teams, Google Chat)create_destination— create a notification destination; non-email kinds are ready immediately; email sends a confirmation link before it can be routedtest_destination— deliver a synthetic test alert through a destination to verify credentials before routing -
Routing
set_route— route a monitor'sdown/recovery/failalerts to a set of destinations; replaces the full set for that event type; empty list clears routing -
Self-instrumentation
get_ping_instructions— the flagship tool: returns the monitor's ping URL plus ready-to-runcurl_success,curl_start, andcurl_failsnippets. Call this right aftercreate_monitor. The agent creates a monitor and immediately receives the check-in code to embed in its own workflow — one conversation, zero dashboards.
Ping API (plain HTTP, no SDK needed): GET /<id> (success) ·
/<id>/start (arms overrun detection) ·
/<id>/fail (POST error body, up to 64 KB, stored on the incident) ·
/<id>/<exit-code> (0 = success, non-zero = fail) ·
?rid=<run-id> (pair start with its later success/fail, record duration).
All pings hit https://ping.lastping.dev/.
Prompt cookbook — ask your agent
These prompts work out of the box once LastPing MCP is connected. Paste as-is or adapt for your stack.
"Monitor my nightly Postgres backup and alert me on Telegram if it doesn't check in by 3am."
uses: create_monitor · create_destination · test_destination · set_route · get_ping_instructions
"Add a LastPing dead-man's-switch to the deploy pipeline you just wrote — daily at midnight, 30-minute grace."
uses: create_monitor · get_ping_instructions
"Create a monitor for this nightly summary agent — runs at 2am UTC, alert me on Slack if it goes silent or fails."
uses: create_monitor · create_destination · test_destination · set_route · get_ping_instructions
"Check all my monitors. Which ones have had incidents in the past week?"
uses: list_monitors · list_incidents
"Snooze the nightly-backup monitor for 4 hours while I run a maintenance window."
uses: list_monitors · snooze_monitor
"Set up a LastPing HTTP uptime monitor for api.example.com, probing every 60 seconds."
uses: create_monitor
"Create a webhook destination for my on-call endpoint and route the production-deploy monitor's down and fail events to it."
uses: list_monitors · create_destination · test_destination · set_route
"Instrument yourself: register a heartbeat for this agent at '0 6 * * *' (6am daily, 45-minute grace), get the ping snippets, and add them to your run loop."
uses: create_monitor · get_ping_instructions
Prefer to self-host? Use the stdio binary.
The same 14 tools are available as a single Go binary — no npm, no runtime, no Docker required. MIT-licensed and open source at github.com/tp322d/lastping-app.
Install
Add to your client config (stdio)
Replace the url + headers block with
command + env in your
claude_desktop_config.json or .mcp.json:
Optional env vars: LASTPING_BASE_URL
(default: https://app.lastping.dev) and
LASTPING_PING_HOST
(default: https://ping.lastping.dev)
— useful when running a self-hosted LastPing instance.
Questions
Front-loaded answers — the most important fact first.
-
What is the LastPing MCP server?
A hosted Model Context Protocol endpoint at
https://mcp.lastping.dev(Streamable HTTP). Point your AI client at it with a Bearer API key and the agent gains 14 tools for creating monitors, querying incidents, managing alert destinations, configuring routing, and — the flagship — instrumenting its own dead-man's-switch check-in loop. Nothing to install; get a key at app.lastping.dev. -
How is this different from other monitoring MCP servers?
Competitors (Hyperping, Checkly, Sentry, Cronitor) ship MCP servers for reading and triaging existing monitors created by humans. LastPing is designed for agent-created monitoring: the agent calls
create_monitorto register its own heartbeat, thenget_ping_instructionsto receive ready-to-runcurl_success/curl_start/curl_failsnippets — and wires them into its own workflow. The agent owns the monitor it set up. No dashboard visit required. -
Which AI clients are supported?
Any client supporting Streamable HTTP MCP: Claude Desktop, Claude Code (
claude mcp add --transport http …), Cursor, and Windsurf. For stdio (local process), any client supporting stdio-based MCP — configure withcommand+envinstead ofurl+headersusing thego installbinary described in the self-host section above. -
Does the agent need an SDK or library to send pings?
No. The MCP server is for creating and managing monitors. Once a monitor exists, pinging it is a plain HTTP
GETtohttps://ping.lastping.dev/<uuid>. Theget_ping_instructionstool returns ready-to-runcurlcommands the agent can embed in any shell script, tool call, or workflow step. No SDK, no import, no language dependency — one HTTP request is all that is needed. -
Is the LastPing MCP server free?
Yes. LastPing is free for individuals — no monitor cap, no feature gate. The hosted MCP server at
mcp.lastping.devis included. The open-source stdio binary is MIT-licensed. Get an API key at app.lastping.dev → Settings → API Keys.
Let your agent set up its own monitor.
Get a free API key, paste one config block, and your agent gains 14 tools for creating and managing dead-man's-switch monitors — no dashboard, no human in the loop.