Datadog MCP Server
An MCP server that provides comprehensive access to Datadog's monitoring and observability platform, enabling incident management, log analysis, metrics querying, dashboard access, APM traces, host management, downtime scheduling, and Real User Monitoring (RUM).
What This Skill Does
This skill connects Claude to the Datadog API, allowing you to:
**Manage Incidents**: List and retrieve detailed information about Datadog incidents**Monitor Systems**: Check monitor statuses, filter by state, name, or tags**Analyze Logs**: Search and retrieve logs with custom queries and time ranges**Query Metrics**: Retrieve time-series metrics data**Access Dashboards**: List and retrieve dashboard configurations**Track APM Traces**: Search distributed traces with filters for service and operation**Manage Hosts**: List hosts, check active counts, mute/unmute hosts**Schedule Downtimes**: Create, list, and cancel scheduled maintenance windows**Monitor RUM**: Access Real User Monitoring data including applications, events, performance metrics, and waterfallsSetup Instructions
Prerequisites
You need valid Datadog credentials:
1. **DATADOG_API_KEY**: Your Datadog API key (get from [Datadog API Keys](https://app.datadoghq.com/organization-settings/api-keys))
2. **DATADOG_APP_KEY**: Your Datadog Application key (get from [Datadog Application Keys](https://app.datadoghq.com/organization-settings/application-keys))
3. **DATADOG_SITE** (optional): The Datadog site (e.g., `datadoghq.com`, `datadoghq.eu`, `us3.datadoghq.com`)
4. **DATADOG_SUBDOMAIN** (optional): Your organization's Datadog subdomain
Installation
Add the following to your MCP settings configuration file:
**Claude Desktop** (`claude_desktop_config.json`):
macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`Windows: `%APPDATA%/Claude/claude_desktop_config.json`**Cline/Continue/Other MCP Clients**: Refer to your client's MCP configuration documentation.
```json
{
"mcpServers": {
"datadog": {
"command": "npx",
"args": ["-y", "@winor30/mcp-server-datadog"],
"env": {
"DATADOG_API_KEY": "your_api_key_here",
"DATADOG_APP_KEY": "your_app_key_here",
"DATADOG_SITE": "datadoghq.com",
"DATADOG_SUBDOMAIN": "your-org"
}
}
}
}
```
Quick Install via Smithery
For Claude Desktop users, you can auto-install using Smithery:
```bash
npx -y @smithery/cli install @winor30/mcp-server-datadog --client claude
```
Available Tools
Incident Management
**`list_incidents`**: Retrieve incidents with optional filtering
`filter` (optional): Filter by status, priority, etc.`pagination` (optional): Page size and offset**`get_incident`**: Get detailed incident information
`incident_id`: Specific incident IDMonitoring
**`get_monitors`**: Fetch monitor statuses
`groupStates` (optional): Filter by states (alert, warn, no data, ok)`name` (optional): Filter by monitor name`tags` (optional): Filter by tagsLogs
**`get_logs`**: Search and retrieve logs
`query`: Datadog logs query string`from`: Start time (epoch seconds)`to`: End time (epoch seconds)`limit` (optional): Max results (default: 100)Dashboards
**`list_dashboards`**: Get dashboard list
`name` (optional): Filter by name`tags` (optional): Filter by tags**`get_dashboard`**: Retrieve specific dashboard
`dashboard_id`: Dashboard IDMetrics
**`query_metrics`**: Retrieve metrics data
`query`: Metrics query string`from`: Start time (epoch seconds)`to`: End time (epoch seconds)APM Traces
**`list_traces`**: Retrieve APM traces
`query`: Trace query string`from`: Start time (epoch seconds)`to`: End time (epoch seconds)`limit` (optional): Max traces (default: 100)`sort` (optional): Sort order (default: '-timestamp')`service` (optional): Filter by service name`operation` (optional): Filter by operation nameHost Management
**`list_hosts`**: Get hosts list
`filter` (optional): Search filter`sort_field` (optional): Field to sort by`sort_dir` (optional): Sort direction (asc/desc)`start` (optional): Pagination offset`count` (optional): Max hosts (max: 1000)`from` (optional): UNIX timestamp start`include_muted_hosts_data` (optional): Include mute status`include_hosts_metadata` (optional): Include metadata**`get_active_hosts_count`**: Get active host count
`from` (optional): Seconds lookback (default: 2h)**`mute_host`**: Mute a host
`hostname`: Host to mute`message` (optional): Mute reason`end` (optional): Mute expiry timestamp`override` (optional): Replace existing mute**`unmute_host`**: Unmute a host
`hostname`: Host to unmuteDowntime Scheduling
**`list_downtimes`**: List scheduled downtimes
`currentOnly` (optional): Only active downtimes`monitorId` (optional): Filter by monitor**`schedule_downtime`**: Schedule maintenance window
`scope`: Scope string (e.g., 'host:my-host')`start` (optional): Start timestamp`end` (optional): End timestamp`message` (optional): Downtime description`timezone` (optional): Timezone (e.g., 'UTC')`monitorId` (optional): Monitor ID to mute`monitorTags` (optional): Monitor tags filter`recurrence` (optional): Recurrence settings**`cancel_downtime`**: Cancel scheduled downtime
`downtimeId`: Downtime ID to cancelReal User Monitoring (RUM)
**`get_rum_applications`**: List all RUM applications
**`get_rum_events`**: Search RUM events
`query`: RUM query string`from`: Start time (epoch seconds)`to`: End time (epoch seconds)`limit` (optional): Max events (default: 100)**`get_rum_grouped_event_count`**: Group and count RUM events
`query` (optional): Query filter (default: "*")`from`: Start time (epoch seconds)`to`: End time (epoch seconds)`groupBy` (optional): Dimension to group by (default: "application.name")**`get_rum_page_performance`**: Get page performance metrics
`query` (optional): Query filter (default: "*")`from`: Start time (epoch seconds)`to`: End time (epoch seconds)`metricNames`: Array of metric names (e.g., 'view.load_time', 'view.first_contentful_paint')**`get_rum_page_waterfall`**: Get page waterfall data
`applicationName`: Application name filter`sessionId`: Session ID filterUsage Examples
Check Recent Incidents
"Show me all critical incidents from the past 24 hours"
Analyze Application Logs
"Search logs for errors in the checkout service between 2pm and 3pm today"
Monitor System Health
"What monitors are currently in alert state?"
Review Performance Metrics
"Query CPU usage metrics for web-server-01 over the last hour"
Manage Maintenance Windows
"Schedule a 2-hour downtime for host:db-primary starting at midnight UTC tonight"
Track User Experience
"Show me RUM performance metrics for page load time in the last hour"
Important Notes
**Authentication**: Store credentials securely; never commit them to version control**Timestamps**: Use epoch seconds (Unix timestamps) for time ranges**Rate Limits**: Respect Datadog API rate limits; the server doesn't implement client-side throttling**Permissions**: Ensure your API and App keys have sufficient permissions for the operations you need**Community Project**: This is not an official Datadog product; it's maintained by the communityDebugging
If you encounter issues, use the MCP Inspector for debugging:
```bash
npx @modelcontextprotocol/inspector npx -y @winor30/mcp-server-datadog
```
Resources
[npm Package](https://www.npmjs.com/package/@winor30/mcp-server-datadog)[GitHub Repository](https://github.com/winor30/mcp-server-datadog)[Datadog API Documentation](https://docs.datadoghq.com/api/)[Model Context Protocol](https://modelcontextprotocol.io)