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
Hallazgos (3)
- HIGH
- MEDIUMen deadmanssnitch_get_snitch
- MEDIUMen deadmanssnitch_create_snitch
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": {
"dead-mans-snitch": {
"url": "https://dead-mans-snitch.usefulapi.io/mcp"
}
}
}Puntos de conexión remotos
https://dead-mans-snitch.usefulapi.io/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (8)
🟢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
Evidencia