CAT
/MCP
SkillsMCPMarketplacesDigestToolsAdvertise

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by Category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP Servers by Category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by Category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control

Cross AI Tools

Discover Claude Code plugins, extensions, and tools. Automatically updated directory of Anthropic Claude AI marketplaces with development tools, productivity plugins, and integrations.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Marketplaces
  • Plugins Reference

Community

  • About
  • Tools
  • Feedback
  • Privacy Policy
  • Advertise

Built for the Claude Code community with Claude Code by @mertduzgun

Independent project, not affiliated with Anthropic

Datadog Mcp

tantiope/datadog-mcp-server
4authSTDIOregistry active
Summary

A comprehensive bridge to Datadog's observability platform that exposes monitors, logs, metrics, traces, dashboards, and APM through MCP tools. You get grep-style log search, trace filtering with duration and error queries, and smart sampling modes to stay within token budgets. Supports both stdio for local Claude Desktop setups and HTTP transport for container or Kubernetes deployments. The monitor tools cover the full lifecycle from creation with schema validation to muting, unmuting, and tracking alert history with real state transitions filtered from renotify noise. Ships with Docker images and handles EU/US site selection. Useful when you need to query production observability data, correlate logs with traces, or manage alert configurations directly from an AI conversation without switching to the Datadog UI.

CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →

Datadog MCP Server

Quality gate CI/Release npm License Coverage

DISCLAIMER: This is a community-maintained project and is not officially affiliated with, endorsed by, or supported by Datadog, Inc. This MCP server utilizes the Datadog API but is developed independently.

MCP server providing AI assistants with full Datadog observability access. Features grep-like log search, APM trace filtering with duration/status/error queries, smart sampling modes for token efficiency, and cross-correlation between logs, traces, and metrics. Supports both stdio (local) and http (remote/Kubernetes) transports.

Quick Start

Minimal Claude Desktop / VS Code / Cursor config — just the two required keys:

{
  "mcpServers": {
    "datadog": {
      "command": "npx",
      "args": ["-y", "datadog-mcp"],
      "env": {
        "DD_API_KEY": "your-api-key",
        "DD_APP_KEY": "your-app-key"
      }
    }
  }
}

With optional tuning (EU site, custom default limits, longer log windows):

{
  "mcpServers": {
    "datadog": {
      "command": "npx",
      "args": ["-y", "datadog-mcp"],
      "env": {
        "DD_API_KEY": "your-api-key",
        "DD_APP_KEY": "your-app-key",
        "DD_SITE": "datadoghq.eu",
        "MCP_DEFAULT_LIMIT": "50",
        "MCP_DEFAULT_LOG_LINES": "200",
        "MCP_DEFAULT_METRIC_POINTS": "1000",
        "MCP_DEFAULT_TIME_RANGE": "24"
      }
    }
  }
}

To run as an HTTP server (e.g. inside a container or Kubernetes pod), add transport variables to the same env block:

"env": {
  "DD_API_KEY": "your-api-key",
  "DD_APP_KEY": "your-app-key",
  "MCP_TRANSPORT": "http",
  "MCP_PORT": "3000",
  "MCP_HOST": "0.0.0.0"
}

Configuration

Required environment variables

DD_API_KEY=your-api-key
DD_APP_KEY=your-app-key

Optional environment variables

DD_SITE=datadoghq.com  # Default. Use datadoghq.eu for EU, etc.

# Limit defaults (fallbacks when the AI doesn't specify)
MCP_DEFAULT_LIMIT=50              # General tools default limit
MCP_DEFAULT_LOG_LINES=200         # Logs tool default limit
MCP_DEFAULT_METRIC_POINTS=1000    # Metrics timeseries data points
MCP_DEFAULT_TIME_RANGE=24         # Default time range in hours

# Transport (alternative to CLI flags — useful in Kubernetes)
MCP_TRANSPORT=stdio               # stdio | http
MCP_PORT=3000                     # HTTP port
MCP_HOST=0.0.0.0                  # HTTP host

Optional flags

--site=datadoghq.com     # Datadog site (overrides DD_SITE)
--transport=stdio|http   # Transport mode (default: stdio)
--port=3000              # HTTP port when using http transport
--host=0.0.0.0           # HTTP host when using http transport
--read-only              # Block all write operations
--disable-tools=synthetics,rum,security    # Comma-separated list of tools to disable

Transports

TransportWhen to useEndpoints
stdio (default)Local MCP clients — Claude Desktop, Cursor, VS Coden/a (process stdin/stdout)
httpRemote / container / KubernetesPOST /mcp · GET /mcp (SSE) · DELETE /mcp · GET /health

Select with --transport=http or MCP_TRANSPORT=http.

Deployment

Docker

{
  "mcpServers": {
    "datadog": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "DD_API_KEY",
        "-e", "DD_APP_KEY",
        "-e", "DD_SITE",
        "ghcr.io/tantiope/datadog-mcp"
      ],
      "env": {
        "DD_API_KEY": "your-api-key",
        "DD_APP_KEY": "your-app-key",
        "DD_SITE": "datadoghq.com"
      }
    }
  }
}

Kubernetes

Use environment variables — not container args — for transport configuration:

env:
  - name: DD_API_KEY
    value: "your-api-key"
  - name: DD_APP_KEY
    value: "your-app-key"
  - name: MCP_TRANSPORT
    value: "http"
  - name: MCP_PORT
    value: "3000"
  - name: MCP_HOST
    value: "0.0.0.0"

Note: Kubernetes args: replaces the entire Dockerfile CMD, causing Node.js to receive the flags instead of your application. Environment variables avoid this issue.

Tools

ToolActionCategoryDescriptionRequired Scopes
monitorslistAlertingList monitors with optional filtersmonitors_read
monitorsgetAlertingGet monitor by IDmonitors_read
monitorssearchAlertingSearch monitors by querymonitors_read
monitorscreateAlertingCreate a new monitor; config is validated against a typed schema covering documented options (notifyNoData, renotifyInterval, thresholds, …) — unknown keys surface in warnings. Pass dry_run: true to validate without creating (uses /api/v1/monitor/validate, allowed in read-only mode).monitors_write
monitorsupdateAlertingUpdate an existing monitor; same validated schema as create; partial configs accepted; validation errors short-circuit before any HTTP call as EINVALID_MONITOR_CONFIG:monitors_write
monitorspreviewAlertingRender a monitor template (inline message or by monitor_id/id) with optional context of variables and conditionals. Returns {rendered, variablesUsed, variablesMissing, conditionalsResolved}. Supports Datadog Mustache subset: variable substitution + six documented conditionals (is_alert, is_warning, is_no_data, is_recovery, is_alert_to_warning, is_warning_to_alert); {{#each}}/partials throw EUNSUPPORTED_TEMPLATE_SYNTAX. Read-only.monitors_read
monitorstest_notificationAlertingKnown limitation: returns ENOT_SUPPORTED — Datadog has no public REST endpoint for triggering a test notification. Documentation pointer in response.n/a
monitorsdeleteAlertingDelete a monitormonitors_write
monitorsmuteAlertingMute a monitormonitors_write
monitorsunmuteAlertingUnmute a monitormonitors_write
monitorstopAlertingTop N monitors by alert frequency with real monitor names and context breakdown. WARNING: total_count includes renotifies/re-evaluations (Datadog emits a renotify event every renotify_interval minutes while Alert). For real fires use action=history.monitors_read
monitorshistoryAlertingCount and list real state transitions for one monitor over a time window. Filters by transitionType (default ["alert","alert recovery"] — fires+recoveries, excludes renotifies) and optional group. Returns {transitions: [...], count, meta} where count is the number of real transitions (e.g. for one always-Alert burn-rate monitor over 7d: 98 raw events vs 38 real transitions).monitors_read, events_read
dashboardslistVisualizationList all dashboardsdashboards_read
dashboardsgetVisualizationGet dashboard by IDdashboards_read
dashboardscreateVisualizationCreate a new dashboarddashboards_write
dashboardsupdateVisualizationUpdate a dashboarddashboards_write
dashboardsdeleteVisualizationDelete a dashboarddashboards_write
logssearchLogsSearch logs with query syntax and filterslogs_read_data, logs_read_index_data
logsaggregateLogsAggregate log data with groupBylogs_read_data
logs_pipelineslist, getLogs ConfigInspect log processing pipelines and their processorslogs_read_config
logs_pipelinescreate, update, delete, reorderLogs ConfigAuthor pipelines and processor chainslogs_write_config
logs_pipelinesget_orderLogs ConfigRead pipeline evaluation orderlogs_read_config
logs_indexeslist, getLogs ConfigInspect indexes (filter, retention, Flex tier, exclusion filters); create/delete are UI-only per Datadog and not exposedlogs_read_config
logs_indexesupdate, reorderLogs ConfigUpdate index filter/retention/quota and reorder evaluationlogs_write_config
logs_indexesget_orderLogs ConfigRead index evaluation orderlogs_read_config
logs_archiveslist, getLogs ConfigInspect log archives (S3 / GCS / Azure destinations); per-provider credential fields are forwarded unchangedlogs_read_archives
logs_archivescreate, update, delete, reorderLogs ConfigManage archive destinations; destination.type validated against `s3gcs
logs_archivesget_orderLogs ConfigRead archive evaluation orderlogs_read_archives
metricsqueryMetricsQuery timeseries data. Response meta includes rollupRequested (parsed from rollup(method, seconds), with methodInferred flag), rollupEffective (interval derived from returned pointlist intervals + deduped intervalsObserved for multi-series), and rollupOverridden: boolean so callers can detect when Datadog silently downsampled.metrics_read, timeseries_query
metricssearchMetricsSearch for metrics by namemetrics_read
metricslistMetricsList active metricsmetrics_read
metricsmetadataMetricsGet metric metadatametrics_read
tracessearchAPMSearch spans with filtersapm_read
tracesaggregateAPMAggregate trace dataapm_read
tracesservicesAPMList APM servicesapm_service_catalog_read
eventslistEventsList eventsevents_read
eventsgetEventsGet event by IDevents_read
eventscreateEventsCreate an eventevents_read
eventssearchEventsSearch events with v2 API and cursor pagination. Optional transitionType filter (e.g. ["alert","alert recovery"]) restricts to monitor state-transition events — without it, source:alert includes renotifies. For monitor-specific fires use monitors action=history. Optional timezone adds *Local ISO 8601 siblings to every timestamp. Zero-result responses include a diagnostics array hinting at the cause (UNINDEXED_TAG_PREFIX, NARROW_TIME_RANGE, RESTRICTIVE_SOURCE_FILTER).events_read
eventshistogramEventsServer-side bucketing of events by hour_of_day, day_of_week, or day_of_month in an IANA timezone (DST-safe via Intl.DateTimeFormat). Accepts the same transitionType filter as search so monitor histograms can exclude renotifies. Cursor-paginates the underlying search; cap at limits.maxEventsForHistogram (default 5000, MCP_MAX_EVENTS_HISTOGRAM env var). When the cap is hit, returns bucketCountIncomplete: true and nextCursor for continuation.events_read
eventsaggregateEventsClient-side aggregation by monitor_name, source, etc.events_read
eventstopEventsTop N event groups by count with generic groupBy support (deployments, configs, alerts, etc.). Groups without context tags are included as "no_context"events_read
eventstimeseriesEventsTime-bucketed alert trends (hourly/daily counts)events_read
eventsincidentsEventsDeduplicate alerts into incidents with Trigger/Recover pairingevents_read
incidentslistIncidentsList incidentsincident_read
incidentsgetIncidentsGet incident by IDincident_read
incidentssearchIncidentsSearch incidentsincident_read
incidentscreateIncidentsCreate an incidentincident_write
incidentsupdateIncidentsUpdate an incidentincident_write
incidentsdeleteIncidentsDelete an incidentincident_write
sloslistSLOsList SLOs. Each item exposes query, monitorIds, monitorTags, groups, and a UI url so round-trips (get → edit → update) preserve definition fields.slos_read
slosgetSLOsGet SLO by ID (same projection as list).slos_read
sloscreateSLOsCreate an SLOslos_write
slosupdateSLOsUpdate an SLOslos_write
slosdeleteSLOsDelete an SLOslos_write
sloshistorySLOsGet SLO historyslos_read
syntheticslistSyntheticsList synthetic testssynthetics_read
syntheticsgetSyntheticsGet test by public IDsynthetics_read
syntheticscreateSyntheticsCreate a testsynthetics_write
syntheticsupdateSyntheticsUpdate a testsynthetics_write
syntheticsdeleteSyntheticsDelete a testsynthetics_write
syntheticstriggerSyntheticsTrigger a test runsynthetics_write
syntheticsresultsSyntheticsGet test resultssynthetics_read
downtimeslistDowntimesList downtimesmonitors_downtime
downtimesgetDowntimesGet downtime by IDmonitors_downtime
downtimescreateDowntimesCreate a downtimemonitors_downtime
downtimesupdateDowntimesUpdate a downtimemonitors_downtime
downtimescancelDowntimesCancel a downtimemonitors_downtime
downtimeslistByMonitorDowntimesList downtimes for a monitormonitors_downtime
hostslistInfrastructureList hostshosts_read
hoststotalsInfrastructureGet host totalshosts_read
hostsmuteInfrastructureMute a hosthosts_read
hostsunmuteInfrastructureUnmute a hosthosts_read
rumapplicationsRUMList RUM applicationsrum_read
rumeventsRUMSearch RUM eventsrum_read
rumaggregateRUMAggregate RUM datarum_read
rumperformanceRUMGet Core Web Vitals (LCP, FCP, CLS, FID, INP)rum_read
rumwaterfallRUMGet session timeline with resources/actions/errorsrum_read
securityrulesSecurityList security rulessecurity_monitoring_rules_read
securitysignalsSecuritySearch security signalssecurity_monitoring_signals_read
securityfindingsSecurityList security findingssecurity_monitoring_findings_read
notebookslistNotebooksList notebooksnotebooks_read
notebooksgetNotebooksGet notebook by IDnotebooks_read
notebookscreateNotebooksCreate a notebooknotebooks_write
notebooksupdateNotebooksUpdate a notebooknotebooks_write
notebooksdeleteNotebooksDelete a notebooknotebooks_write
userslistAdminList usersuser_access_read
usersgetAdminGet user by IDuser_access_read
teamslistAdminList teamsteams_read
teamsgetAdminGet team by IDteams_read
teamsmembersAdminList team membersteams_read
tagslistInfrastructureList all tagshosts_read
tagsgetInfrastructureGet tags for a hosthosts_read
tagsaddInfrastructureAdd tags to a hosthosts_read
tagsupdateInfrastructureUpdate host tagshosts_read
tagsdeleteInfrastructureDelete host tagshosts_read
usagesummaryBillingUsage summaryusage_read
usagehostsBillingHost usageusage_read
usagelogsBillingLog usageusage_read
usagecustom_metricsBillingCustom metrics usageusage_read
usageindexed_spansBillingIndexed spans usageusage_read
usageingested_spansBillingIngested spans usageusage_read
authvalidateAuthTest API and App key validity—

Limit Control

AI assistants have full control over query limits. The MCP_DEFAULT_* environment variables only set the fallback used when the AI doesn't specify a limit — they do NOT cap what the AI can request.

ToolDefaultParameterDescription
Logs200limitLog lines to return
Metrics (timeseries)1000pointLimitData points per series (controls resolution)
General tools50limitResults to return

Tool-level token reduction features (compact: true on logs, sample: "diverse" | "spread" | "first", field projections, diagnostics) are surfaced in each tool's MCP description and chosen by the AI at call time.

Notable behaviors

A handful of patterns worth knowing about — the AI can discover the rest from tool descriptions.

  • Renotifies vs real fires. monitors top and events search with source:alert count every renotify Datadog emits (one every renotify_interval while a monitor is Alert). To get actual state transitions, use monitors history (defaults to transitionType: ["alert","alert recovery"]) or pass transitionType to events search.
  • DST-safe time buckets. events histogram buckets by hour_of_day / day_of_week / day_of_month in any IANA timezone via Intl.DateTimeFormat. Cursor-paginates the underlying search; cap controlled by MCP_MAX_EVENTS_HISTOGRAM (default 5000) with bucketCountIncomplete + nextCursor on overflow.
  • Validate before create. monitors create with dry_run: true calls /api/v1/monitor/validate instead of persisting. Allowed in --read-only mode.
  • Monitor template preview. monitors preview renders a notification against a context payload — variable substitution + Datadog's six documented conditionals (is_alert, is_warning, is_no_data, is_recovery, is_alert_to_warning, is_warning_to_alert). {{#each}} and partials throw EUNSUPPORTED_TEMPLATE_SYNTAX.
  • SLO round-trip. slos get projects query, monitorIds, monitorTags, groups, and a UI url so you can edit and feed back into slos update without dropping definition fields.
  • Cross-correlation. logs(sample:"diverse") → pull dd.trace_id → traces(query:"trace_id:<id>") → metrics(query:"p95:trace.express.request{service:...}") (root metric without .duration for percentiles).

Deep links

Every query response includes a datadog_url field built for your configured DD_SITE — datadoghq.com (default), .eu, us3 / us5 / ap1.datadoghq.com, or ddog-gov.com. Supported on logs, metrics, traces, events, monitors, rum, slos.

Contributing

Contributions are welcome! Feel free to open an issue or a pull request if you have any suggestions, bug reports, or improvements to propose.

License

This project is licensed under the Apache License, Version 2.0.

Featured
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →

Configuration

DD_API_KEY*secret

Datadog API key

DD_APP_KEY*secret

Datadog Application key

DD_SITE

Datadog site (e.g., datadoghq.com, datadoghq.eu, us3.datadoghq.com)

Categories
Monitoring & Observability
Registryactive
Packagedatadog-mcp
TransportSTDIO
AuthRequired
UpdatedDec 18, 2025
View on GitHub

Related Monitoring & Observability MCP Servers

View all →
Mcp Observability

io.github.infoinlet-marketplace/mcp-observability

Observability for incident agents — query Loki (LogQL), Prometheus (PromQL), Elasticsearch.
Monitor

betterdb-inc/monitor

BetterDB MCP server - Valkey observability for Claude Code and other MCP clients
1.1k
Datadog

com.mcparmory/datadog

Monitor infrastructure, manage agents and deployments, track metrics, logs, and events
25
Observability Mcp

thotischner/observability-mcp

Unified observability gateway for AI agents — Prometheus, Loki & more, with anomaly detection.
5
Datadog

io.github.us-all/datadog

Datadog MCP — 165 tools for metrics, monitors, logs, APM, RUM, incidents, CI/CD, fleet
1
MCP Health Monitor

oaslananka/mcp-health-monitor

Monitor MCP server health, uptime, response times, and Azure DevOps pipeline status