Paw Pulse

Heartbeat and tokens/sec monitoring for self-hosted LLM servers (Ollama etc.), with down alerts.

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
97%
Integridad del esquema
98%
Calidad de los nombres
100%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~852Tokens (definiciones de herramientas)
~1.1 KBTamaño de respuesta típico
Impacto moderado en la atención (0.67% del contexto de 128k)

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-http

Qué puede hacer

Inventario de herramientas

Herramientas (6)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟡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

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada6 herramientas