Dead Man's Snitch MCP by usefulapi

Read Dead Man's Snitch monitors and status; create, tag, pause and unpause snitches.

¿Debería usar esto?

Calidad y seguridad

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

Hallazgos (3)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool description contains URL to non-standard domainen deadmanssnitch_get_snitch
  • MEDIUMTool description contains URL to non-standard domainen deadmanssnitch_create_snitch

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

Costo de contexto

~2,300Tokens (definiciones de herramientas)
~1.9 KBTamaño de respuesta típico
Impacto moderado en la atención (1.80% 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": {
    "dead-mans-snitch": {
      "url": "https://dead-mans-snitch.usefulapi.io/mcp"
    }
  }
}

Puntos de conexión remotos

https://dead-mans-snitch.usefulapi.io/mcpstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (8)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢deadmanssnitch_list_snitches(tags, status)

List the snitches (cron/heartbeat monitors) of the account with status (pending, healthy, failed, errored, paused), interval, alert type, tags and last check-in. Tokens are masked (the token is also the check-in secret); pass the masked token or the name to the other snitch tools. The API has no paging: all snitches come back. Optionally filter by tags (must have all) or status. GET /v1/snitches.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "tags": {
      "description": "Only snitches that have ALL of these tags.",
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 100,
        "description": "A tag."
      }
    },
    "status": {
      "description": "Only snitches in this status (filtered here).",
      "type": "string",
      "enum": [
        "pending",
        "healthy",
        "failed",
        "errored",
        "paused"
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢deadmanssnitch_get_snitch(snitch)

One snitch with its full details, including the check-in URL (https://nosnch.in/<token>). The check-in URL is a secret: anyone who has it can check in and so silence the alert; share it only where the job runs. GET /v1/snitches/{token}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "snitch": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "The snitch: its token, the masked token shown by deadmanssnitch_list_snitches (e.g. ab…yz), or its exact name."
    }
  },
  "required": [
    "snitch"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡deadmanssnitch_create_snitch(name, interval, alert_type, alert_email, notes, ...)

WRITE: create a new snitch (monitor). Returns it with its check-in URL (https://nosnch.in/<token>), which the job must call on every run; keep it secret. Fails with 402 when the plan's snitch limit is reached. POST /v1/snitches.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Name of the snitch."
    },
    "interval": {
      "type": "string",
      "enum": [
        "1_minute",
        "2_minute",
        "3_minute",
        "5_minute",
        "10_minute",
        "15_minute",
        "30_minute",
        "hourly",
        "2_hour",
        "3_hour",
        "4_hour",
        "6_hour",
        "8_hour",
        "12_hour",
        "daily",
        "weekly",
        "monthly"
      ],
      "description": "Expected check-in frequency. The *_minute values are only available on the Basic plan; weekly = Monday to Monday."
    },
    "alert_type": {
      "description": "Default basic.",
      "type": "string",
      "enum": [
        "basic",
        "smart"
      ]
    },
    "alert_email": {
      "maxItems": 10,
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 254,
        "format": "email",
        "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
      },
      "description": "Email addresses that get this snitch's alerts instead of all team members (max 10; this limit is ours, not the vendor's). An empty list clears the override."
    },
    "notes": {
      "type": "string",
      "maxLength": 5000,
      "description": "Free-text notes."
    },
    "tags": {
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 100,
        "description": "A tag."
      }
    }
  },
  "required": [
    "name",
    "interval"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴deadmanssnitch_update_snitch(snitch, name, interval, alert_type, alert_email, ...)

WRITE: change a snitch. Only the fields you pass change. `tags` REPLACES the whole tag list (use deadmanssnitch_add_tags to add) and `alert_email` replaces the alert recipients (an empty list = all team members). Returns the updated snitch with the token masked. PATCH /v1/snitches/{token}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "snitch": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "The snitch: its token, the masked token shown by deadmanssnitch_list_snitches (e.g. ab…yz), or its exact name."
    },
    "name": {
      "description": "New name.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "interval": {
      "type": "string",
      "enum": [
        "1_minute",
        "2_minute",
        "3_minute",
        "5_minute",
        "10_minute",
        "15_minute",
        "30_minute",
        "hourly",
        "2_hour",
        "3_hour",
        "4_hour",
        "6_hour",
        "8_hour",
        "12_hour",
        "daily",
        "weekly",
        "monthly"
      ],
      "description": "Expected check-in frequency. The *_minute values are only available on the Basic plan; weekly = Monday to Monday."
    },
    "alert_type": {
      "type": "string",
      "enum": [
        "basic",
        "smart"
      ],
      "description": "basic = fixed deadline; smart = learns when the job usually checks in and alerts earlier."
    },
    "alert_email": {
      "maxItems": 10,
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 254,
        "format": "email",
        "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
      },
      "description": "Email addresses that get this snitch's alerts instead of all team members (max 10; this limit is ours, not the vendor's). An empty list clears the override."
    },
    "notes": {
      "description": "New notes; null clears them.",
      "anyOf": [
        {
          "type": "string",
          "maxLength": 5000,
          "description": "Free-text notes."
        },
        {
          "type": "null"
        }
      ]
    },
    "tags": {
      "description": "The complete new tag list (replaces the old one; [] removes all tags).",
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 100,
        "description": "A tag."
      }
    }
  },
  "required": [
    "snitch"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡deadmanssnitch_add_tags(snitch, tags)

WRITE: add one or more tags to a snitch, keeping the existing ones. Returns the snitch's full tag list. POST /v1/snitches/{token}/tags.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "snitch": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "The snitch: its token, the masked token shown by deadmanssnitch_list_snitches (e.g. ab…yz), or its exact name."
    },
    "tags": {
      "minItems": 1,
      "maxItems": 20,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 100,
        "description": "A tag."
      }
    }
  },
  "required": [
    "snitch",
    "tags"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴deadmanssnitch_remove_tag(snitch, tag)

WRITE: remove one tag from a snitch (the snitch itself is untouched). Returns the remaining tags. DELETE /v1/snitches/{token}/tags/{tag}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "snitch": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "The snitch: its token, the masked token shown by deadmanssnitch_list_snitches (e.g. ab…yz), or its exact name."
    },
    "tag": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "A tag."
    }
  },
  "required": [
    "snitch",
    "tag"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴deadmanssnitch_pause_snitch(snitch, until)

WRITE: pause a snitch, which SILENCES its alerts: a job that stops running goes unnoticed while it is paused. `until` says when alerting resumes: 'healthy' (default: on the next healthy check-in), 'unpaused' (stays paused until deadmanssnitch_unpause_snitch) or a future ISO 8601 time. A snitch that has never checked in (pending) cannot be paused. POST /v1/snitches/{token}/pause.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "snitch": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "The snitch: its token, the masked token shown by deadmanssnitch_list_snitches (e.g. ab…yz), or its exact name."
    },
    "until": {
      "description": "'healthy' (default), 'unpaused', or a future ISO 8601 time with timezone, e.g. 2026-10-20T08:00:00Z.",
      "type": "string",
      "minLength": 1,
      "maxLength": 40
    }
  },
  "required": [
    "snitch"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡deadmanssnitch_unpause_snitch(snitch)

WRITE: resume alerting for a paused snitch (safe on a snitch that is not paused). POST /v1/snitches/{token}/unpause.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "snitch": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "The snitch: its token, the masked token shown by deadmanssnitch_list_snitches (e.g. ab…yz), or its exact name."
    }
  },
  "required": [
    "snitch"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada8 herramientas