mcpField
D
Datadog MCP Server

Datadog MCP Server

本地服务
github.com/winor30开发工具1433 天前更新

关于 Datadog MCP Server

Datadog MCP 服务是一个由社区维护的项目,通过 Datadog API 提供事件管理与可观测性数据的访问。它覆盖事件、监控器、日志、仪表板、指标、APM 追踪、主机和 RUM 等功能。该项目与 Datadog, Inc. 无官方关联。

主要功能

  1. 01查询事件列表与单个事件详情
  2. 02获取监控器状态与日志检索
  3. 03查询指标、APM 追踪和仪表板
  4. 04主机列表、静音与停机计划管理
  5. 05RUM 应用、事件与页面性能查询

适用场景

  1. 01在 AI 客户端中查看并跟进 Datadog 事件
  2. 02检索日志与指标以辅助故障排查
  3. 03为主机计划或取消停机维护窗口

MCP 相关

该项目是一个 MCP 服务,向 MCP 客户端暴露 list_incidents、get_logs、query_metrics 等 20 个工具,用于访问 Datadog API。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"datadog": {
"command": "npx",
"args": [
"-y",
"@smithery/cli"
]
}
}
}
启动命令npx -y @smithery/cli

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@smithery/cli

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Datadog MCP 服务

免责声明:这是一个由社区维护的项目,与 Datadog, Inc. 没有官方关联,也未获得其认可或支持。此 MCP 服务使用 Datadog API,但作为 Model Context Protocol 生态系统的一部分独立开发。

NPM VersionBuild and Testcodecovsmithery badge

适用于 Datadog API 的 MCP 服务,可用于事件管理等。

mcp-server-datadog MCP server

功能

  • 可观测性工具:通过 MCP 服务提供使用 Datadog 关键监控功能的方式,例如事件、监视器、日志、仪表板和指标。
  • 可扩展设计:设计易于与其他 Datadog API 集成,可无缝扩展未来的功能。

工具

  1. list_incidents

    • 获取 Datadog 事件列表。
    • 输入:
      • filter(可选字符串):事件筛选参数(例如状态、优先级)。
      • pagination(可选对象):分页详情,例如页面大小/偏移量。
    • 返回:Datadog 事件数组及相关元数据。
  2. get_incident

    • 获取特定 Datadog 事件的详细信息。
    • 输入:
      • incident_id(字符串):要获取详情的事件 ID。
    • 返回:事件详细信息(标题、状态、时间戳等)。
  3. get_monitors

    • 获取 Datadog 监视器的状态。
    • 输入:
      • groupStates(可选数组):用于筛选的状态(例如警报、警告、无数据、正常)。
      • name(可选字符串):按名称筛选。
      • tags(可选数组):按标签筛选。
    • 返回:监视器数据及其状态摘要。
  4. get_logs

    • 搜索并获取 Datadog 日志。
    • 输入:
      • query(字符串):Datadog 日志查询字符串。
      • from(数字):以 Unix 纪元秒表示的开始时间。
      • to(数字):以 Unix 纪元秒表示的结束时间。
      • limit(可选数字):要返回的最大日志数量(默认为 100)。
    • 返回:匹配的日志数组。
  5. list_dashboards

    • 获取 Datadog 仪表板列表。
    • 输入:
      • name(可选字符串):按名称筛选仪表板。
      • tags(可选数组):按标签筛选仪表板。
    • 返回:包含 URL 引用的仪表板数组。
  6. get_dashboard

    • 获取 Datadog 中的特定仪表板。
    • 输入:
      • dashboard_id(字符串):要获取的仪表板 ID。
    • 返回:仪表板详情,包括标题、小组件等。
  7. query_metrics

    • 获取 Datadog 指标数据。
    • 输入:
      • query(字符串):指标查询字符串。
      • from(数字):以 Unix 纪元秒表示的开始时间。
      • to(数字):以 Unix 纪元秒表示的结束时间。
    • 返回:指定时间范围内的指标数据。
  8. list_traces

    • 从 Datadog 检索 APM 跟踪列表。
    • 输入:
      • query(字符串):Datadog APM 跟踪查询字符串。
      • from(数字):开始时间,单位为纪元秒。
      • to(数字):结束时间,单位为纪元秒。
      • limit(可选数字):要返回的跟踪数量上限(默认为 100)。
      • sort(可选字符串):跟踪的排序顺序(默认为 -timestamp)。
      • service(可选字符串):按服务名称筛选。
      • operation(可选字符串):按操作名称筛选。
    • 返回:Datadog APM 中匹配的跟踪数组。
  9. list_hosts

    • 获取 Datadog 中的主机列表。
    • 输入:
      • filter(可选字符串):用于筛选搜索结果的字符串。
      • sort_field(可选字符串):主机排序所依据的字段。
      • sort_dir(可选字符串):排序方向(asc/desc)。
      • start(可选数字):分页起始偏移量。
      • count(可选数字):要返回的主机数量上限(最大值:1000)。
      • from(可选数字):从此 UNIX 时间戳开始搜索主机。
      • include_muted_hosts_data(可选布尔值):包含已静音主机的状态和到期时间。
      • include_hosts_metadata(可选布尔值):包含主机元数据(版本、平台等)。
    • 返回:主机数组,包含名称、ID、别名、应用、静音状态等详细信息。
  10. get_active_hosts_count

    • 获取 Datadog 中活动主机的总数。
    • 输入:
      • from(可选数字):要获取活动主机总数的时间范围(秒),默认为 2h。
    • 返回:活动且处于运行状态的主机总数。
  11. mute_host

    • 在 Datadog 中将主机静音。
    • 输入:
      • hostname(字符串):要静音的主机名称。
      • message(可选字符串):与静音此主机关联的消息。
      • end(可选数字):静音结束时间的 POSIX 时间戳。
      • override(可选布尔值):如果为 true 且主机已静音,则替换现有结束时间。
    • 返回:操作成功状态和确认消息。
  12. unmute_host

    • 在 Datadog 中取消主机静音。
    • 输入:
      • hostname(字符串):要取消静音的主机名称。
    • 返回:操作成功状态和确认消息。
  13. list_downtimes

    • 列出 Datadog 中已安排的停机时间。
    • 输入:
      • currentOnly(可选布尔值):为 true 时,仅返回当前生效的停机时间。
      • monitorId(可选数字):按监控器 ID 筛选。
    • 返回:已安排停机时间的数组,包含作用范围、监控器信息和计划等详细信息。
  14. schedule_downtime

    • 在 Datadog 中安排停机时间。
    • 输入:
      • scope(字符串):停机时间的适用范围(例如 'host:my-host')。
      • start(可选数字):停机时间开始时的 UNIX 时间戳。
      • end(可选数字):停机时间结束时的 UNIX 时间戳。
      • message(可选字符串):停机时间附带的消息。
      • timezone(可选字符串):停机时间所在的时区(例如 'UTC'、'America/New_York')。
      • monitorId(可选数字):要静音的监控器 ID。
      • monitorTags(可选数组):用于筛选的监控器标签列表。
      • recurrence(可选对象):停机时间的重复设置。
        • type(字符串):重复类型('days'、'weeks'、'months'、'years')。
        • period(数字):重复间隔(必须 >= 1)。
        • weekDays(可选数组):每周重复时对应的星期几。
        • until(可选数字):重复结束时的 UNIX 时间戳。
    • 返回:已安排停机时间的详细信息,包括 ID 和生效状态。
  15. cancel_downtime

    • 取消 Datadog 中已安排的停机时间。
    • 输入:
      • downtimeId(数字):要取消的停机时间 ID。
    • 返回:确认停机时间已取消。
  16. get_rum_applications

    • 获取组织中的所有 RUM 应用。
    • 输入:无。
    • 返回:RUM 应用列表。
  17. get_rum_events

    • 搜索并检索 Datadog 中的 RUM 事件。
    • 输入:
      • query(字符串):Datadog RUM 查询字符串。
      • from(数字):开始时间,以 epoch 秒为单位。
      • to(数字):结束时间,以 epoch 秒为单位。
      • limit(可选数字):要返回的最大事件数(默认值:100)。
    • 返回:RUM 事件数组。
  18. get_rum_grouped_event_count

    • 按指定维度搜索、分组并统计 RUM 事件。
    • 输入:
      • query(可选字符串):RUM 搜索的附加查询筛选条件(默认值:"*")。
      • from(数字):开始时间,以 epoch 秒为单位。
      • to(数字):结束时间,以 epoch 秒为单位。
      • groupBy(可选字符串):对结果进行分组的维度(默认值:"application.name")。
    • 返回:分组后的事件计数。
  19. get_rum_page_performance

    • 获取 RUM 数据中的页面(视图)性能指标。
    • 输入:
      • query(可选字符串):RUM 搜索的附加查询筛选条件(默认值:"*")。
      • from(数字):开始时间,以 epoch 秒为单位。
      • to(数字):结束时间,以 epoch 秒为单位。
      • metricNames(字符串数组):要检索的指标名称数组(例如,'view.load_time'、'view.first_contentful_paint')。
    • 返回:性能指标,包括每项指标的平均值、最小值、最大值和计数。
  20. get_rum_page_waterfall

    • 按应用名称和会话 ID 筛选并检索 RUM 页面(视图)的瀑布数据。
    • 输入:
      • applicationName(字符串):用于筛选事件的应用名称。
      • sessionId(字符串):用于筛选事件的会话 ID。
    • 返回:指定应用和会话的瀑布数据。

设置

Datadog 凭据

使用此 MCP 服务需要有效的 Datadog API 凭据:

  • DATADOG_API_KEY:你的 Datadog API 密钥
  • DATADOG_APP_KEY:你的 Datadog 应用密钥
  • DATADOG_SITE(可选):Datadog 站点(例如 datadoghq.eu)
  • DATADOG_SUBDOMAIN(可选):Datadog 子域名(例如 <your-subdomain>.datadoghq.com)
  • DATADOG_STORAGE_TIER(可选):v2 日志搜索的日志存储层级。支持的值:indexes、online-archives 或 flex。

运行服务前,请在环境中导出这些变量:

export DATADOG_API_KEY="your_api_key"
export DATADOG_APP_KEY="your_app_key"
export DATADOG_SITE="your_datadog_site" # Optional
export DATADOG_SUBDOMAIN="your_datadog_subdomain" # Optional
export DATADOG_STORAGE_TIER="flex" # Optional: indexes | online-archives | flex

安装

通过 Smithery 安装

通过 Smithery 自动为 Claude Desktop 安装 Datadog MCP Server:

npx -y @smithery/cli install @winor30/mcp-server-datadog --client claude
手动安装
pnpm install
pnpm build
pnpm watch   # for development with auto-rebuild

在 Claude Desktop 中使用

要在 Claude Desktop 中使用此服务,请将以下内容添加到 claude_desktop_config.json:

MacOS:~/Library/Application Support/Claude/claude_desktop_config.json Windows:%APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
      }
    }
  }
}
{
  "mcpServers": {
    "datadog": {
      "command": "/path/to/mcp-server-datadog/build/index.js",
      "env": {
        "DATADOG_API_KEY": "<YOUR_API_KEY>",
        "DATADOG_APP_KEY": "<YOUR_APP_KEY>",
        "DATADOG_SITE": "<YOUR_SITE>", // Optional
        "DATADOG_SUBDOMAIN": "<YOUR_SUBDOMAIN>", // Optional
        "DATADOG_STORAGE_TIER": "indexes" // Optional: indexes | online-archives | flex
      }
    }
  }
}

或者通过 npx 指定:

{
  "mcpServers": {
    "mcp-server-datadog": {
      "command": "npx",
      "args": ["-y", "@winor30/mcp-server-datadog"],
      "env": {
        "DATADOG_API_KEY": "<YOUR_API_KEY>",
        "DATADOG_APP_KEY": "<YOUR_APP_KEY>",
        "DATADOG_SITE": "<YOUR_SITE>", // Optional
        "DATADOG_SUBDOMAIN": "<YOUR_SUBDOMAIN>", // Optional
        "DATADOG_STORAGE_TIER": "indexes" // Optional: indexes | online-archives | flex
      }
    }
  }
}

调试

由于 MCP 服务通过标准输入/输出进行通信,调试有时会比较棘手。我们建议使用 MCP Inspector。你可以通过以下命令运行 Inspector:

npm run inspector

Inspector 会提供一个 URL,你可以在浏览器中打开它以查看日志并手动发送请求。

贡献

欢迎贡献!如果你有任何建议、错误报告或改进提议,欢迎提交 issue 或 pull request。

许可证

本项目根据 Apache License, Version 2.0 授权。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。