SuperAPI AI 工具集

datadog-mcp-server

Datadog MCP Server 是一个由社区维护的 MCP(Model Context Protocol)服务器,为 AI 助手提供对 Datadog 可观测性平台的完整访问能力。它支持类 grep 的日志搜索、按持续时间/状态/错误条件过滤 APM 追踪、面向 token 效率的智能采样模式,以及日志、追踪与指标之间的交叉关联。该服务器支持 stdio(本地)和 http(远程/Kubernetes)两种传输方式,可用于 Claude Desktop、VS Code、Cursor 等支持 MCP 的客户端,通过两个必填密钥即可完成最小配置。项目与 Datadog, Inc. 无官方隶属或支持关系,基于 Datadog API 独立开发,采用 Apache License 2.0 许可。

访问官网

工具介绍

用途

Datadog MCP Server 为 AI 助手提供对 Datadog 可观测性平台的完整访问能力,使 AI 能够在对话中直接查询日志、追踪、指标、事件、监控器、RUM 和 SLO 等数据。

主要能力

  • 类 grep 的日志搜索。
  • APM 追踪过滤,支持按持续时间、状态和错误条件查询。
  • 智能采样模式(sample: "diverse" | "spread" | "first"),用于提升 token 效率。
  • 日志、追踪与指标之间的交叉关联。
  • 每个查询响应都包含根据所配置 DD_SITE 生成的 datadog_url 字段,支持 datadoghq.com(默认)、.eu、us3/us5/ap1.datadoghq.com 以及 ddog-gov.com,适用于 logs、metrics、traces、events、monitors、rum、slos。

使用方式

支持 stdio(本地)和 http(远程/Kubernetes)两种传输方式,通过 --transport=http 或 MCP_TRANSPORT=http 选择。配置 Claude Desktop / VS Code / Cursor 时只需两个必填密钥,也可选配置 EU 站点、自定义默认限制、更长的日志窗口等。传输配置应使用环境变量而非容器参数,因为 Kubernetes 的 args 会替换整个 Dockerfile CMD,导致 Node.js 接收到这些标志。

必填环境变量

资料中列出了“Required environment variables”一节,但未提供具体变量名与取值。

可选环境变量

资料中列出了“Optional environment variables”一节,但未提供具体变量名与取值。

AI 助手对查询限制拥有完全控制权。MCP_DEFAULT_* 环境变量仅设置 AI 未指定限制时使用的回退值,不会限制 AI 可请求的上限。工具级 token 缩减功能(日志的 compact: true、sample: "diverse" | "spread" | "first"、字段投影、诊断)在各工具的 MCP 描述中呈现,由 AI 在调用时选择。

值得注意的行为

  • Renotifies 与真实触发:monitors top 和 events search 配合 source:alert 会统计 Datadog 发出的每次 renotify(监控器处于 Alert 时每个 renotify_interval 一次)。要获取实际状态转换,请使用 monitors history(默认 transitionType: ["alert","alert recovery"])或向 events search 传入 transitionType。
  • 夏令时安全的时间分桶:events histogram 通过 Intl.DateTimeFormat 按任意 IANA 时区的 hour_of_day / day_of_week / day_of_month 分桶,底层搜索采用游标分页,上限由 MCP_MAX_EVENTS_HISTOGRAM(默认 5000)控制,溢出时返回 bucketCountIncomplete + nextCursor。
  • 创建前验证:monitors create 使用 dry_run: true 时调用 /api/v1/monitor/validate 而非持久化,在 --read-only 模式下也允许。
  • 监控器模板预览:monitors preview 针对上下文负载渲染通知,支持变量替换、Datadog 六种文档化条件(is_alert、is_warning、is_no_data、is_recovery、is_alert_to_warning、is_warning_to_alert)以及标签条件 {{#is_match "tag" "val"}}(子串)和 {{#is_exact_match "tag" "val"}}(精确),支持 ^ 取反和多个比较值的 OR(基于 context.variables 解析,区分大小写)。{{#each}} 和 partials 会抛出 EUNSUPPORTED_TEMPLATE_SYNTAX。
  • SLO 往返:slos get 会投影 query、monitorIds、monitorTags、groups 以及 UI url,便于编辑后回填到 slos update 而不丢失定义字段。
  • 交叉关联:logs(sample:"diverse") → 提取 dd.trace_id → traces(query:"trace_id:<id>") → metrics(query:"p95:trace.express.request{service:...}")(百分位使用不带 .duration 的根指标)。

适用场景

适用于需要通过 AI 助手查询和排查 Datadog 可观测性数据的开发与运维场景,包括日志检索、追踪分析、指标查询、监控器与 SLO 管理,以及本地或 Kubernetes 环境中的远程部署。

限制

该项目为社区维护,与 Datadog, Inc. 无官方隶属、认可或支持关系,基于 Datadog API 独立开发。资料未提供具体的必填/可选环境变量名称与取值、安装命令或调用示例,这些内容暂未提供。