{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_45usg2udvpky","handle":"com-dougalpaw-paw-pulse","url":"https://wellknown.network/agents/com-dougalpaw-paw-pulse","links":{"self":"https://wellknown.network/agents/com-dougalpaw-paw-pulse/record.json","html":"https://wellknown.network/agents/com-dougalpaw-paw-pulse","markdown":"https://wellknown.network/agents/com-dougalpaw-paw-pulse/record.md","api":"https://wellknown.network/api/v1/agents/com-dougalpaw-paw-pulse","status":"https://wellknown.network/api/v1/agents/com-dougalpaw-paw-pulse/status","claim":"https://wellknown.network/agents/com-dougalpaw-paw-pulse/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/com-dougalpaw-paw-pulse/claim.json","badge":"https://wellknown.network/agents/com-dougalpaw-paw-pulse/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/com-dougalpaw-paw-pulse/history","tools":"https://wellknown.network/api/v1/agents/com-dougalpaw-paw-pulse/tools"},"ard":{"identifier":"urn:air:pulse.dougalpaw.com:server:com-dougalpaw-paw-pulse","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"Paw Pulse","summary":"Heartbeat and tokens/sec monitoring for self-hosted LLM servers (Ollama etc.), with down alerts.","description":"Heartbeat and tokens/sec monitoring for self-hosted LLM servers (Ollama etc.), with down alerts.","publisher":{"name":"com.dougalpaw","url":null},"homepage":"https://pulse.dougalpaw.com","repository":"https://github.com/dougal-paw/pawpulse","version":"0.3.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://pulse.dougalpaw.com/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-10-20T09:02:21.579332Z","publishedAt":"2026-10-20T09:02:21.579332Z","registryName":"com.dougalpaw/pawpulse"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","repoUrl":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"dev.terminal","name":"Terminal & Shell","confidence":1,"provenance":"derived"},{"slug":"communication.notifications","name":"Notifications","confidence":0.9,"provenance":"derived"}],"categories":["communication","dev"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 4h ago.","lastOkAt":"2026-10-24T00:27:10.040Z","lastProbedAt":"2026-10-24T00:27:10.040Z","statusComputedAt":"2026-10-24T00:29:37.742Z","reliability30d":{"probes":9,"successRate":1,"p50Ms":50,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":9,"ok":9,"authBoundaryOk":0,"serviceOk":9,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-24T00:27:10.040Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":33,"error":null,"detail":{"tools":[{"name":"create_monitor","description":"Create a new anonymous Paw Pulse monitor. Returns ingest_token and manage_token exactly once — store them, they cannot be recovered."},{"name":"get_status","description":"Get the current status of a monitor. Private monitors require manage_token."},{"name":"list_heartbeats","description":"List recent heartbeats for a monitor (newest first). Private monitors require manage_token."},{"name":"update_monitor","description":"Change a monitor's name, grace period, slow threshold, webhook or visibility. Only the fields you pass change."},{"name":"delete_monitor","description":"Permanently delete a monitor and all its heartbeats. Cannot be undone."},{"name":"setup_instructions","description":"Shell commands to install the heartbeat script on the box being monitored and run it from cron. Pass the id and ingest_token from create_monitor."}],"toolCount":6,"toolsHash":"28600b1ab851a60af8618543f883dba4067237df0174f8f9d66f810f777c44e0","serverName":"pawpulse","capabilities":["tools","resources","prompts"],"serverVersion":"0.3.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-23T18:25:59.731Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":140,"error":null,"detail":{"tools":[{"name":"create_monitor","description":"Create a new anonymous Paw Pulse monitor. Returns ingest_token and manage_token exactly once — store them, they cannot be recovered."},{"name":"get_status","description":"Get the current status of a monitor. Private monitors require manage_token."},{"name":"list_heartbeats","description":"List recent heartbeats for a monitor (newest first). Private monitors require manage_token."},{"name":"update_monitor","description":"Change a monitor's name, grace period, slow threshold, webhook or visibility. Only the fields you pass change."},{"name":"delete_monitor","description":"Permanently delete a monitor and all its heartbeats. Cannot be undone."},{"name":"setup_instructions","description":"Shell commands to install the heartbeat script on the box being monitored and run it from cron. Pass the id and ingest_token from create_monitor."}],"toolCount":6,"toolsHash":"28600b1ab851a60af8618543f883dba4067237df0174f8f9d66f810f777c44e0","serverName":"pawpulse","capabilities":["tools","resources","prompts"],"serverVersion":"0.3.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-23T11:25:41.553Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":42,"error":null,"detail":{"tools":[{"name":"create_monitor","description":"Create a new anonymous Paw Pulse monitor. Returns ingest_token and manage_token exactly once — store them, they cannot be recovered."},{"name":"get_status","description":"Get the current status of a monitor. Private monitors require manage_token."},{"name":"list_heartbeats","description":"List recent heartbeats for a monitor (newest first). Private monitors require manage_token."},{"name":"update_monitor","description":"Change a monitor's name, grace period, slow threshold, webhook or visibility. Only the fields you pass change."},{"name":"delete_monitor","description":"Permanently delete a monitor and all its heartbeats. Cannot be undone."},{"name":"setup_instructions","description":"Shell commands to install the heartbeat script on the box being monitored and run it from cron. Pass the id and ingest_token from create_monitor."}],"toolCount":6,"toolsHash":"28600b1ab851a60af8618543f883dba4067237df0174f8f9d66f810f777c44e0","serverName":"pawpulse","capabilities":["tools","resources","prompts"],"serverVersion":"0.3.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-23T04:25:55.724Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":21,"error":null,"detail":{"tools":[{"name":"create_monitor","description":"Create a new anonymous Paw Pulse monitor. Returns ingest_token and manage_token exactly once — store them, they cannot be recovered."},{"name":"get_status","description":"Get the current status of a monitor. Private monitors require manage_token."},{"name":"list_heartbeats","description":"List recent heartbeats for a monitor (newest first). Private monitors require manage_token."},{"name":"update_monitor","description":"Change a monitor's name, grace period, slow threshold, webhook or visibility. Only the fields you pass change."},{"name":"delete_monitor","description":"Permanently delete a monitor and all its heartbeats. Cannot be undone."},{"name":"setup_instructions","description":"Shell commands to install the heartbeat script on the box being monitored and run it from cron. Pass the id and ingest_token from create_monitor."}],"toolCount":6,"toolsHash":"28600b1ab851a60af8618543f883dba4067237df0174f8f9d66f810f777c44e0","serverName":"pawpulse","capabilities":["tools","resources","prompts"],"serverVersion":"0.3.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-22T21:31:39.264Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":36,"error":null,"detail":{"tools":[{"name":"create_monitor","description":"Create a new anonymous Paw Pulse monitor. Returns ingest_token and manage_token exactly once — store them, they cannot be recovered."},{"name":"get_status","description":"Get the current status of a monitor. Private monitors require manage_token."},{"name":"list_heartbeats","description":"List recent heartbeats for a monitor (newest first). Private monitors require manage_token."},{"name":"update_monitor","description":"Change a monitor's name, grace period, slow threshold, webhook or visibility. Only the fields you pass change."},{"name":"delete_monitor","description":"Permanently delete a monitor and all its heartbeats. Cannot be undone."},{"name":"setup_instructions","description":"Shell commands to install the heartbeat script on the box being monitored and run it from cron. Pass the id and ingest_token from create_monitor."}],"toolCount":6,"toolsHash":"28600b1ab851a60af8618543f883dba4067237df0174f8f9d66f810f777c44e0","serverName":"pawpulse","capabilities":["tools","resources","prompts"],"serverVersion":"0.3.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-22T15:33:29.050Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":53,"error":null,"detail":{"tools":[{"name":"create_monitor","description":"Create a new anonymous Paw Pulse monitor. Returns ingest_token and manage_token exactly once — store them, they cannot be recovered."},{"name":"get_status","description":"Get the current status of a monitor. Private monitors require manage_token."},{"name":"list_heartbeats","description":"List recent heartbeats for a monitor (newest first). Private monitors require manage_token."},{"name":"update_monitor","description":"Change a monitor's name, grace period, slow threshold, webhook or visibility. Only the fields you pass change."},{"name":"delete_monitor","description":"Permanently delete a monitor and all its heartbeats. Cannot be undone."},{"name":"setup_instructions","description":"Shell commands to install the heartbeat script on the box being monitored and run it from cron. Pass the id and ingest_token from create_monitor."}],"toolCount":6,"toolsHash":"28600b1ab851a60af8618543f883dba4067237df0174f8f9d66f810f777c44e0","serverName":"pawpulse","capabilities":["tools","resources","prompts"],"serverVersion":"0.3.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-22T08:29:08.333Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":70,"error":null,"detail":{"tools":[{"name":"create_monitor","description":"Create a new anonymous Paw Pulse monitor. Returns ingest_token and manage_token exactly once — store them, they cannot be recovered."},{"name":"get_status","description":"Get the current status of a monitor. Private monitors require manage_token."},{"name":"list_heartbeats","description":"List recent heartbeats for a monitor (newest first). Private monitors require manage_token."},{"name":"update_monitor","description":"Change a monitor's name, grace period, slow threshold, webhook or visibility. Only the fields you pass change."},{"name":"delete_monitor","description":"Permanently delete a monitor and all its heartbeats. Cannot be undone."},{"name":"setup_instructions","description":"Shell commands to install the heartbeat script on the box being monitored and run it from cron. Pass the id and ingest_token from create_monitor."}],"toolCount":6,"toolsHash":"1101ed2807aea87b655f68cdbee13af5e4d6bdad0aa38e4636f07b971e77249b","serverName":"pawpulse","capabilities":["tools","resources","prompts"],"serverVersion":"0.3.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-22T02:32:03.698Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":19,"error":null,"detail":{"tools":[{"name":"create_monitor","description":"Create a new anonymous Paw Pulse monitor. Returns ingest_token and manage_token exactly once — store them, they cannot be recovered."},{"name":"get_status","description":"Get the current status of a monitor. Private monitors require manage_token."},{"name":"list_heartbeats","description":"List recent heartbeats for a monitor (newest first). Private monitors require manage_token."},{"name":"update_monitor","description":"Change a monitor's name, grace period, slow threshold, webhook or visibility. Only the fields you pass change."},{"name":"delete_monitor","description":"Permanently delete a monitor and all its heartbeats. Cannot be undone."},{"name":"setup_instructions","description":"Shell commands to install the heartbeat script on the box being monitored and run it from cron. Pass the id and ingest_token from create_monitor."}],"toolCount":6,"toolsHash":"1101ed2807aea87b655f68cdbee13af5e4d6bdad0aa38e4636f07b971e77249b","serverName":"pawpulse","capabilities":["tools","resources","prompts"],"serverVersion":"0.3.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-21T20:30:46.316Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":82,"error":null,"detail":{"tools":[{"name":"create_monitor","description":"Create a new anonymous Paw Pulse monitor. Returns ingest_token and manage_token exactly once — store them, they cannot be recovered."},{"name":"get_status","description":"Get the current status of a monitor. Private monitors require manage_token."},{"name":"list_heartbeats","description":"List recent heartbeats for a monitor (newest first). Private monitors require manage_token."},{"name":"update_monitor","description":"Change a monitor's name, grace period, slow threshold, webhook or visibility. Only the fields you pass change."},{"name":"delete_monitor","description":"Permanently delete a monitor and all its heartbeats. Cannot be undone."},{"name":"setup_instructions","description":"Shell commands to install the heartbeat script on the box being monitored and run it from cron. Pass the id and ingest_token from create_monitor."}],"toolCount":6,"toolsHash":"1101ed2807aea87b655f68cdbee13af5e4d6bdad0aa38e4636f07b971e77249b","serverName":"pawpulse","capabilities":["tools","resources","prompts"],"serverVersion":"0.3.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"create_monitor","description":"Create a new anonymous Paw Pulse monitor. Returns ingest_token and manage_token exactly once — store them, they cannot be recovered."},{"name":"get_status","description":"Get the current status of a monitor. Private monitors require manage_token."},{"name":"list_heartbeats","description":"List recent heartbeats for a monitor (newest first). Private monitors require manage_token."},{"name":"update_monitor","description":"Change a monitor's name, grace period, slow threshold, webhook or visibility. Only the fields you pass change."},{"name":"delete_monitor","description":"Permanently delete a monitor and all its heartbeats. Cannot be undone."},{"name":"setup_instructions","description":"Shell commands to install the heartbeat script on the box being monitored and run it from cron. Pass the id and ingest_token from create_monitor."}],"package":null,"toolSurface":{"id":"ts_2ccfzwc6ysq9","endpointId":"ep_uwvubgq8jg5k","hash":"28600b1ab851a60af8618543f883dba4067237df0174f8f9d66f810f777c44e0","toolCount":6,"serverName":"pawpulse","serverVersion":"0.3.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-22T15:33:29.058Z","lastSeenAt":"2026-10-24T00:27:10.036Z","observations":6,"toolNames":["create_monitor","get_status","list_heartbeats","update_monitor","delete_monitor","setup_instructions"],"distinctSurfaces":2},"endpointFacts":[]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"com.dougalpaw/pawpulse","url":"https://registry.modelcontextprotocol.io/v0/servers/com.dougalpaw%2Fpawpulse","firstSeenAt":"2026-10-21T17:19:26.272Z","fetchedAt":"2026-10-21T17:19:26.272Z","normalizedAt":"2026-10-21T17:19:26.272Z"}]},"firstSeenAt":"2026-10-21T17:19:26.272Z","updatedAt":"2026-10-24T00:31:47.725Z"}