mcpField
D
Datadog MCP Server

Datadog MCP Server

本地服务
github.com/GeLi2001开发工具7044 周前更新

关于 Datadog MCP Server

Datadog MCP Server 是一个 MCP 服务,用于通过官方 Datadog API 查询监控、仪表盘、指标、事件、日志和事件管理(Incident)数据。它面向希望让 AI 助手辅助排查 Datadog 数据的运维与开发人员。

主要功能

  1. 01监控与仪表盘数据查询
  2. 02指标列表与元数据查询
  3. 03事件与日志搜索
  4. 04日志聚合分析
  5. 05按最小权限设置 Application Key 范围

适用场景

  1. 01让 AI 助手查询处于告警状态的监控
  2. 02搜索指定服务的错误日志并聚合分析
  3. 03获取仪表盘定义用于排查问题

MCP 相关

该项目是 MCP 服务,向 MCP 客户端暴露 get-monitors、search-logs、aggregate-logs 等工具。

配置

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

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

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

安装包
npm@modelcontextprotocol/inspector

工具

还没有获取到工具列表

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

详细介绍

Datadog MCP 服务

一个用于与 Datadog API 交互的模型上下文协议(MCP)服务。

Datadog MCP 服务

功能

  • 监控:访问监控器数据和配置
  • 仪表板:获取并查看仪表板定义
  • 指标:查询可用指标及其元数据
  • 事件:在指定时间范围内搜索并获取事件
  • 日志:通过高级筛选和排序选项搜索日志
  • 事故:访问事故管理数据
  • API 集成:直接集成 Datadog 的 v1 和 v2 API
  • 全面的错误处理:清晰提示 API 和身份验证问题
  • 服务专属端点:支持日志和指标使用不同的端点

前置条件

  1. Node.js(版本 16 或更高)
  2. Datadog 账户,包含:
    • API 密钥——可在 Organization Settings > API Keys 中找到
    • 应用密钥——可在 Organization Settings > Application Keys 中找到

应用密钥权限范围

为了提高安全性,你可以为应用密钥设置权限范围,仅授予此 MCP 服务所需的最低权限。默认情况下,应用密钥会继承创建者的所有权限,但设定权限范围的应用密钥可帮助你遵循最小权限原则。

所需权限范围

以下权限范围是相应功能所必需的:

工具所需权限范围描述
get-monitors、get-monitormonitors_read读取监控器配置和状态
get-dashboards、get-dashboarddashboards_read读取仪表板定义
get-metrics、get-metric-metadatametrics_read读取指标列表和元数据
get-eventsevents_read读取事件流中的事件
search-logs、aggregate-logslogs_read_data读取日志数据以进行搜索和聚合
get-incidentsincident_read读取事故管理数据
创建设定权限范围的应用密钥
  1. 前往 Organization Settings > Application Keys
  2. 点击 New Key
  3. 输入名称(例如 “MCP Server - Read Only”)
  4. 在 Scopes 下,仅选择所需权限:
    • 使用全部功能:monitors_read、dashboards_read、metrics_read、events_read、logs_read_data、incident_read
    • 仅使用日志功能:logs_read_data
    • 仅使用监控功能:monitors_read、dashboards_read、metrics_read
  5. 点击 Create Key

注意:如果创建应用密钥时未指定任何权限范围,该密钥将拥有创建者的所有权限。在生产环境中,我们建议始终明确指定权限范围。

安装

通过 npm 安装(推荐)
npm install -g datadog-mcp-server
从源代码安装
  1. 克隆此仓库
  2. 安装依赖项:
    npm install
    
  3. 构建项目:
    npm run build
    

配置

你可以通过环境变量或命令行参数配置 Datadog MCP 服务。

环境变量

创建一个 .env 文件,填入 Datadog 凭据:

DD_API_KEY=your_api_key_here
DD_APP_KEY=your_app_key_here
DD_SITE=datadoghq.com
DD_LOGS_SITE=datadoghq.com
DD_METRICS_SITE=datadoghq.com

注意:DD_LOGS_SITE 和 DD_METRICS_SITE 是可选项;如果未指定,则默认使用 DD_SITE 的值。

命令行参数

使用全局站点设置的基本用法:

datadog-mcp-server --apiKey=your_api_key --appKey=your_app_key --site=datadoghq.eu

使用服务专属端点的高级用法:

datadog-mcp-server --apiKey=your_api_key --appKey=your_app_key --site=datadoghq.com --logsSite=logs.datadoghq.com --metricsSite=metrics.datadoghq.com

注意:站点参数无需包含 https://,系统会自动添加。

区域端点

不同的 Datadog 区域有不同的端点:

  • 美国(默认):datadoghq.com
  • 欧盟:datadoghq.eu
  • 美国 3 区(GovCloud):ddog-gov.com
  • 美国 5 区:us5.datadoghq.com
  • 亚太 1 区:ap1.datadoghq.com
与 Claude Desktop 搭配使用

将以下内容添加到 claude_desktop_config.json:

{
  "mcpServers": {
    "datadog": {
      "command": "npx",
      "args": [
        "datadog-mcp-server",
        "--apiKey",
        "<YOUR_API_KEY>",
        "--appKey",
        "<YOUR_APP_KEY>",
        "--site",
        "<YOUR_DD_SITE>(e.g us5.datadoghq.com)"
      ]
    }
  }
}

如需为日志和指标设置单独端点的高级配置:

{
  "mcpServers": {
    "datadog": {
      "command": "npx",
      "args": [
        "datadog-mcp-server",
        "--apiKey",
        "<YOUR_API_KEY>",
        "--appKey",
        "<YOUR_APP_KEY>",
        "--site",
        "<YOUR_DD_SITE>",
        "--logsSite",
        "<YOUR_LOGS_SITE>",
        "--metricsSite",
        "<YOUR_METRICS_SITE>"
      ]
    }
  }
}

Claude Desktop 配置文件的位置:

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

与 MCP Inspector 搭配使用

如需搭配 MCP Inspector 工具使用:

npx @modelcontextprotocol/inspector datadog-mcp-server --apiKey=your_api_key --appKey=your_app_key

可用工具

此服务提供以下 MCP 工具:

  • get-monitors:获取监视器,可选择进行筛选
  • get-monitor:按 ID 获取特定监视器的详细信息
  • get-dashboards:列出所有仪表板
  • get-dashboard:按 ID 获取特定仪表板
  • get-metrics:列出可用指标
  • get-metric-metadata:获取特定指标的元数据
  • get-events:获取指定时间范围内的事件
  • get-incidents:列出事件,可选择进行筛选
  • search-logs:使用高级查询筛选日志
  • aggregate-logs:对日志数据执行分析和聚合

示例

示例:获取监视器
{
  "method": "tools/call",
  "params": {
    "name": "get-monitors",
    "arguments": {
      "groupStates": ["alert", "warn"],
      "limit": 5
    }
  }
}
示例:获取仪表板
{
  "method": "tools/call",
  "params": {
    "name": "get-dashboard",
    "arguments": {
      "dashboardId": "abc-def-123"
    }
  }
}
示例:搜索日志
{
  "method": "tools/call",
  "params": {
    "name": "search-logs",
    "arguments": {
      "filter": {
        "query": "service:web-app status:error",
        "from": "now-15m",
        "to": "now"
      },
      "sort": "-timestamp",
      "limit": 20
    }
  }
}
示例:聚合日志
{
  "method": "tools/call",
  "params": {
    "name": "aggregate-logs",
    "arguments": {
      "filter": {
        "query": "service:web-app",
        "from": "now-1h",
        "to": "now"
      },
      "compute": [
        {
          "aggregation": "count"
        }
      ],
      "groupBy": [
        {
          "facet": "status",
          "limit": 10,
          "sort": {
            "aggregation": "count",
            "order": "desc"
          }
        }
      ]
    }
  }
}
示例:获取事件
{
  "method": "tools/call",
  "params": {
    "name": "get-incidents",
    "arguments": {
      "includeArchived": false,
      "query": "state:active",
      "pageSize": 10
    }
  }
}

故障排除

如果遇到 403 Forbidden 错误,请确认:

  1. API 密钥和 Application 密钥正确无误
  2. 这些密钥具有访问所请求资源所需的权限
  3. 你的账户有权访问所请求的数据
  4. 你为所在区域使用了正确的端点(例如,欧盟客户应使用 datadoghq.eu)

调试

如果遇到问题,请查看 Claude Desktop 的 MCP 日志:

# On macOS
tail -n 20 -f ~/Library/Logs/Claude/mcp*.log

# On Windows
Get-Content -Path "$env:APPDATA\Claude\Logs\mcp*.log" -Tail 20 -Wait

常见问题:

  • 403 Forbidden:Datadog API 密钥的身份验证问题
  • API key 或 App key 格式无效:请确保使用完整的密钥字符串
  • 站点配置错误:请确保使用正确的 Datadog 域名
  • 端点不匹配:如果日志和指标使用不同的域名,请确认已正确设置特定于服务的端点

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

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

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