{"data":{"name":"dev.workers.dougalpaw.pawpulse/pawpulse","title":"Paw Pulse","description":"Heartbeat and tokens/sec monitoring for self-hosted LLM servers (Ollama etc.), with down alerts.","version":"0.3.0","websiteUrl":"https://pawpulse.dougalpaw.workers.dev","repositoryUrl":"https://github.com/dougal-paw/pawpulse","remotes":[{"url":"https://pawpulse.dougalpaw.workers.dev/mcp","type":"streamable-http"}],"packages":[],"status":"active","isLatest":true,"publishedAt":"2026-10-17T09:03:07.540Z","updatedAt":"2026-10-17T09:03:07.540Z","source":"official-registry","verification":"official","confidence":100,"stars":null,"sources":[{"stars":null,"title":"Paw Pulse","source":"official-registry","sourceId":"dev.workers.dougalpaw.pawpulse/pawpulse","updatedAt":"2026-10-17T09:03:07.540Z","confidence":100,"websiteUrl":"https://pawpulse.dougalpaw.workers.dev","description":"Heartbeat and tokens/sec monitoring for self-hosted LLM servers (Ollama etc.), with down alerts.","verification":"official","repositoryUrl":"https://github.com/dougal-paw/pawpulse"}],"toolIndex":{"tools":[{"serverName":"dev.workers.dougalpaw.pawpulse/pawpulse","endpointFingerprint":"5a8ffa22a91984889bdf45a370d99ee6687186fb2ca2c706f01550e177f206b9","name":"create_monitor","title":"Create monitor","description":"Create a new anonymous Paw Pulse monitor. Returns ingest_token and manage_token exactly once — store them, they cannot be recovered.","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"Display name, not treated as identifying."},"grace_seconds":{"type":"number","description":"60-86400, default 300."},"slow_tps_threshold":{"type":"number","description":"Optional tokens/sec floor."},"min_gpu_pct":{"type":"number","description":"Optional GPU offload floor (0-100]. Alerts 'slow' when Ollama runs a model mostly on CPU."},"webhook_url":{"type":"string","description":"Optional https:// webhook for alerts."},"public":{"type":"boolean","description":"Whether /v1/monitors/:id/status and /s/:id are public."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"definitionHash":"01a68595e932a1de0d93f1acaa28db427f40409a525cf7e58c0111311d72a4ba","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-31T07:46:15.441Z","metadataTrust":"untrusted"},{"serverName":"dev.workers.dougalpaw.pawpulse/pawpulse","endpointFingerprint":"5a8ffa22a91984889bdf45a370d99ee6687186fb2ca2c706f01550e177f206b9","name":"delete_monitor","title":"Delete monitor","description":"Permanently delete a monitor and all its heartbeats. Cannot be undone.","inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"Monitor id, as returned by create_monitor."},"manage_token":{"type":"string","description":"The monitor's manage_token (returned once by create_monitor)."}},"required":["id","manage_token"]},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true,"openWorldHint":false},"definitionHash":"ddb1e91059a525341a09dad3bb489bd53a90fca1cb746bfe704d9428d8c78a39","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-31T07:46:15.441Z","metadataTrust":"untrusted"},{"serverName":"dev.workers.dougalpaw.pawpulse/pawpulse","endpointFingerprint":"5a8ffa22a91984889bdf45a370d99ee6687186fb2ca2c706f01550e177f206b9","name":"get_status","title":"Get monitor status","description":"Get the current status of a monitor. Private monitors require manage_token.","inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"Monitor id, as returned by create_monitor."},"manage_token":{"type":"string","description":"The monitor's manage_token (returned once by create_monitor)."}},"required":["id"]},"annotations":{"readOnlyHint":true,"openWorldHint":false},"definitionHash":"be30e348de66882baffd39995eeda1e929aa73205129958f92b23bb47e2e3a06","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-31T07:46:15.441Z","metadataTrust":"untrusted"},{"serverName":"dev.workers.dougalpaw.pawpulse/pawpulse","endpointFingerprint":"5a8ffa22a91984889bdf45a370d99ee6687186fb2ca2c706f01550e177f206b9","name":"list_heartbeats","title":"List recent heartbeats","description":"List recent heartbeats for a monitor (newest first). Private monitors require manage_token.","inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"Monitor id, as returned by create_monitor."},"manage_token":{"type":"string","description":"The monitor's manage_token (returned once by create_monitor)."},"limit":{"type":"number","description":"1-500, default 50."}},"required":["id"]},"annotations":{"readOnlyHint":true,"openWorldHint":false},"definitionHash":"38342c5616be8ec292608a3fadeb5cd0f405307a1a2d42305316e04b8c475f75","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-31T07:46:15.441Z","metadataTrust":"untrusted"},{"serverName":"dev.workers.dougalpaw.pawpulse/pawpulse","endpointFingerprint":"5a8ffa22a91984889bdf45a370d99ee6687186fb2ca2c706f01550e177f206b9","name":"setup_instructions","title":"Get 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.","inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"Monitor id, as returned by create_monitor."},"ingest_token":{"type":"string","description":"The monitor's ingest_token (returned once by create_monitor)."},"llm_kind":{"type":"string","enum":["ollama","openai","none"],"description":"none = plain heartbeat, no LLM probe. Default ollama."}},"required":["id","ingest_token"]},"annotations":{"readOnlyHint":true,"openWorldHint":false},"definitionHash":"7369b4d54c57444b647385c9bee90ce817bbf747d12145e9d5b080c96790bbfc","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-31T07:46:15.441Z","metadataTrust":"untrusted"},{"serverName":"dev.workers.dougalpaw.pawpulse/pawpulse","endpointFingerprint":"5a8ffa22a91984889bdf45a370d99ee6687186fb2ca2c706f01550e177f206b9","name":"update_monitor","title":"Update monitor settings","description":"Change a monitor's name, grace period, slow threshold, webhook or visibility. Only the fields you pass change.","inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"Monitor id, as returned by create_monitor."},"manage_token":{"type":"string","description":"The monitor's manage_token (returned once by create_monitor)."},"name":{"type":"string","description":"New display name."},"grace_seconds":{"type":"number","description":"60-86400."},"slow_tps_threshold":{"type":["number","null"],"description":"Tokens/sec floor, or null to clear."},"min_gpu_pct":{"type":["number","null"],"description":"GPU offload floor (0-100], or null to clear."},"webhook_url":{"type":["string","null"],"description":"https:// webhook, or null to clear."},"public":{"type":"boolean"}},"required":["id","manage_token"]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"definitionHash":"6d5687dfa678f50f20ebb0cec6b67187290addcc3114db7308f3f5b5aa5aecd1","schemaStatus":"valid","origin":"official-registry","observedAt":"2026-10-31T07:46:15.441Z","metadataTrust":"untrusted"}],"endpoints":[{"endpointFingerprint":"5a8ffa22a91984889bdf45a370d99ee6687186fb2ca2c706f01550e177f206b9","protocol":"streamable-http","status":"indexed","toolCount":6,"observedAt":"2026-10-31T07:46:15.441Z"}],"authentication":"unknown"},"connectionConfigurations":{"status":"ready","authentication":"not embedded","clients":{"Claude Desktop":{"mcpServers":{"dev.workers.dougalpaw.pawpulse/pawpulse":{"url":"https://pawpulse.dougalpaw.workers.dev/mcp"}}},"Cursor":{"mcpServers":{"dev.workers.dougalpaw.pawpulse/pawpulse":{"url":"https://pawpulse.dougalpaw.workers.dev/mcp"}}},"VS Code":{"servers":{"dev.workers.dougalpaw.pawpulse/pawpulse":{"type":"http","url":"https://pawpulse.dougalpaw.workers.dev/mcp"}}}}},"resourceType":"mcp-server","callable":true,"runtime":{"callable":true,"protocols":["mcp"]},"interfaces":[{"protocol":"mcp","transport":"streamable-http","url":"https://pawpulse.dougalpaw.workers.dev/mcp"}],"profile":{"apiVersion":"1","schemaVersion":"1","id":"mcp-server:dev.workers.dougalpaw.pawpulse%2Fpawpulse","resourceType":"mcp-server","canonicalUrl":"https://www.agentsjunction.com/api/v1/servers/dev.workers.dougalpaw.pawpulse%2Fpawpulse","name":"dev.workers.dougalpaw.pawpulse/pawpulse","description":"Heartbeat and tokens/sec monitoring for self-hosted LLM servers (Ollama etc.), with down alerts.","interfaces":[{"protocol":"mcp","transport":"streamable-http","url":"https://pawpulse.dougalpaw.workers.dev/mcp"}],"capabilities":[],"identity":{"source":"official-registry","websiteUrl":"https://pawpulse.dougalpaw.workers.dev","repositoryUrl":"https://github.com/dougal-paw/pawpulse","version":"0.3.0"},"verification":{"state":"official","confidence":100},"operations":{"resourceType":"mcp-server","name":"dev.workers.dougalpaw.pawpulse/pawpulse","status":"online","lastCheckedAt":"2026-11-03T17:19:12.309Z","lastSuccessfulCheck":"2026-11-03T17:19:12.309Z","latencyMs":396,"consecutiveFailures":0,"isStale":false,"checks":{"endpointReachable":true,"protocolValid":true,"agentCardValid":null,"mcpHandshakeValid":true},"lastSeen":null,"lastSuccessfulInteraction":null,"lastHealthCheck":"2026-11-03T17:19:12.309Z","source":{"type":"health-check","url":null},"observedAt":"2026-11-03T17:19:12.309Z"},"security":null,"timestamps":{"createdAt":"2026-10-17T09:03:07.540Z","updatedAt":"2026-10-17T09:03:07.540Z","observedAt":"2026-11-03T17:19:12.309Z"},"compatibility":{"serverVersion":"0.3.0","protocolVersions":[{"protocol":"mcp","version":null}]}}}}