T

mcp-server-datadog

...
Created 2/23/2025bywinor30

Language:

TypeScript

Stars:

5

Forks:

1

Datadog MCP Server

smithery badge

MCP server for the Datadog API, enabling incident management and more.

Features

  • Observability Tools: Provides a mechanism to leverage key Datadog monitoring features, such as incidents, monitors, logs, dashboards, and metrics, through the MCP server.
  • Extensible Design: Designed to easily integrate with additional Datadog APIs, allowing for seamless future feature expansion.

Tools

  1. list_incidents

    • Retrieve a list of incidents from Datadog.
    • Inputs:
      • filter (optional string): Filter parameters for incidents (e.g., status, priority).
      • pagination (optional object): Pagination details like page size/offset.
    • Returns: Array of Datadog incidents and associated metadata.
  2. get_incident

    • Retrieve detailed information about a specific Datadog incident.
    • Inputs:
      • incident_id (string): Incident ID to fetch details for.
    • Returns: Detailed incident information (title, status, timestamps, etc.).
  3. get_monitors

    • Fetch the status of Datadog monitors.
    • Inputs:
      • groupStates (optional array): States to filter (e.g., alert, warn, no data, ok).
      • name (optional string): Filter by name.
      • tags (optional array): Filter by tags.
    • Returns: Monitors data and a summary of their statuses.
  4. get_logs

    • Search and retrieve logs from Datadog.
    • Inputs:
      • query (string): Datadog logs query string.
      • from (number): Start time in epoch seconds.
      • to (number): End time in epoch seconds.
      • limit (optional number): Maximum number of logs to return (defaults to 100).
    • Returns: Array of matching logs.
  5. list_dashboards

    • Get a list of dashboards from Datadog.
    • Inputs:
      • name (optional string): Filter dashboards by name.

                  - `tags` (optional array): Filter dashboards by tags.
        
    • Returns: Array of dashboards with URL references.
  6. get_metrics

    • Retrieve metrics data from Datadog.
    • Inputs:
      • query (string): Metrics query string.
      • from (number): Start time in epoch seconds.
      • to (number): End time in epoch seconds.
    • Returns: Metrics data for the queried timeframe.
  7. list_traces

    • Retrieve a list of APM traces from Datadog.
    • Inputs:
      • query (string): Datadog APM trace query string.
      • from (number): Start time in epoch seconds.
      • to (number): End time in epoch seconds.
      • limit (optional number): Maximum number of traces to return (defaults to 100).
      • sort (optional string): Sort order for traces (defaults to '-timestamp').
      • service (optional string): Filter by service name.
      • operation (optional string): Filter by operation name.
    • Returns: Array of matching traces from Datadog APM.
  8. list_hosts

    • Get list of hosts from Datadog.
    • Inputs:
      • filter (optional string): Filter string for search results.
      • sort_field (optional string): Field to sort hosts by.
      • sort_dir (optional string): Sort direction (asc/desc).
      • start (optional number): Starting offset for pagination.
      • count (optional number): Max number of hosts to return (max: 1000).
      • from (optional number): Search hosts from this UNIX timestamp.
      • include_muted_hosts_data (optional boolean): Include muted hosts status and expiry.
      • include_hosts_metadata (optional boolean): Include host metadata (version, platform, etc).
    • Returns: Array of hosts with details including name, ID, aliases, apps, mute status, and more.
  9. get_active_hosts_count

    • Get the total number of active hosts in Datadog.

    • Inputs:

                  - `from` (optional number): Number of seconds from which you want to get total number of active hosts (defaults to 2h).
      
    • Returns: Count of total active and up hosts.

  10. mute_host

    • Mute a host in Datadog.
    • Inputs:
      • hostname (string): The name of the host to mute.
      • message (optional string): Message to associate with the muting of this host.
      • end (optional number): POSIX timestamp for when the mute should end.
      • override (optional boolean): If true and the host is already muted, replaces existing end time.
    • Returns: Success status and confirmation message.
  11. unmute_host

    • Unmute a host in Datadog.
    • Inputs:
      • hostname (string): The name of the host to unmute.
    • Returns: Success status and confirmation message.
  12. list_downtimes

    • List scheduled downtimes from Datadog.
    • Inputs:
      • currentOnly (optional boolean): Return only currently active downtimes when true.
      • monitorId (optional number): Filter by monitor ID.
    • Returns: Array of scheduled downtimes with details including scope, monitor information, and schedule.
  13. schedule_downtime

    • Schedule a downtime in Datadog.
    • Inputs:
      • scope (string): Scope to apply downtime to (e.g. 'host:my-host').
      • start (optional number): UNIX timestamp for the start of the downtime.
      • end (optional number): UNIX timestamp for the end of the downtime.
      • message (optional string): A message to include with the downtime.
      • timezone (optional string): The timezone for the downtime (e.g. 'UTC', 'America/New_York').
      • monitorId (optional number): The ID of the monitor to mute.
      • monitorTags (optional array): A list of monitor tags for filtering.
      • recurrence (optional object): Recurrence settings for the downtime.
        • type (string): Recurrence type ('days', 'weeks', 'months', 'years').

                    - `period` (number): How often to repeat (must be >= 1).
          
        • weekDays (optional array): Days of the week for weekly recurrence.

        • until (optional number): UNIX timestamp for when the recurrence ends.

    • Returns: Scheduled downtime details including ID and active status.
  14. cancel_downtime

    • Cancel a scheduled downtime in Datadog.
    • Inputs:
      • downtimeId (number): The ID of the downtime to cancel.
    • Returns: Confirmation of downtime cancellation.

Setup

Datadog Credentials

You need valid Datadog API credentials to use this MCP server:

  • DATADOG_API_KEY: Your Datadog API key
  • DATADOG_APP_KEY: Your Datadog Application key
  • DATADOG_SITE (optional): The Datadog site (e.g. datadoghq.eu)

Export them in your environment before running the server:

export DATADOG_API_KEY="your_api_key"
export DATADOG_APP_KEY="your_app_key"
export DATADOG_SITE="your_datadog_site"

Installation

Installing via Smithery

To install Datadog MCP Server for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @winor30/mcp-server-datadog --client claude

Manual Installation

pnpm install
pnpm build
pnpm watch   # for development with auto-rebuild

Usage with Claude Desktop

To use this with Claude Desktop, add the following to your claude_desktop_config.json:

On MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
On Windows: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": ""
      }
    }
  }
}
{
  "mcpServers": {
    "datadog": {
      "command": "/path/to/mcp-server-datadog/build/index.js",
      "env": {
        "DATADOG_API_KEY": "",

            
        
            
                        "DATADOG_APP_KEY": "",
        "DATADOG_SITE": "" // Optional
      }
    }
  }
}

Or specify via npx:

{
  "mcpServers": {
    "mcp-server-datadog": {
      "command": "npx",
      "args": ["-y", "@winor30/mcp-server-datadog"],
      "env": {
        "DATADOG_API_KEY": "",
        "DATADOG_APP_KEY": "",
        "DATADOG_SITE": "" // Optional
      }
    }
  }
}

Debugging

Because MCP servers communicate over standard input/output, debugging can sometimes be tricky. We recommend using the MCP Inspector. You can run the inspector with:

npm run inspector

The inspector will provide a URL you can open in your browser to see logs and send requests manually.

Contributing

Contributions are welcome! Feel free to open an issue or a pull request if you have any suggestions, bug reports, or improvements to propose.

License

This project is licensed under the Apache License, Version 2.0.

Last updated: 3/8/2025

Publisher info

winor30's avatar

katsumata(TK)

16
followers
30
following
62
repos

More MCP servers built with TypeScript

docbase-mcp-server

MCP Server Implementation for DocBase

By f4401
aapi-mcp-server

Advanced API MCP Server

By Asphere-xyz1
DBX-MCP-Server

MCP Server for Dropbox

By amgadabdelhafez1