Skip to main content

Datadog CLI + MCP server for AI-driven incident management.

Project description

puppy-kit

Datadog CLI + MCP server for AI-driven incident management.

A modern CLI for the Datadog API with 22 command groups, 100+ subcommands, Rich terminal output, retry logic, and an optional MCP server that lets AI agents (Claude Code, Codex) detect, triage, and resolve incidents autonomously.

Forked from ddogctl by Sergio Francisco (MIT License).

Features

  • 22 command groups covering monitors, incidents, logs, APM, dashboards, SLOs, and more
  • Rich terminal output with tables, colors, and progress indicators
  • Investigation workflows that correlate across monitors, traces, logs, and hosts
  • Optional MCP server exposing Datadog operations as tools for AI agents
  • Retry logic with exponential backoff on rate limits and server errors
  • Multi-profile configuration with region shortcuts
  • Watch mode, stdin piping, JSON export, and shell completions

Installation

pip install puppy-kit

With uv:

uv pip install puppy-kit

With MCP server support:

pip install puppy-kit[mcp]

Configuration

Environment Variables

export DD_API_KEY="your-api-key"
export DD_APP_KEY="your-app-key"
export DD_SITE="us"  # optional, defaults to datadoghq.com

Interactive Setup

puppy config init

This creates ~/.puppy-kit/config.json with your credentials.

Multi-Profile

puppy config set-profile staging --api-key xxx --app-key yyy --site eu
puppy config use-profile staging
puppy config list-profiles

Select a profile per-command with --profile:

puppy --profile production monitor list

Or via environment variable:

export PUPPY_KIT_PROFILE=production

Region Shortcuts

Shortcut Site
us datadoghq.com
eu datadoghq.eu
us3 us3.datadoghq.com
us5 us5.datadoghq.com
ap1 ap1.datadoghq.com
gov ddog-gov.com

Quick Start

# Monitors
puppy monitor list --state Alert
puppy monitor get 12345
puppy monitor mute 12345

# Incidents
puppy incident list
puppy incident create --title "API latency spike" --severity SEV-2
puppy incident update abc123 --status resolved

# Logs
puppy logs search "status:error" --service my-api --from 30m
puppy logs tail "env:prod"

# APM
puppy apm services
puppy apm traces my-service --from 1h

# Metrics
puppy metric query "avg:system.cpu.user{env:prod}" --from 1h

# Dashboards
puppy dashboard list
puppy dashboard get abc-def-123

# Investigation Workflows
puppy investigate latency my-service --threshold 500
puppy investigate errors my-service --from 1h
puppy investigate compare my-service --from 1h --baseline 24h

# Watch mode (auto-refresh)
puppy monitor list --state Alert --watch 10

Commands

Command Subcommands
monitor / mon list, get, create, update, delete, mute, unmute, validate, mute-all, unmute-all
incident list, get, create, update, delete
logs search, tail, query, trace
apm services, traces, analytics
metric query, search, metadata
event list, get, post
host list, get, totals
dashboard / dash list, get, create, update, delete, export, clone
slo list, get, create, update, delete, history, export
downtime / dt list, get, create, update, delete, cancel-by-scope
investigate / inv latency, errors, throughput, compare
dbm hosts, queries, explain, samples
synthetics list, get, results, trigger
tag list, add, replace, detach
service-check / sc post
notebook list, get, create, delete
user list, get, invite, disable
usage summary, hosts, logs, top-avg-metrics
rum events, analytics
ci pipelines, tests, pipeline-details
config init, set-profile, use-profile, list-profiles, get
apply Apply Datadog resources from JSON files
diff Compare local JSON against live Datadog state
completion bash, zsh, fish

All commands support --format json for machine-readable output.

MCP Server

puppy-kit includes an optional Model Context Protocol server that exposes Datadog operations as tools for AI agents.

Setup

Install with MCP support:

pip install puppy-kit[mcp]

Available Tools

Tool Description
dd_monitors_list List monitors with optional filtering
dd_monitors_get Get monitor details
dd_monitors_create Create a monitor
dd_monitors_delete Delete a monitor
dd_monitors_mute Mute a monitor
dd_monitors_unmute Unmute a monitor
dd_incidents_list List incidents
dd_incidents_get Get incident details
dd_incidents_create Create an incident
dd_incidents_update Update an incident
dd_incidents_delete Delete an incident
dd_downtimes_list List downtimes
dd_downtimes_create Create a downtime
dd_downtimes_cancel Cancel a downtime
dd_logs_search Search logs
dd_metrics_query Query metrics
dd_events_create Create an event
dd_events_search Search events
dd_dashboards_list List dashboards
dd_dashboards_get Get dashboard details
dd_hosts_list List hosts
dd_slos_list List SLOs
dd_slos_get Get SLO details

Claude Code Integration

Add to your Claude Code MCP config:

{
  "mcpServers": {
    "puppy-kit": {
      "command": "python",
      "args": ["-m", "puppy_kit.mcp.server"],
      "env": {
        "DD_API_KEY": "your-api-key",
        "DD_APP_KEY": "your-app-key"
      }
    }
  }
}

Development

# Clone and install
git clone https://github.com/WrenchAI/puppy-kit.git
cd puppy-kit
uv sync --all-extras

# Run tests
uv run pytest tests/ -v

# Lint and format
uv run ruff check puppy_kit/ tests/
uv run ruff format puppy_kit/ tests/

# Run CLI in development
uv run puppy --help

Attribution

  • Original project: ddogctl by Sergio Francisco
  • License: MIT (preserved)
  • Fork maintained by: WrenchAI

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

puppy_kit-0.2.0.tar.gz (218.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

puppy_kit-0.2.0-py3-none-any.whl (72.8 kB view details)

Uploaded Python 3

File details

Details for the file puppy_kit-0.2.0.tar.gz.

File metadata

  • Download URL: puppy_kit-0.2.0.tar.gz
  • Upload date:
  • Size: 218.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for puppy_kit-0.2.0.tar.gz
Algorithm Hash digest
SHA256 ab2e5752dcd339289178cdfee6dde6090d0882f7558d9b98947f49baa670e14f
MD5 6b873ec460aee4479180b40f02799592
BLAKE2b-256 68a72fa775bb531b7772ee0a02a62a667ef5a896494a6193c1074b2845daff3b

See more details on using hashes here.

Provenance

The following attestation bundles were made for puppy_kit-0.2.0.tar.gz:

Publisher: publish.yml on WrenchAI/puppy-kit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file puppy_kit-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: puppy_kit-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 72.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for puppy_kit-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6883441238527b4d08f93e6bc54f6ba2b0b1c3a07a2e0a15089061d6c4d6fb4f
MD5 02c39c63391f57ea4578366deea24251
BLAKE2b-256 16dd6a7ab042628d0ba5479e81a3d0bb087fb13ad95ed7300ee1d64846544826

See more details on using hashes here.

Provenance

The following attestation bundles were made for puppy_kit-0.2.0-py3-none-any.whl:

Publisher: publish.yml on WrenchAI/puppy-kit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page