Datadog logo

Datadog

Community
winor30

Integrates with Datadog's API to enable incident management, including listing and retrieving incident information for system monitoring and observability workflows.

Publisherwinor30
Repositorymcp-server-datadog
LanguageTypeScript
Forks
71
Stars
142
Available tools
0
Transport typestdio
Categories
LicenseApache-2.0
Links
  • Connect tools to AI workflows

    Datadog exposes MCP capabilities that can be used by compatible AI clients and agents.

  • 0 available tools

    Browse the callable actions below, including names and descriptions when provided by the server.

  • Ready-to-copy setup

    Use the installation snippets to configure this server in your preferred MCP client.

  • Open source signals

    142 stars and 71 forks from the linked repository.

Datadog MCP Server

DISCLAIMER: This is a community-maintained project and is not officially affiliated with, endorsed by, or supported by Datadog, Inc. This MCP server utilizes the Datadog API but is developed independently as part of the Model Context Protocol ecosystem.

NPM VersionBuild and Testcodecovsmithery 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_dashboard

    • Retrieve a specific dashboard from Datadog.
    • Inputs:
      • dashboard_id (string): ID of the dashboard to fetch.
    • Returns: Dashboard details including title, widgets, etc.
  7. query_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.
  8. 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.
  9. 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.
  10. 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.
  11. 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.
  12. unmute_host

    • Unmute a host in Datadog.
    • Inputs:
      • hostname (string): The name of the host to unmute.
    • Returns: Success status and confirmation message.
  13. 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.
  14. 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.
  15. cancel_downtime

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

    • Get all RUM applications in the organization.
    • Inputs: None.
    • Returns: List of RUM applications.
  17. get_rum_events

    • Search and retrieve RUM events from Datadog.
    • Inputs:
      • query (string): Datadog RUM query string.
      • from (number): Start time in epoch seconds.
      • to (number): End time in epoch seconds.
      • limit (optional number): Maximum number of events to return (default: 100).
    • Returns: Array of RUM events.
  18. get_rum_grouped_event_count

    • Search, group and count RUM events by a specified dimension.
    • Inputs:
      • query (optional string): Additional query filter for RUM search (default: "*").
      • from (number): Start time in epoch seconds.
      • to (number): End time in epoch seconds.
      • groupBy (optional string): Dimension to group results by (default: "application.name").
    • Returns: Grouped event counts.
  19. get_rum_page_performance

    • Get page (view) performance metrics from RUM data.
    • Inputs:
      • query (optional string): Additional query filter for RUM search (default: "*").
      • from (number): Start time in epoch seconds.
      • to (number): End time in epoch seconds.
      • metricNames (array of strings): Array of metric names to retrieve (e.g., 'view.load_time', 'view.first_contentful_paint').
    • Returns: Performance metrics including average, min, max, and count for each metric.
  20. get_rum_page_waterfall

    • Retrieve RUM page (view) waterfall data filtered by application name and session ID.
    • Inputs:
      • applicationName (string): Application name to filter events.
      • sessionId (string): Session ID to filter events.
    • Returns: Waterfall data for the specified application and session.

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)
  • DATADOG_SUBDOMAIN (optional): The Datadog subdomain (e.g. <your-subdomain>.datadoghq.com)
  • DATADOG_STORAGE_TIER (optional): Logs storage tier for v2 logs searches. Supported values: indexes, online-archives, or flex.

Export them in your environment before running the server:

bash
export DATADOG_API_KEY="your_api_key"
export DATADOG_APP_KEY="your_app_key"
export DATADOG_SITE="your_datadog_site" # Optional
export DATADOG_SUBDOMAIN="your_datadog_subdomain" # Optional
export DATADOG_STORAGE_TIER="flex" # Optional: indexes | online-archives | flex

Installation

Installing via Smithery

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

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

Manual Installation

bash
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

json
{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
      }
    }
  }
}
json
{
  "mcpServers": {
    "datadog": {
      "command": "/path/to/mcp-server-datadog/build/index.js",
      "env": {
        "DATADOG_API_KEY": "<YOUR_API_KEY>",
        "DATADOG_APP_KEY": "<YOUR_APP_KEY>",
        "DATADOG_SITE": "<YOUR_SITE>", // Optional
        "DATADOG_SUBDOMAIN": "<YOUR_SUBDOMAIN>", // Optional
        "DATADOG_STORAGE_TIER": "indexes" // Optional: indexes | online-archives | flex
      }
    }
  }
}

Or specify via npx:

json
{
  "mcpServers": {
    "mcp-server-datadog": {
      "command": "npx",
      "args": ["-y", "@winor30/mcp-server-datadog"],
      "env": {
        "DATADOG_API_KEY": "<YOUR_API_KEY>",
        "DATADOG_APP_KEY": "<YOUR_APP_KEY>",
        "DATADOG_SITE": "<YOUR_SITE>", // Optional
        "DATADOG_SUBDOMAIN": "<YOUR_SUBDOMAIN>", // Optional
        "DATADOG_STORAGE_TIER": "indexes" // Optional: indexes | online-archives | flex
      }
    }
  }
}

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:

bash
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.

Installation

TypingMind
Prerequisites:

Node.js 18+

{
  "mcpServers": {
    "mcp-server-datadog": {
      "command": "npx",
      "args": [
        "-y",
        "@winor30/mcp-server-datadog"
      ],
      "env": {
        "DATADOG_API_KEY": "<YOUR_API_KEY>",
        "DATADOG_APP_KEY": "<YOUR_APP_KEY>",
        "DATADOG_SITE": "<YOUR_SITE>"
      }
    }
  }
}

Use Datadog MCP with multiple AI models

TypingMind connects MCP tools at the workspace level, so once Datadog is connected, you can use it with different AI models in TypingMind instead of setting it up separately for each model. This MCP runs locally through the TypingMind MCP connector on your device.

Setup guide to use the local connector

Use this when the MCP server needs access to local files, apps, or private resources on your computer.

1

Open the MCP settings

In TypingMind, go to Settings, Advanced Settings, then Model Context Protocol and choose Setup Connector.

  1. Open TypingMind in your browser.
  2. Click the Settings icon.
  3. Go to Advanced Settings.
  4. Open the Model Context Protocol section.
  5. Click Setup Connector and choose This Device.
TypingMind MCP connector setup screen with This Device selected
2

Run the connector command

Choose This Device, copy the command from TypingMind, and run it in Terminal. Keep the process running while you use MCP.

  1. Copy the setup command shown by TypingMind.
  2. Open Terminal on macOS or Windows Terminal on Windows.
  3. Paste and run the command.
  4. Approve the package install if Terminal asks you to proceed.
  5. Keep the Terminal window running while using MCP tools.
3

Add Datadog as a server

When the connector status is Ready, click Edit Servers and paste the MCP server configuration.

  1. Wait until the connector status shows Ready.
  2. Click Edit Servers.
  3. Paste the Datadog MCP server configuration.
  4. Save the server list.
  5. Refresh if you want to confirm the connector is still ready.
TypingMind MCP settings showing active server and Edit Servers button
{
  "mcpServers": {
    "datadog": {
      "command": "npx",
      "args": [
        "-y",
        "@winor30/mcp-server-datadog"
      ]
    }
  }
}
4

Use it across models

Save the server list, open Plugins, enable the Datadog MCP tools, then select any supported AI model in TypingMind and use the tools in chat or assign them to an AI agent.

  1. Open the Plugins page in TypingMind.
  2. Enable the Datadog MCP tools.
  3. Start a chat and choose the AI model you want to use.
  4. Use the MCP tools in chat or assign them to an AI agent.
  5. Switch to another AI model whenever needed without reconnecting MCP.
TypingMind chat using enabled MCP tools with a selected AI model
Can you use Datadog to help me with this task?
Datadog
Sure. I read it.
Here is what I found using Datadog.

Frequently asked questions

What is the Datadog MCP server used for?

Datadog is an MCP server that lets compatible AI clients connect to external tools and context. In TypingMind, you can add this MCP server once and make its tools available in your AI workspace.

Can I use Datadog MCP with multiple AI models in TypingMind?

Yes. TypingMind connects MCP tools at the workspace level, so you can use Datadog with different AI models such as Claude, ChatGPT, Gemini, or other models you have configured in TypingMind without setting up the MCP server separately for each model.

Why use Datadog MCP with TypingMind?

TypingMind is one of the best frontends for LLM chat because it brings multiple AI models, prompts, plugins, AI agents, API keys, and MCP tools into one workspace. With Datadog connected, you can use its MCP tools across your preferred models while keeping your chat workflow organized in TypingMind.

How do I connect Datadog MCP to TypingMind?

Datadog runs through the TypingMind local MCP connector. This is best when the MCP server needs access to local files, desktop apps, command-line tools, or private resources on your computer.

What tools does Datadog MCP provide in TypingMind?

Datadog exposes MCP capabilities that can be enabled from the TypingMind Plugins page and used in chat or assigned to AI agents.

Do I need to share my API keys with TypingMind to use Datadog MCP?

No. TypingMind is local-first and lets you keep your model providers, API keys, prompts, and MCP configuration under your control. If Datadog requires authentication, add the required headers, OAuth settings, or local configuration for that MCP server when you create the connection.

Related MCP Servers

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇