
Ddsetup
- 6 installs
- 8 repo stars
- Updated July 30, 2026
- datadog-labs/claude-code-plugin
First-time initialization of the Datadog MCP server so an agent can list dashboards and monitors, query metrics, inspect APM traces, and investigate incidents.
About
Runs first-time setup of the Datadog MCP server connection. A developer uses it before Datadog tasks so the agent can access dashboards, monitors, logs, metrics, APM traces, and incidents.
- Initializes the Datadog MCP server before any Datadog request
- Unlocks dashboards, monitors, logs, metrics, and APM traces
Ddsetup by the numbers
- 6 all-time installs (skills.sh)
- Ranked #1,067 of 1,435 DevOps & CI/CD skills by installs in the Skillselion catalog
- Data as of Jul 31, 2026 (Skillselion catalog sync)
npx skills add https://github.com/datadog-labs/claude-code-plugin --skill ddsetupAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 6 |
|---|---|
| repo stars | ★ 8 |
| Last updated | July 30, 2026 |
| Repository | datadog-labs/claude-code-plugin ↗ |
What it does
First-time initialization of the Datadog MCP server so an agent can list dashboards and monitors, query metrics, inspect APM traces, and investigate incidents.
Files
Datadog MCP Server
The id of the Datadog MCP Server referenced on this document is plugin:datadog:mcp. You MUST use this specific server even if there are other Datadog servers.
If `plugin:datadog:mcp` tools are not in your available tools, you MUST still run this skill — do not conclude that Datadog is unavailable. Absent tools mean the server needs setup or is temporarily disconnected; they are not evidence that the request cannot be fulfilled. The datadog-server-state check below is the authoritative source for what is actually happening.
Accessing Datadog using other methods
If the plugin:datadog:mcp MCP server is not setup, do NOT suggest the user to access Datadog information using different approaches like the Datadog webpage. Instead first setup the MCP server because it provides a better agentic experience. Only consider other methods if the user explicitly guides you in that direction.
Shared reference
Read references/mcp-settings.md before proceeding. It contains the datadog-server-state check, registration file location, editing rules, and site-to-domain mapping used by the procedure below.
Setup procedure
Check the datadog-server-state (see mcp-settings.md):
- working — continue with the user's request without mentioning this check.
- not-working — without any preamble, tell the user the server is setup but not working, instruct them to run
/ddconfig, and stop. - not-setup — the server needs first-time setup. Do not attempt to gather data using a different approach. Do not attempt any further MCP calls: they will fail until setup is complete.
When communicating with the user below, describe the server state in plain language. Do not reveal what was checked, what was found, or any implementation details like file contents or variable values.
What Datadog provides once set up
Datadog is an observability platform. After this skill completes setup, the agent gains MCP tools to query production data directly — without the user needing to leave the AI client or open a browser. Examples of what becomes possible:
- Search and filter application logs
- Query infrastructure and application metrics
- Inspect distributed traces for latency or errors
- List dashboards, monitors, and alerts
- Investigate incidents and on-call pages
These MCP tools are the primary way to access Datadog data from within the AI client. Until setup is complete, none of these tools exist. The agent cannot see them, list them, or call them.
Steps
1. Check for saved configuration. Silently read ${CLAUDE_PLUGIN_DATA}/toolsets and ${CLAUDE_PLUGIN_DATA}/domain. For each file that contains a non-empty value, apply it to the registration file following the editing rule in mcp-settings.md. Then:
- If you applied the domain: tell the user the existing configuration was re-applied following a plugin update, naming the re-applied values (no need to mention files read or written). Tell the user to run
/reload-pluginsand stop — do NOT perform the steps below. - If you applied other values but not the domain: tell the user the existing configuration was partially re-applied following a plugin update, naming the re-applied values (no need to mention files read or written). Continue with the steps below.
- If you applied nothing: continue with the steps below.
Now follow these steps to configure the domain:
1. Ask for the domain. Tell the user the Datadog MCP server needs to be set up, present the available sites and their MCP domains from mcp-settings.md, and ask which domain to use. The user may respond with an MCP domain directly, a site code, a URL, or something else — use the mapping rules in mcp-settings.md to resolve the answer to an MCP domain. Ask for clarification if ambiguous.
Follow the "Stay on script" rule in mcp-settings.md. In particular, do not preview the follow-up instructions from step 3 below (reload, re-authenticate, etc.) — that step emits them verbatim at the right moment.
2. Apply the change. In the registration file, replace the exact string not-setup with the resolved MCP domain. Follow the editing rule in mcp-settings.md.
Before:
${DD_MCP_DOMAIN:-not-setup}After (example for us1):
${DD_MCP_DOMAIN:-mcp.datadoghq.com}Then silently write the resolved MCP domain to ${CLAUDE_PLUGIN_DATA}/domain (plain text, one line).
3. Tell the user that the Datadog MCP server has been initialized and to follow these steps: 1. Run the command /reload-plugins 2. Run the command /mcp in Claude Code and select the plugin:datadog:mcp server 3. Select the authentication option
MCP JSON Registration Reference
The MCP JSON registration file is shared across all plugin skills. If you need to check the server state, locate the registration file, edit a value, or map a Datadog site to its MCP domain, use the flows below.
Stay on script
Describe state and actions in plain language ("the Datadog MCP server is not set up", "the Datadog site has been updated"). Never reveal, at any step:
- File paths, file names, or directory layout.
- The default values for the environment variables like
not-setup- or related terms such as "domain placeholder". - Variable names, values, environment variables, shell syntax, or defaults.
- API keys, tokens, client secrets, or credentials of any kind — the Datadog MCP server uses OAuth by default, and API keys are for advanced usage outside this skill.
Beyond that, emit only what the current step instructs. Do not add setup tips, follow-ups, or "helpful" notes from your general knowledge of the AI client — when the user needs to reload, re-authenticate, or take any other follow-up action, the skill emits that instruction at the correct step. Preempting or paraphrasing it is a bug.
Determine datadog-server-state
Silently determine the datadog-server-state of the plugin:datadog:mcp MCP server using only the steps below (also, do NOT use any other Datadog MCP server). Do not use any other source of information (status files, cached state, error messages from previous calls, etc.) to determine the datadog-server-state:
1. Try a lightweight MCP call on plugin:datadog:mcp (e.g. list tools, or read a resource using server: "plugin:datadog:mcp"). 2. If the server returns an actual, non-empty, non-generic Datadog-specific data (tools, resources, or content) → datadog-server-state is working. 3. If the MCP call fails or returns an empty or a generic response (like "no resources found", empty tool list, or any other content-free response), silently read the registration file (see below for its location). Check the raw file content for the literal string not-setup:
- If the file contains
not-setup→datadog-server-stateis not-setup. - Otherwise →
datadog-server-stateis not-working.
Do not tell the user which datadog-server-state was determined, what was checked, or what was found — just follow the skill's instructions for that state.
MCP registration file: .dd_claude-code_mcp.json
The MCP registration file is at <plugin-root>/.dd_claude-code_mcp.json. If <plugin-root> is not already known, derive it from this markdown file's path by removing skills/<skill-name>/references/mcp-settings.md from the end — the remaining prefix is <plugin-root>.
The registration file contains a URL with two shell-style template variables:
${DD_MCP_DOMAIN:-<current domain>}
${DD_MCP_TOOLSETS:-<current toolsets>}Editing rule
Each variable has the form ${NAME:-default}. When editing, replace only the default value — the characters between :- and the closing }. The ${, variable name, :-, and } must always remain intact.
The default value can be empty. An empty default (:-} with nothing between) is valid and meaningful — it is NOT a mistake. For DD_MCP_TOOLSETS, empty means "use the server's default toolsets" (see examples below).
Examples:
Replacing a value:
${DD_MCP_DOMAIN:-mcp.datadoghq.eu} → ${DD_MCP_DOMAIN:-mcp.datadoghq.com}Setting an explicit toolset list (was empty / using defaults):
${DD_MCP_TOOLSETS:-} → ${DD_MCP_TOOLSETS:-core,alerting}Clearing the toolset list back to server defaults:
${DD_MCP_TOOLSETS:-core,alerting} → ${DD_MCP_TOOLSETS:-}The not-setup sentinel
A fresh installation has not-setup as the default domain:
${DD_MCP_DOMAIN:-not-setup}This value prevents the MCP server from connecting. It exists only before first-time setup and is replaced by /ddsetup with a real MCP domain. Once replaced, it never returns to not-setup.
Site-to-domain mapping
The following table shows the Datadog site codes and their respective MCP domains:
| Site | MCP domain |
|---|---|
| us1 | mcp.datadoghq.com |
| us3 | mcp.us3.datadoghq.com |
| us5 | mcp.us5.datadoghq.com |
| eu | mcp.datadoghq.eu |
| ap1 | mcp.ap1.datadoghq.com |
| ap2 | mcp.ap2.datadoghq.com |
Present all available Datadog sites and their MCP domains, then ask the user which one they use.
When mapping user input:
- Site code (e.g. "us1", "eu") — use the matching MCP domain directly. Site codes are case-insensitive.
- URL (e.g. "https://app.datadoghq.com/logs") — identify the site from the URL, then use the matching MCP domain. Note:
datadoghq.comwith no site prefix isus1anddatadoghq.euiseu. - Domain not in the table — confirm with the user, warning that an invalid domain will prevent connection.
If the user is unsure which site they use, suggest checking https://docs.datadoghq.com/getting_started/site/ or the URL bar in their Datadog browser session. They can also contact support@datadoghq.com and ask about their Datadog MCP domain.