Skip to main content
Glama

DataDog MCP Server

by Believe-SA
tools.md14.8 kB
# DataDog MCP Server - Available Tools This document lists all the tools that can be implemented in the DataDog MCP server, organized by API version. Tools are prefixed with their API version (e.g., `v1_`, `v2_`) to ensure clear segregation and avoid conflicts. ## Implementation Status Legend - ✅ **Implemented** - Tool is fully implemented and working - ❌ **Not Implemented** - Tool is available in API but not yet implemented - ⚠️ **Partially Implemented** - Tool exists but may have limitations - 🔧 **Available in API** - Confirmed available in generated client --- ## 📊 **Dashboard Tools (API v1)** ### ✅ v1_list_dashboards **Retrieve a list of dashboards from DataDog (API v1).** - **Inputs:** - `filter` (optional string): Filter dashboards by name or tag - **Returns:** Array of dashboards with URL references - **API Method:** `ListDashboardsWithResponse` ### ✅ v1_get_dashboard **Retrieve a specific dashboard from DataDog (API v1).** - **Inputs:** - `dashboard_id` (string): ID of the dashboard to fetch - **Returns:** Dashboard details including title, widgets, etc. - **API Method:** `GetDashboardWithResponse` ### ❌ v1_create_dashboard **Create a new dashboard in DataDog (API v1).** - **Inputs:** - `title` (string): Dashboard title - `widgets` (array): Array of dashboard widgets - `layout_type` (string): Dashboard layout type - **Returns:** Created dashboard details - **API Method:** `CreateDashboardWithResponse` ### ❌ v1_update_dashboard **Update an existing dashboard in DataDog (API v1).** - **Inputs:** - `dashboard_id` (string): ID of the dashboard to update - `title` (optional string): New dashboard title - `widgets` (optional array): Updated widgets - **Returns:** Updated dashboard details - **API Method:** `UpdateDashboardWithResponse` ### ❌ delete_dashboard **Delete a dashboard from DataDog.** - **Inputs:** - `dashboard_id` (string): ID of the dashboard to delete - **Returns:** Deletion confirmation - **API Method:** `DeleteDashboardWithResponse` --- ## 📅 **Event Tools (API v1)** ### ✅ v1_list_events **List events from DataDog (API v1).** - **Inputs:** - `start` (optional number): Start time in epoch seconds - `end` (optional number): End time in epoch seconds - `priority` (optional string): Filter by priority (normal, low) - `tags` (optional string): Filter by tags - **Returns:** Array of matching events - **API Method:** `ListEventsWithResponse` ### ✅ v1_create_event **Create a new event in DataDog (API v1).** - **Inputs:** - `title` (string): Event title - `text` (string): Event description - `priority` (optional string): Event priority (normal, low) - `tags` (optional array): Event tags - **Returns:** Created event details - **API Method:** `CreateEventWithResponse` ### ❌ get_event **Retrieve a specific event from DataDog.** - **Inputs:** - `event_id` (number): ID of the event to fetch - **Returns:** Event details including title, status, timestamps, etc. - **API Method:** `GetEventWithResponse` --- ## 🔍 **Monitor Tools** ### ❌ list_monitors **Fetch the status of DataDog monitors.** - **Inputs:** - `group_states` (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 - **API Method:** `ListMonitorsWithResponse` ### ❌ get_monitor **Retrieve detailed information about a specific DataDog monitor.** - **Inputs:** - `monitor_id` (number): Monitor ID to fetch details for - **Returns:** Detailed monitor information (title, status, timestamps, etc.) - **API Method:** `GetMonitorWithResponse` ### ❌ create_monitor **Create a new monitor in DataDog.** - **Inputs:** - `type` (string): Monitor type (metric, log, service check, etc.) - `query` (string): Monitor query - `name` (string): Monitor name - `message` (string): Alert message - **Returns:** Created monitor details - **API Method:** `CreateMonitorWithResponse` ### ❌ update_monitor **Update an existing monitor in DataDog.** - **Inputs:** - `monitor_id` (number): ID of the monitor to update - `query` (optional string): Updated monitor query - `name` (optional string): Updated monitor name - `message` (optional string): Updated alert message - **Returns:** Updated monitor details - **API Method:** `UpdateMonitorWithResponse` ### ❌ delete_monitor **Delete a monitor from DataDog.** - **Inputs:** - `monitor_id` (number): ID of the monitor to delete - **Returns:** Deletion confirmation - **API Method:** `DeleteMonitorWithResponse` --- ## 📈 **Metrics Tools** ### ❌ 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 - **API Method:** `QueryMetricsWithResponse` ### ❌ list_metrics **List available metrics in DataDog.** - **Inputs:** - `from` (optional number): Start time in epoch seconds - `to` (optional number): End time in epoch seconds - `host` (optional string): Filter by host - **Returns:** List of available metrics - **API Method:** `ListMetricsWithResponse` ### ❌ submit_metrics **Submit metrics to DataDog.** - **Inputs:** - `series` (array): Array of metric series to submit - **Returns:** Submission confirmation - **API Method:** `SubmitMetricsWithBodyWithResponse` ### ❌ get_metric_metadata **Get metadata for a specific metric.** - **Inputs:** - `metric_name` (string): Name of the metric - **Returns:** Metric metadata including description, type, etc. - **API Method:** `GetMetricMetadataWithResponse` --- ## 🖥️ **Host Tools** ### ❌ 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 - **Returns:** Array of hosts with details including name, ID, aliases, apps, mute status - **API Method:** `ListHostsWithResponse` ### ❌ 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 - **API Method:** `GetHostTotalsWithResponse` ### ❌ 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 - **API Method:** `MuteHostWithResponse` ### ❌ unmute_host **Unmute a host in DataDog.** - **Inputs:** - `hostname` (string): The name of the host to unmute - **Returns:** Success status and confirmation message - **API Method:** `UnmuteHostWithResponse` --- ## ⏸️ **Downtime Tools** ### ❌ list_downtimes **List scheduled downtimes from DataDog.** - **Inputs:** - `current_only` (optional boolean): Return only currently active downtimes when true - `monitor_id` (optional number): Filter by monitor ID - **Returns:** Array of scheduled downtimes with details including scope, monitor information, and schedule - **API Method:** `ListDowntimesWithResponse` ### ❌ 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') - `monitor_id` (optional number): The ID of the monitor to mute - `monitor_tags` (optional array): A list of monitor tags for filtering - **Returns:** Scheduled downtime details including ID and active status - **API Method:** `CreateDowntimeWithResponse` ### ❌ cancel_downtime **Cancel a scheduled downtime in DataDog.** - **Inputs:** - `downtime_id` (number): The ID of the downtime to cancel - **Returns:** Confirmation of downtime cancellation - **API Method:** `CancelDowntimeWithResponse` ### ❌ get_downtime **Get details of a specific downtime.** - **Inputs:** - `downtime_id` (number): ID of the downtime to fetch - **Returns:** Downtime details including scope, schedule, and status - **API Method:** `GetDowntimeWithResponse` --- ## 📋 **Log Tools** ### ❌ 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 - **API Method:** `ListLogsWithResponse` ### ❌ list_log_indexes **List log indexes in DataDog.** - **Inputs:** None - **Returns:** List of log indexes with their configurations - **API Method:** `ListLogIndexesWithResponse` ### ❌ get_log_index **Get details of a specific log index.** - **Inputs:** - `name` (string): Name of the log index - **Returns:** Log index configuration and details - **API Method:** `GetLogsIndexWithResponse` --- ## 🔍 **Trace Tools** ### ❌ 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 - **API Method:** Not available in v1 API (requires v2 API) --- ## 📱 **RUM Tools** ### ❌ get_rum_applications **Get all RUM applications in the organization.** - **Inputs:** None - **Returns:** List of RUM applications - **API Method:** Not available in v1 API (requires v2 API) ### ❌ 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 - **API Method:** Not available in v1 API (requires v2 API) ### ❌ 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 - `group_by` (optional string): Dimension to group results by (default: "application.name") - **Returns:** Grouped event counts - **API Method:** Not available in v1 API (requires v2 API) ### ❌ 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 - `metric_names` (array of strings): Array of metric names to retrieve - **Returns:** Performance metrics including average, min, max, and count for each metric - **API Method:** Not available in v1 API (requires v2 API) ### ❌ get_rum_page_waterfall **Retrieve RUM page (view) waterfall data filtered by application name and session ID.** - **Inputs:** - `application_name` (string): Application name to filter events - `session_id` (string): Session ID to filter events - **Returns:** Waterfall data for the specified application and session - **API Method:** Not available in v1 API (requires v2 API) --- ## 🔧 **Utility Tools** ### ✅ v1_test_connection **Test DataDog API v1 connectivity and authentication.** - **Inputs:** None - **Returns:** Connection status and authentication confirmation - **API Method:** Uses `ListDashboardsWithResponse` for connectivity test --- ## 📊 **Implementation Summary** | Category | Implemented | Not Implemented | Total | |----------|-------------|-----------------|-------| | **Dashboard (v1)** | 2 | 3 | 5 | | **Event (v1)** | 2 | 1 | 3 | | **Monitor (v1)** | 0 | 5 | 5 | | **Metrics (v1)** | 0 | 4 | 4 | | **Host (v1)** | 0 | 4 | 4 | | **Downtime (v1)** | 0 | 4 | 4 | | **Log (v1)** | 0 | 3 | 3 | | **Trace** | 0 | 1 | 1 | | **RUM** | 0 | 5 | 5 | | **Utility** | 1 | 0 | 1 | | **TOTAL** | **5** | **30** | **35** | --- ## 🚀 **Next Steps** 1. **Priority 1:** Implement Monitor tools (list_monitors, get_monitor) 2. **Priority 2:** Implement Metrics tools (query_metrics, submit_metrics) 3. **Priority 3:** Implement Host tools (list_hosts, mute_host, unmute_host) 4. **Priority 4:** Implement Downtime tools (list_downtimes, schedule_downtime) 5. **Priority 5:** Implement Log tools (get_logs) 6. **Future:** Consider implementing v2 API for RUM, Trace, and Incident tools --- ## 🚀 **Future API v2 Support** The codebase is structured to support multiple API versions: - **Current Implementation**: All tools use DataDog API v1 with `v1_` prefix - **Future v2 Support**: Tools will be prefixed with `v2_` when implemented - **Namespace Structure**: Code is organized in `internal/tools/v1/` and future `internal/tools/v2/` - **Clear Segregation**: No conflicts between API versions, allowing both to coexist ## 📝 **Notes** - **v1 API Limitation:** RUM and Trace tools require the DataDog API v2 - **Current Focus:** The implemented tools cover the most commonly used DataDog operations - **Modular Design:** The refactored code structure makes it easy to add new tools by concern - **Testing:** All implemented tools have corresponding test coverage - **Version Prefixing:** All tools are prefixed with their API version for clear identification

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Believe-SA/datadog-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server