关于 Datadog MCP Server
Datadog MCP Server 是一个 MCP 服务,用于通过官方 Datadog API 查询监控、仪表盘、指标、事件、日志和事件管理(Incident)数据。它面向希望让 AI 助手辅助排查 Datadog 数据的运维与开发人员。
主要功能
- 01监控与仪表盘数据查询
- 02指标列表与元数据查询
- 03事件与日志搜索
- 04日志聚合分析
- 05按最小权限设置 Application Key 范围
适用场景
- 01让 AI 助手查询处于告警状态的监控
- 02搜索指定服务的错误日志并聚合分析
- 03获取仪表盘定义用于排查问题
MCP 相关
该项目是 MCP 服务,向 MCP 客户端暴露 get-monitors、search-logs、aggregate-logs 等工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Datadog MCP 服务
一个用于与 Datadog API 交互的模型上下文协议(MCP)服务。
功能
- 监控:访问监控器数据和配置
- 仪表板:获取并查看仪表板定义
- 指标:查询可用指标及其元数据
- 事件:在指定时间范围内搜索并获取事件
- 日志:通过高级筛选和排序选项搜索日志
- 事故:访问事故管理数据
- API 集成:直接集成 Datadog 的 v1 和 v2 API
- 全面的错误处理:清晰提示 API 和身份验证问题
- 服务专属端点:支持日志和指标使用不同的端点
前置条件
- Node.js(版本 16 或更高)
- Datadog 账户,包含:
- API 密钥——可在 Organization Settings > API Keys 中找到
- 应用密钥——可在 Organization Settings > Application Keys 中找到
应用密钥权限范围
为了提高安全性,你可以为应用密钥设置权限范围,仅授予此 MCP 服务所需的最低权限。默认情况下,应用密钥会继承创建者的所有权限,但设定权限范围的应用密钥可帮助你遵循最小权限原则。
所需权限范围
以下权限范围是相应功能所必需的:
| 工具 | 所需权限范围 | 描述 |
|---|---|---|
get-monitors、get-monitor | monitors_read | 读取监控器配置和状态 |
get-dashboards、get-dashboard | dashboards_read | 读取仪表板定义 |
get-metrics、get-metric-metadata | metrics_read | 读取指标列表和元数据 |
get-events | events_read | 读取事件流中的事件 |
search-logs、aggregate-logs | logs_read_data | 读取日志数据以进行搜索和聚合 |
get-incidents | incident_read | 读取事故管理数据 |
创建设定权限范围的应用密钥
- 前往 Organization Settings > Application Keys
- 点击 New Key
- 输入名称(例如 “MCP Server - Read Only”)
- 在 Scopes 下,仅选择所需权限:
- 使用全部功能:
monitors_read、dashboards_read、metrics_read、events_read、logs_read_data、incident_read - 仅使用日志功能:
logs_read_data - 仅使用监控功能:
monitors_read、dashboards_read、metrics_read
- 使用全部功能:
- 点击 Create Key
注意:如果创建应用密钥时未指定任何权限范围,该密钥将拥有创建者的所有权限。在生产环境中,我们建议始终明确指定权限范围。
安装
通过 npm 安装(推荐)
npm install -g datadog-mcp-server
从源代码安装
- 克隆此仓库
- 安装依赖项:
npm install - 构建项目:
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 错误,请确认:
- API 密钥和 Application 密钥正确无误
- 这些密钥具有访问所请求资源所需的权限
- 你的账户有权访问所请求的数据
- 你为所在区域使用了正确的端点(例如,欧盟客户应使用
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
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。