Connect your AI Agents to Datadog in minutes

Merge lets you securely connect your agents to Datadog and thousands of tools instantly

Available tools

list_dashboards

List all visualization dashboards for monitoring infrastructure, applications, and business metrics. Returns dashboard summaries with IDs, titles, and URLs. Error: Check API credentials if no dashboards returned.

create_dashboard

Create a new visualization dashboard with custom widgets for monitoring metrics, logs, and application performance. Specify title, widgets, and layout type. Returns created dashboard with ID and URL. Error: Verify widget configuration if creation fails.

get_dashboard

Get detailed dashboard configuration including all widgets, layout, and template variables by ID. Returns complete dashboard details. Error: Use list_dashboards to find valid dashboard IDs if not found.

update_dashboard

Update existing dashboard configuration including title, widgets, layout, and template variables. Provide dashboard_id and fields to update. Returns updated dashboard. Error: Use get_dashboard first to verify dashboard exists.

delete_dashboard

Permanently delete a dashboard by ID removing all widgets and configuration. This action cannot be undone. Returns confirmation with deleted dashboard ID. Error: Verify dashboard_id with list_dashboards if deletion fails.

list_downtimes

List all scheduled downtimes with filtering and pagination. Returns downtime configurations for maintenance windows. Use current_only to filter active downtimes. Error: Check filters if no downtimes returned.

create_downtime

Create a scheduled downtime for maintenance windows. Specify scope, start/end times, and optional message. Returns created downtime with ID. Error: Check scope format and timestamps if creation fails.

get_downtime

Get a specific downtime by ID with full configuration. Returns downtime schedule, scope, and status. Error: Use list_downtimes to find valid downtime IDs if not found.

update_downtime

Update an existing downtime's configuration including scope, time range, or message. Provide downtime_id and fields to update. Returns updated downtime. Error: Use get_downtime first to verify downtime exists.

delete_downtime

Delete a downtime schedule permanently by ID. This removes the maintenance window. Returns confirmation with deleted downtime ID. Error: Verify downtime_id with list_downtimes if deletion fails.

list_incidents

List all incidents with pagination. Returns incidents with titles, impact status, custom fields, and timestamps. Use page_size and page_offset for pagination. Error: Check API credentials if no incidents returned.

create_incident

Create a new incident with title and impact status. Specify customer impact flag, optional impact description, and custom fields for severity/state. Returns created incident with ID. Error: Check required fields if creation fails.

search_incidents

Search incidents with advanced query filters. Supports filtering by state, severity, customer impact, and custom fields. Returns matching incidents. Error: Check query syntax if search fails.

list_log_indexes

List all log indexes with filtering and pagination. Returns index configurations including retention settings and daily limits. Use page and page_size for pagination. Error: Check API credentials if no indexes returned.

search_logs

Search log events using Datadog query syntax (e.g. 'service:web status:error'). Supports time range and index filtering. Error: Verify query syntax if no results.

list_metrics

List all active metrics being reported to Datadog. Returns metric names available for querying. Use from_time to filter metrics active since a timestamp. Error: Check time range if no metrics returned.

get_metric

Get metadata for a specific metric including type, description, and unit. Provide the metric name to retrieve details. Error: Use list_metrics to find valid metric names if not found.

update_metric

Update metadata for a metric including description, type, and unit. Provide metric name and fields to update. Returns updated metric metadata. Error: Use get_metric first to verify metric exists.

query_timeseries

Query timeseries data for metrics over a time range. Specify metric query, start time, and end time. Returns series data with timestamps and values. Error: Check query syntax and time range if no data returned.

submit_metrics

Submit custom metric data points to Datadog. Provide series with metric name, points (array of {timestamp, value} objects), type (0=gauge, 1=count, 2=rate), and tags. Returns submission status. Error: Check series format if submission fails.

list_monitors

List all monitoring alerts with filtering and pagination. Returns monitors with alert configs, thresholds, and states. Use page and page_size for pagination. Supports filtering by name, tags, and state. Error: Use list_monitors without filters if no results found.

create_monitor

Create a new monitoring alert with thresholds and notification settings. Specify monitor type (metric alert, service check, etc.), query, thresholds, and message. Returns created monitor with ID. Error: Check query syntax and threshold values if creation fails.

get_monitor

Get a specific monitor by ID with full configuration details. Returns monitor with thresholds, query, message, and current state. Error: Use list_monitors to find valid monitor IDs if not found.

update_monitor

Update an existing monitor's configuration including query, thresholds, or notification settings. Provide monitor_id and fields to update. Returns updated monitor. Error: Use get_monitor first to verify monitor exists.

delete_monitor

Delete a monitor permanently by ID. This removes all alert configuration and history. Returns confirmation with deleted monitor ID. Error: Verify monitor_id with list_monitors if deletion fails.

mute_monitor

Mute a monitor to suppress notifications temporarily or indefinitely for maintenance windows. Specify optional scope and end time. Monitor continues evaluating. Error: Use list_monitors to find valid monitor IDs.

unmute_monitor

Unmute a previously muted monitor to resume sending notifications. Specify optional scope to unmute. Error: Use list_monitors to find muted monitors.

list_roles

List all roles with pagination (admin-only: requires user_access_manage permission). Returns roles with names, user counts, and timestamps. Use page_size and page_number for pagination. Error: Check permissions if access denied.

create_role

Create a new custom role (admin-only: requires user_access_manage permission). Specify unique role name. Returns created role with ID. Error: Check role name uniqueness if creation fails.

get_role

Get role details by ID (admin-only: requires user_access_manage permission). Returns role with name, user count, and timestamps. Error: Use list_roles to find valid role IDs if not found.

update_role

Update role name and description (admin-only: requires user_access_manage permission). Provide role_id and new name. Returns updated role. Error: Use get_role first to verify role exists.

delete_role

Delete custom role permanently by ID (admin-only: requires user_access_manage permission). This removes all role configurations and user associations. Returns confirmation with deleted role ID. Error: Use list_roles to find valid role IDs.

list_role_permissions

List permissions for a role (admin-only: requires user_access_manage permission). Returns permission IDs, names, descriptions, and categories. Error: Use list_roles to find valid role IDs.

add_role_permission

Grant permission to role (admin-only: requires user_access_manage permission). Provide role_id and permission_id to add. Returns updated permission list. Error: Use list_all_permissions to find valid permission IDs.

remove_role_permission

Revoke permission from role (admin-only: requires user_access_manage permission). Provide role_id and permission_id to remove. Returns updated permission list. Error: Use list_role_permissions to find granted permissions.

get_role_users

List users with this role (admin-only: requires user_access_manage permission). Returns user IDs assigned to the role. Error: Use list_roles to find valid role IDs.

add_user_to_role

Assign user to role (admin-only: requires user_access_manage permission). Provide role_id and user_id. Returns updated user list for role. Error: Use list_users to find valid user IDs.

remove_user_from_role

Remove user from role (admin-only: requires user_access_manage permission). Provide role_id and user_id. Returns updated user list for role. Error: Use get_role_users to find assigned users.

list_all_permissions

List all available permissions in Datadog. Returns permission IDs, names, descriptions, and categories for role assignment. Error: Check API credentials if no permissions returned.

search_permissions

Search permissions by keyword. Provide search query to filter permissions by name or description. Returns matching permissions. Error: Try broader search terms if no results found.

list_synthetics_tests

List all synthetic monitoring tests with pagination. Returns API and browser tests with configurations, locations, and status. Use page and page_size for pagination. Error: Check API credentials if no tests returned.

create_synthetics_test

Create a new synthetic monitoring test (API or browser test). Specify test name, type, config with request/assertions, and testing locations. Returns created test with public ID. Error: Check config format and location codes if creation fails.

list_global_variables

List all global variables for synthetics tests with pagination. Returns variables that can be reused across tests. Use page and page_size for pagination. Error: Check API credentials if no variables returned.

create_global_variable

Create a new global variable for reuse across synthetics tests. Specify variable name, value config (secure flag, actual value), and optional tags. Returns created variable with ID. Error: Check value format if creation fails.

list_all_locations

List all available testing locations for synthetics tests. Returns location IDs, names, regions, and active status. Use to discover valid location codes for test creation. Error: Check API credentials if no locations returned.

list_users

List all users with filtering and pagination (admin-only: requires user_access_manage permission). Returns users with emails, names, status, and verification state. Filter by status. Error: Check permissions if access denied.

create_user

Create a new user account (admin-only: requires user_access_manage permission). Specify email (used as handle), optional name and title. Returns created user with ID. Error: Check email format and permissions if creation fails.

update_user

Update user profile including name, email, or disabled status (admin-only: requires user_access_manage permission). Provide user_id and fields to update. Returns updated user. Error: Use list_users to find valid user IDs.

send_user_invitations

Send email invitations to new users (admin-only: requires user_access_manage permission). Provide list of email addresses. Returns invitation results. Error: Check email format if invitation fails.

validate_credential

Validate Datadog API credentials by testing authentication with a lightweight API call

View all tools by creating a free accountSee more tools

How to set up Merge Agent Handler

In an mcp.json file, add the configuration below, and restart Cursor.

Learn more in the official documentation ↗

1{
2  "mcpServers": {
3    "agent-handler": {
4      "url": "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
5      "headers": {
6        "Authorization": "Bearer yMt*****"
7      }
8    }
9  }
10}
11
Copy Code

Open your Claude Desktop configuration file and add the server configuration below. You'll also need to restart the application for the changes to take effect.

Make sure Claude is using the Node v20+.

Learn more in the official documentation ↗

1{
2  "mcpServers": {
3    "agent-handler": {
4      "command": "npx",
5      "args": [
6        "-y",
7        "mcp-remote@latest",
8        "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
9        "--header",
10        "Authorization: Bearer ${AUTH_TOKEN}"
11      ],
12      "env": {
13        "AUTH_TOKEN": "yMt*****"
14      }
15    }
16  }
17}
Copy Code
Copied!

Open your Windsurf MCP configuration file and add the server configuration below.
Click on the refresh button in the top right of the Manage MCP server page or in the top right of the chat box in the box icon.

Learn more in the official documentation ↗

1{
2    "mcpServers": {
3      "agent-handler": {
4        "command": "npx",
5        "args": [
6          "-y",
7          "mcp-remote@latest",
8          "https://ah-api.merge.dev/api/v1/tool-packs/<tool-pack-id>/registered-users/<registered-user-id>/mcp",
9          "--header",
10          "Authorization: Bearer ${AUTH_TOKEN}"
11        ],
12        "env": {
13          "AUTH_TOKEN": "<ah-production-access-key>"
14        }
15      }
16    }
17  }
Copy Code

In Command Palette (Cmd+Shift+P on macOS, Ctrl+Shift+P on Windows), run "MCP: Open User Configuration".

You can then add the configuration below and press "start" right under servers. Enter the auth token when prompted.

Learn more in the official documentation ↗

1{
2  "inputs": [
3    {
4      "type": "promptString",
5      "id": "agent-handler-auth",
6      "description": "Agent Handler AUTH_TOKEN", // "yMt*****" when prompt
7      "password": true
8    }
9  ],
10  "servers": {
11    "agent-handler": {
12      "type": "stdio",
13      "command": "npx",
14      "args": [
15        "-y",
16        "mcp-remote@latest",
17        "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
18        "--header",
19        "Authorization: Bearer ${input:agent-handler-auth}"
20      ]
21    }
22  }
23}
Copy Code

FAQs on using Merge's Datadog  MCP server

FAQs on using Merge's Datadog  MCP server

What is a Datadog MCP server?

It’s a server that exposes data and functionality from Datadog through tools. Your agents can use these tools to update dashboards, cancel a scheduled downtime, fetch APM services, and more.

How can I use the Datadog MCP server?

Here are just a few use cases (these use cases can also apply to other observability MCP servers):

  • Incident detection and triage: Your agent can monitor Datadog alerts and service health, and if an incident occurs, automatically open an incident with a short triage summary. For example, when an API latency monitor fires, it can pull affected endpoints, recent deploys, and related logs or traces

  • Alert noise reduction and routing: Your agent can detect duplicate or flapping alerts and recommend better thresholds or routing. For instance, it can route low-severity alerts to Slack while reserving paging for sustained issues

  • Root cause investigation across signals: Your agent can correlate metrics, logs, and traces to build a timeline from an alert. For example, when error rates spike, it can surface the services, regions, and log patterns most strongly associated with the issue

  • SLO and reliability reporting: Your agent can track SLO performance and generate regular summaries. For example, it can report weekly SLO attainment, error budget burn, and the incidents that had the biggest impact

  • Deployment health monitoring: Your agent can watch key metrics during deploys and flag regressions. For example, if a canary release increases 5xx errors, it can notify the on-call engineer with supporting charts and traces

  • Cost and usage optimization: Your agent can spot unexpected growth in logs, metrics, or APM usage. For example, it can identify a noisy service driving up log volume and suggest sampling or exclusion rules

What makes Merge Agent Handler’s Datadog MCP server better than alternative Datadog MCP servers?

Merge Agent Handler differentiates itself at the platform layer:

  • Enterprise-grade security and DLP: All tool inputs and outputs are scanned by a security gateway with configurable data-loss-prevention rules, allowing sensitive data to be blocked, redacted, or logged based on policy

  • Real-time observability and auditability: Every tool call to Datadog’s MCP server is logged with a fully-searchable audit trail, enabling teams to monitor, debug, and review agent behavior across production environments

  • Managed authentication and permissions: Agent Handler handles credential storage, dynamic authorization flows, and shared vs. individual authentication without requiring custom infrastructure

  • Evaluation suite: Pressure test the Datadog connector with automated evaluations to ensure high-quality, consistent tool call performance

Can I set custom security rules for Datadog tool calls in Merge Agent Handler?

Yes, Merge Agent Handler supports custom security rules through its Security Gateway and Data Loss Protection (DLP) system. These rules can inspect both tool inputs and outputs and automatically block, redact, or mask sensitive data before it is returned to the agent.

Here are just a few examples:

  • API keys and tokens: Block any tool calls that attempt to include API keys, authentication tokens, or credentials in Datadog monitor configurations, dashboard annotations, or incident notes

  • Internal service identifiers: Redact sensitive internal service names or infrastructure identifiers from Datadog query results, so agents only see masked versions (e.g., prod-*-db) when retrieving metrics or logs

  • Customer data in logs: Prevent agents from creating or updating Datadog log queries that expose customer PII, email addresses, or account numbers by blocking tool calls containing these patterns

  • Social security numbers: Block any tool calls that attempt to include SSNs in Datadog incident descriptions, dashboard text, or monitor messages before they're written to your observability platform

  • External alert destinations: Block tool calls that attempt to configure Datadog monitors or incidents with webhook destinations outside your organization's approved domains

  • Credit card numbers: Automatically block any attempts to log or query credit card information through Datadog's logging or APM tools

How can I start using Merge Agent Handler’s Datadog MCP server?

You can follow these steps:

1. Create your Agent Handler account. Sign up for a free account here

2. Create a Tool Pack. Navigate to "Tool Packs" in the left sidebar and click "Create New Tool Pack." Give it a descriptive name (e.g., "Datadog Monitoring Pack").

3. Add the Datadog connector. Browse the available connectors and add Datadog to your Tool Pack.

4. Configure authentication. Choose your authentication method:

  • Individual authentication: Each user connects their own Datadog account
  • Shared authentication: Use one set of organization-level credentials for all users

5. Select specific tools.Choose which Datadog tools you want to make available to your agent, or enable all tools by default.

6. Register a User. Navigate to "Registered Users" in the sidebar and create a new registered user. This represents the identity that will perform actions through your agent.

7. Save your Tool Pack. Review and save all your Tool Pack settings.

8. Connect to your agent or IDE. Copy the MCP entry URL from your Tool Pack settings and add it to your IDE's MCP configuration file (e.g., mcp.json for Cursor or the MCP settings for Windsurf/Claude Desktop). Include your API key in the authorization header. After restarting your IDE or agent, you'll have access to all the Datadog tools you configured.

Explore other MCP servers built and managed by Merge

No items found.

Ready to try it out?

Whether you're an engineer experimenting with agents or a product manager looking to add tools, you can get started for free now