Datadog监控服务接口

Datadog MCP服务器提供对Datadog监控功能的访问,包括事件管理、日志查询、仪表板检索等功能,适用于需要集成Datadog监控能力的开发场景。

  • by winor30
  • TypeScript
  • 本地部署
  • 143 星标
  • 更新于
在 GitHub 查看 winor30/mcp-server-datadog

使用说明

Datadog MCP服务器

免责声明:这是一个社区维护的项目,与Datadog,股份有限公司没有正式关联、认可或支持。此MCP服务器使用Datadog API,但作为 模型上下文协议 生态系统。

用于Datadog API的MCP服务器,实现事件管理等功能。

特性

  • 观察性工具:提供了一种机制,通过MCP服务器利用关键的Datadog监控功能,如事件、监视器、日志、仪表板和指标。
  • 可扩展设计:旨在轻松与其他Datadog API集成,实现无缝的未来功能扩展。

工具

  1. list_incidents

    • 从Datadog检索事件列表。
    • 输入:
      • filter (可选字符串):过滤事件的参数(例如,状态、优先级)。
      • pagination (可选对象):分页详细信息,如页面大小/偏移量。
    • 退货:Datadog事件和相关元数据数组。
  2. get_incident

    • 检索有关特定Datadog事件的详细信息。
    • 输入:
      • incident_id (string):要获取详细信息的事件ID。
    • 退货:详细的事件信息(标题、状态、时间戳等)。
  3. get_monitors

    • 获取Datadog监视器的状态。
    • 输入:
      • groupStates (可选数组):要过滤的状态(例如,alert、warn、no data、ok)。
      • name (可选字符串):按名称筛选。
      • tags (可选数组):按标签过滤。
    • 退货:监控数据及其状态摘要。
  4. get_logs

    • 从Datadog搜索和检索日志。
    • 输入:
      • query (string):Datadog日志查询字符串。
      • from (number):开始时间,以纪元秒为单位。
      • to (number):结束时间,以纪元秒为单位。
      • limit (可选数字):要返回的最大日志数(默认为100)。
    • 退货:匹配日志数组。
  5. list_dashboards

    • 从Datadog获取仪表板列表。
    • 输入:
      • name (可选字符串):按名称筛选仪表板。
      • tags (可选数组):按标签过滤仪表板。
    • 退货:带有URL引用的仪表板数组。
  6. get_dashboard

    • 从Datadog检索特定的仪表板。
    • 输入:
      • dashboard_id (string):要获取的仪表板的ID。
    • 退货:仪表板详细信息,包括标题、小部件等。
  7. query_metrics

    • 从Datadog检索指标数据。
    • 输入:
      • query (string):度量查询字符串。
      • from (number):开始时间,以纪元秒为单位。
      • to (number):结束时间,以纪元秒为单位。
    • 退货:查询时间范围的度量数据。
  8. list_traces

    • 从Datadog检索APM跟踪列表。
    • 输入:
      • query (string):Datadog APM跟踪查询字符串。
      • from (number):开始时间,以纪元秒为单位。
      • to (number):结束时间,以纪元秒为单位。
      • 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 (可选数字):从中获取活动主机总数的秒数(默认为2小时)。
    • 退货:活动主机和向上主机的总数。
  11. mute_host

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

    • 在Datadog中取消主机静音。
    • 输入:
      • hostname (string):要取消静音的主机的名称。
    • 退货:成功状态和确认消息。
  13. list_downtimes

    • 列出Datadog的计划停机时间。
    • 输入:
      • currentOnly (可选布尔值):当为true时,仅返回当前活动的停机时间。
      • monitorId (可选编号):按监视器ID筛选。
    • 退货:一系列计划停机时间,包括范围、监控信息和时间表等详细信息。
  14. schedule_downtime

    • 在Datadog中安排停机时间。
    • 输入:
      • scope (string):应用停机时间的范围(例如“主机:我的主机”)。
      • start (可选数字):停机时间开始的UNIX时间戳。
      • end (可选数字):停机时间结束的UNIX时间戳。
      • message (可选字符串):与停机时间一起包含的消息。
      • timezone (可选字符串):停机时间的时区(例如“UTC”、“America/New_York”)。
      • monitorId (可选编号):要静音的显示器的ID。
      • monitorTags (可选数组):用于过滤的监视器标签列表。
      • recurrence (可选对象):停机时间的重复设置。
        • type (字符串):重复类型(“天”、“周”、“月”、“年”)。
        • period (数字):重复的频率(必须>=1)。
        • weekDays (可选数组):每周重复的天数。
        • until (可选数字):重复结束时的UNIX时间戳。
    • 退货:计划停机时间详细信息,包括ID和活动状态。
  15. cancel_downtime

    • 取消Datadog中的计划停机时间。
    • 输入:
      • downtimeId (number):要取消的停机ID。
    • 退货:确认取消停机时间。
  16. get_rum_applications

    • 获取组织中的所有RUM应用程序。
    • 输入:没有。
    • 退货:RUM应用程序列表。
  17. get_rum_events

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

    • 按指定维度搜索、分组和计数RUM事件。
    • 输入:
      • query (可选字符串):RUM搜索的附加查询筛选器(默认值:“*”)。
      • from (number):开始时间,以纪元秒为单位。
      • to (number):结束时间,以纪元秒为单位。
      • groupBy (可选字符串):按维度对结果进行分组(默认值:“application.name”)。
    • 退货:分组事件计数。
  19. get_rum_page_performance

    • 从RUM数据中获取页面(查看)性能指标。
    • 输入:
      • query (可选字符串):RUM搜索的附加查询筛选器(默认值:“*”)。
      • from (number):开始时间,以纪元秒为单位。
      • to (number):结束时间,以纪元秒为单位。
      • metricNames (字符串数组):要检索的度量名称数组(例如,“view.load_time”、“view.first_contentful_paint”)。
    • 退货:性能指标,包括每个指标的平均值、最小值、最大值和计数。
  20. get_rum_page_waterfall

    • 检索按应用程序名称和会话ID过滤的RUM页面(视图)瀑布图数据。
    • 输入:
      • applicationName (string):用于筛选事件的应用程序名称。
      • sessionId (string):用于筛选事件的会话ID。
    • 退货:指定应用程序和会话的瀑布数据。

设置

Datadog凭据

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

  • 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安装

通过以下方式自动安装克劳德桌面版Datadog MCP服务器 铁匠铺:

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检查员。您可以使用以下命令运行检查器:

npm run inspector

检查器将提供一个URL,您可以在浏览器中打开该URL以查看日志并手动发送请求。

贡献

欢迎投稿!如果您有任何建议、错误报告或改进建议,请随时打开问题或拉取请求。

许可证

该项目根据 Apache许可证,版本2.0.