Datadog MCP服务器
模型上下文协议(MCP)服务器,用于与数据狗API交互。
特性
- 监控:访问监视器数据和配置
- 仪表盘:检索和查看仪表板定义
- 指标:查询可用指标及其元数据
- 事件:搜索和检索时间范围内的事件
- 日志:使用高级过滤和排序选项搜索日志
- 事件:访问事件管理数据
- API集成:与Datadog的v1和v2 API直接集成
- 全面的错误处理:清除API和身份验证问题的错误消息
- 服务特定端点:支持日志和指标的不同端点
先决条件
- Node.js(版本16或更高)
- Datadog帐户:
- API密钥-可在“组织设置”>“API密钥”中找到 - 应用程序密钥-在组织设置>应用程序密钥中找到
应用关键范围
为了提高安全性,您可以调整应用程序密钥的范围,仅授予此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 | 读取事件管理数据的访问权限 |
创建作用域应用程序密钥
- 首选 组织设置 > 应用程序密钥
- 点击 新密钥
- 输入名称(例如,“MCP服务器-只读”)
- 在...之下 范围,仅选择所需的权限:
- 要获得完整功能: monitors_read, dashboards_read, metrics_read, events_read, logs_read_data, incident_read - 仅适用于日志: logs_read_data - 仅用于监控: monitors_read, dashboards_read, metrics_read
- 点击 创建密钥
备注:如果在创建应用程序密钥时未指定任何作用域,则它将具有创建用户的所有权限的完全访问权限。对于生产使用,我们建议始终指定显式范围。
安装
通过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 - US3(政府云):
ddog-gov.com - 美国5:
us5.datadoghq.com - AP1:
ap1.datadoghq.com
使用Claude Desktop
将此添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"datadog": {
"command": "npx",
"args": [
"datadog-mcp-server",
"--apiKey",
"",
"--appKey",
"",
"--site",
"(e.g us5.datadoghq.com)"
]
}
}
}对于日志和指标具有单独端点的更高级配置:
{
"mcpServers": {
"datadog": {
"command": "npx",
"args": [
"datadog-mcp-server",
"--apiKey",
"",
"--appKey",
"",
"--site",
"",
"--logsSite",
"",
"--metricsSite",
""
]
}
}
}Claude Desktop配置文件的位置:
- MacOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 窗户:
%APPDATA%/Claude/claude_desktop_config.json
使用MCP检查器
要使用MCP检查器工具:
npx @modelcontextprotocol/inspector datadog-mcp-server --apiKey=your_api_key --appKey=your_app_key可用工具
服务器提供以下MCP工具:
- 获取监视器:获取具有可选筛选功能的监视器
- 获取监视器:按ID获取特定监视器的详细信息
- 获取仪表板:列出所有仪表板
- 获取仪表板:按ID获取特定仪表板
- 获取指标:列出可用指标
- 获取度量元数据:获取特定指标的元数据
- 获取事件:获取时间范围内的事件
- 获取事件:列出具有可选筛选的事件
- 搜索日志:使用高级查询过滤搜索日志
- 聚合日志:对日志数据进行分析和聚合
例子
示例:获取监视器
{
"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密钥和应用程序密钥正确
- 密钥具有访问所请求资源的必要权限
- 您的帐户可以访问请求的数据
- 您正在使用您所在地区的正确端点(例如。,
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禁止:Datadog API密钥的身份验证问题
- API密钥或应用程序密钥格式无效:请确保使用完整的密钥字符串
- 站点配置错误:确保您使用的是正确的Datadog域
- 端点不匹配:如果您对日志和指标使用单独的域,请验证是否正确设置了特定于服务的端点
许可证
麻省理工学院
