Skip to main content
Glama
jamesbrink

mcp-deadmansnitch

by jamesbrink

MCP Dead Man's Snitch

PyPI version Python License: MIT CI codecov FlakeHub Nix Flake

A Model Context Protocol (MCP) server for Dead Man's Snitch monitoring service. This server enables AI assistants like Claude to interact with Dead Man's Snitch to monitor scheduled tasks and cron jobs.

What it does

This MCP server provides tools to:

  • List and search your monitoring snitches

  • Check in (ping) snitches to confirm tasks are running

  • Create new monitors for your scheduled jobs

  • Update, pause, or delete existing monitors

  • Manage tags for organizing your snitches

Related MCP server: Motion MCP Server

Installation & Setup

  1. Get your API key from Dead Man's Snitch account settings

  2. Configure your MCP client by adding this to your settings:

{
  "mcpServers": {
    "deadmansnitch": {
      "command": "uvx",
      "args": ["mcp-deadmansnitch"],
      "env": {
        "DEADMANSNITCH_API_KEY": "your_api_key_here"
      }
    }
  }
}

Nix / NixOS

For Nix users, this project provides a flake with packages, overlays, and a development shell:

# Run directly
nix run github:jamesbrink/mcp-deadmansnitch

# Build the package
nix build github:jamesbrink/mcp-deadmansnitch

See NIX.md for detailed NixOS configuration and declarative usage.

Docker

A Docker image can be built from the Nix flake:

# Build and load the image
nix build github:jamesbrink/mcp-deadmansnitch#docker
docker load < result

# Run the server
docker run --rm -e DEADMANSNITCH_API_KEY="your_api_key" mcp-deadmansnitch:latest

Configure your MCP client to use Docker:

{
  "mcpServers": {
    "deadmansnitch": {
      "command": "docker",
      "args": ["run", "--rm", "-i", "-e", "DEADMANSNITCH_API_KEY", "mcp-deadmansnitch:latest"],
      "env": {
        "DEADMANSNITCH_API_KEY": "your_api_key_here"
      }
    }
  }
}

Available Tools

This MCP server exposes a single unified snitch tool with an action parameter to reduce context usage when connecting to LLMs.

snitch

Manage Dead Man's Snitch monitors with the following actions:

Action

Description

Required Params

Optional Params

list

List all snitches

-

tags (filter)

get

Get snitch details

token

-

create

Create new snitch

name, interval

notes, tags, alert_type, alert_email

update

Update snitch

token

name, interval, notes, tags, alert_type, alert_email

delete

Delete snitch

token

-

pause

Pause monitoring

token

until (ISO 8601)

unpause

Resume monitoring

token

-

check_in

Send check-in

token

message

add_tags

Add tags

token, tags

-

remove_tag

Remove a tag

token, tag

-

Valid intervals: 15_minute, hourly, daily, weekly, monthly

Valid alert_types: basic, smart

Example Usage in Claude

Once configured, you can ask Claude:

  • "List all my Dead Man's Snitch monitors"

  • "Create a daily monitor called 'Database Backup'"

  • "Check in the backup-job snitch"

  • "Pause the deployment monitor for 2 hours"

  • "Show me all snitches tagged with 'production'"

Support

License

MIT License - see LICENSE file for details.

Available Tools

1 tool
snitchA

Manage Dead Man's Snitch monitors.

Actions: list - List snitches. Optional: tags (filter) get - Get snitch. Required: token create - Create snitch. Required: name, interval update - Update snitch. Required: token + at least one field delete - Delete snitch. Required: token pause - Pause monitoring. Required: token. Optional: until unpause - Resume monitoring. Required: token check_in - Send check-in. Required: token. Optional: message add_tags - Add tags. Required: token, tags remove_tag - Remove tag. Required: token, tag

Optional params for create/update: notes, tags, alert_type, alert_email

Valid intervals: 15_minute, hourly, daily, weekly, monthly Valid alert_types: basic, smart

ParametersJSON Schema
NameRequiredDescriptionDefault
tagNo
nameNo
tagsNo
notesNo
tokenNo
untilNo
actionYes
messageNo
intervalNo
alert_typeNo
alert_emailNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the full burden of disclosing side effects and operational traits. It mentions actions like 'delete', 'pause', and 'update' but does not state whether delete is irreversible, whether pause stops all monitoring, or what side effects check_in has. For a tool with several state-changing and potentially destructive actions, this is a notable gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured as a compact action list with consistent formatting: 'action - description. Required/Optional: params'. The opening line establishes the tool's scope, and every subsequent line provides necessary operational detail without filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of 10 actions and 11 parameters, the description covers the essential operational aspects: actions, required/optional parameters, and valid enum-like values. An output schema exists, so return-value documentation is not needed. Minor gaps remain, such as the format for 'until' or the exact content of 'alert_email', but these are partially covered by the schema's type declarations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description compensates thoroughly. It maps each action to its required/optional parameters, distinguishes between the singular 'tag' and plural 'tags', and lists valid values for interval (15_minute, hourly, etc.) and alert_type (basic, smart) that the schema does not constrain. This directly adds meaning beyond the raw property types.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Manage Dead Man's Snitch monitors,' clearly specifying the domain and resource. It then enumerates all ten actions (list, get, create, update, delete, pause, unpause, check_in, add_tags, remove_tag), making the tool's purpose unambiguous even though the name 'snitch' is cryptic.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Each action is paired with required and optional parameters, e.g., 'create - Create snitch. Required: name, interval' and 'list - List snitches. Optional: tags (filter)'. This effectively tells the agent which action variant to use based on available parameters. There are no sibling tools to compare against, so it cannot name alternatives; a 5 would require explicit when/when-not exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool updatev1.0.1
    • First observedsnitch

TDQS

A4.3/5.0

Scored across 1 tool

Disambiguation5/5

There is only one tool, so there is no possibility of confusing separate tools. The actions within the tool (list, get, create, etc.) are distinct and clearly named, eliminating any ambiguity.

Naming Consistency5/5

The single tool name 'snitch' is a noun representing the resource, and all actions follow a consistent verb style (list, get, create, update, delete, pause, unpause). The naming pattern is uniform and predictable, making it easy to understand the available operations.

Tool Count4/5

While the tool count is only 1, it effectively acts as a subcommand interface covering all core operations. This is slightly unusual but remains well-scoped given the narrow domain of Dead Man's Snitch monitoring, so the count is reasonable.

Completeness5/5

The actions provide full CRUD coverage plus monitoring-specific operations (pause, unpause, check_in) and tag management. No obvious gaps exist for the stated purpose, and the optional parameters cover additional needs like alert types and notes.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers