Dead Man's Snitch MCP by usefulapi

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

Sollte ich dies verwenden

Qualität und Sicherheit

A
Qualität der Beschreibung
100%
Vollständigkeit des Schemas
97%
Qualität der Benennung
80%
Risiko der Vergiftung
60%
Übereinstimmung der Berechtigungen
100%
Einhaltung des Protokolls
100%

Befunde (3)

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

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~2,300Tokens (Tool-Definitionen)
~1.9 KBTypische Antwortgröße
Mittlere Auswirkung auf die Aufmerksamkeit (1.80% von 128k Kontext)

Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.

Installieren

Installation mit einem Klick

Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:

{
  "mcpServers": {
    "dead-mans-snitch": {
      "url": "https://dead-mans-snitch.usefulapi.io/mcp"
    }
  }
}

Remote-Endpunkte

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

Was es kann

Tool-Inventar

Tools (8)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟢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.

Eingabe-Schema

{
  "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}.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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}.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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}.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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.

Eingabe-Schema

{
  "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"
}

Community

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet8 Tools