Paw Pulse
Heartbeat and tokens/sec monitoring for self-hosted LLM servers (Ollama etc.), with down alerts.
¿Debería usar esto?
Calidad y seguridad
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"pawpulse": {
"url": "https://pulse.dougalpaw.com/mcp"
}
}
}Puntos de conexión remotos
https://pulse.dougalpaw.com/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (6)
🟡create_monitor(name, grace_seconds, slow_tps_threshold, webhook_url, public)
Create a new anonymous Paw Pulse monitor. Returns ingest_token and manage_token exactly once — store them, they cannot be recovered.
Esquema de entrada
{
"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."
},
"webhook_url": {
"type": "string",
"description": "Optional https:// webhook for alerts."
},
"public": {
"type": "boolean",
"description": "Whether /v1/monitors/:id/status and /s/:id are public."
}
}
}🟢get_status(id, manage_token)
Get the current status of a monitor. Private monitors require manage_token.
Esquema de entrada
{
"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"
]
}🟢list_heartbeats(id, manage_token, limit)
List recent heartbeats for a monitor (newest first). Private monitors require manage_token.
Esquema de entrada
{
"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"
]
}🟡update_monitor(id, manage_token, name, grace_seconds, slow_tps_threshold, ...)
Change a monitor's name, grace period, slow threshold, webhook or visibility. Only the fields you pass change.
Esquema de entrada
{
"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."
},
"webhook_url": {
"type": [
"string",
"null"
],
"description": "https:// webhook, or null to clear."
},
"public": {
"type": "boolean"
}
},
"required": [
"id",
"manage_token"
]
}🔴delete_monitor(id, manage_token)
Permanently delete a monitor and all its heartbeats. Cannot be undone.
Esquema de entrada
{
"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"
]
}🟢setup_instructions(id, ingest_token, llm_kind)
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.
Esquema de entrada
{
"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"
]
}Comunidad
Evidencia