MCP server for the Datadog API, enabling incident management and more.
list_incidents
filter
(optional string): Filter parameters for incidents (e.g., status, priority).pagination
(optional object): Pagination details like page size/offset.get_incident
incident_id
(string): Incident ID to fetch details for.get_monitors
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.get_logs
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).list_dashboards
name
(optional string): Filter dashboards by name.tags
(optional array): Filter dashboards by tags.get_dashboard
dashboard_id
(string): ID of the dashboard to fetch.query_metrics
query
(string): Metrics query string.from
(number): Start time in epoch seconds.to
(number): End time in epoch seconds.list_traces
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.list_hosts
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).get_active_hosts_count
from
(optional number): Number of seconds from which you want to get total number of active hosts (defaults to 2h).mute_host
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.unmute_host
hostname
(string): The name of the host to unmute.list_downtimes
currentOnly
(optional boolean): Return only currently active downtimes when true.monitorId
(optional number): Filter by monitor ID.schedule_downtime
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.cancel_downtime
downtimeId
(number): The ID of the downtime to cancel.get_rum_applications
get_rum_events
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).get_rum_grouped_event_count
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").get_rum_page_performance
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').get_rum_page_waterfall
applicationName
(string): Application name to filter events.sessionId
(string): Session ID to filter events.You need valid Datadog API credentials to use this MCP server:
DATADOG_API_KEY
: Your Datadog API keyDATADOG_APP_KEY
: Your Datadog Application keyDATADOG_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"
To install Datadog MCP Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @winor30/mcp-server-datadog --client claude
pnpm install
pnpm build
pnpm watch # for development with auto-rebuild
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": "<YOUR_TOKEN>"
}
}
}
}
{
"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
}
}
}
}
Or specify via npx
:
{
"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
}
}
}
}
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.
Contributions are welcome! Feel free to open an issue or a pull request if you have any suggestions, bug reports, or improvements to propose.
This project is licensed under the Apache License, Version 2.0.
Seamless access to top MCP servers powering the future of AI integration.