使用说明
Datadog MCP服务器
用于Datadog集成的全面模型上下文协议(MCP)服务器,提供对具有现代异步模式的Datadog API的广泛读/写访问。使用官方Datadog Python SDK和MCP Python SDK构建。
🚀 特性
- 🔧 读/写操作 -跨支持的API创建、读取和更新
- ⚡ 异步操作 -使用AsyncApiClient构建,实现最佳性能
- 🔄 自动重试 -指数回退的速率限制和错误处理
- 📊 全面覆盖 -所有主要Datadog API中的44个工具
- 💾 本地缓存 -结果存储为带时间戳的JSON文件
- 🔒 类型安全 -全类型提示和Pydantic模型
- 📈 内置分析 -统计分析、趋势检测和数据汇总
- 🛡️ 安全第一 -基于环境的凭证管理
📋 先决条件
- Python 3.8+
- 有效的Datadog API和应用程序密钥
- MCP兼容客户端(VS Code、Cursor、Claude Desktop等)
快速开始
# Install dependencies
pip install -r requirements.txt
# Set environment variables
export DATADOG_API_KEY="your_api_key"
export DATADOG_APP_KEY="your_app_key"
export DATADOG_SITE="datadoghq.com" # Optional
# Run the server
python server.py
MCP客户端集成
VS代码并继续
- 在VS代码中安装Continue扩展
- 添加到您的继续配置(
~/.continue/config.json):
{
"mcpServers": {
"datadog": {
"command": "python",
"args": ["/path/to/datadog-mcp-python/server.py"],
"env": {
"DATADOG_API_KEY": "your_api_key",
"DATADOG_APP_KEY": "your_app_key"
}
}
}
}
光标
- 打开光标设置
- 添加MCP服务器配置:
{
"mcp.servers": {
"datadog": {
"command": "python",
"args": ["/path/to/datadog-mcp-python/server.py"],
"env": {
"DATADOG_API_KEY": "your_api_key",
"DATADOG_APP_KEY": "your_app_key"
}
}
}
}
亚马逊Q开发者
- 在Q Developer设置中配置:
{
"mcpServers": {
"datadog-mcp": {
"command": "python3",
"args": ["/path/to/datadog-mcp-python/server.py"],
"env": {
"DATADOG_API_KEY": "your_api_key",
"DATADOG_APP_KEY": "your_app_key",
"FASTMCP_LOG_LEVEL": "ERROR"
},
"disabled": false,
"autoApprove": []
}
}
}
克劳德桌面版
添加到您的Claude桌面配置(~/Library/Application Support/Claude/claude_desktop_config.json 在macOS上):
{
"mcpServers": {
"datadog": {
"command": "python",
"args": ["/path/to/datadog-mcp-python/server.py"],
"env": {
"DATADOG_API_KEY": "your_api_key",
"DATADOG_APP_KEY": "your_app_key"
}
}
}
}
Gemini CLI
- 安装支持MCP的Gemini CLI
- 配置服务器:
gemini mcp add datadog python /path/to/datadog-mcp-python/server.py \
--env DATADOG_API_KEY=your_api_key \
--env DATADOG_APP_KEY=your_app_key
通用MCP客户端
对于任何兼容MCP的客户端,请使用以下连接详细信息:
- 运输标准: stdio
- 命令:
python server.py - 工作目录:
/path/to/datadog-mcp-python/ - 环境变量:
DATADOG_API_KEY,DATADOG_APP_KEY
可用工具(共44个)
度量与监控(9个工具)
validate_api_key-测试API证书get_metrics-查询时间序列数据search_metrics-按模式查找指标get_metric_metadata-获取度量元数据get_monitors-列出监控警报get_monitor-获取特定监视器详细信息create_monitor-创建新的监控警报update_monitor-更新现有监视器delete_monitor-删除监视器
仪表板和可视化(5个工具)
get_dashboards-列出所有仪表板get_dashboard-获取仪表板详细信息create_dashboard-创建新仪表板update_dashboard-更新现有仪表板delete_dashboard-删除仪表板
日志和事件(4个工具)
search_logs-搜索日志条目get_events-获取系统事件get_event-获取特定事件search_events-搜索事件(v2)
基础设施和标签(5个工具)
get_infrastructure-获取主机信息get_service_map-获取服务依赖关系get_tags-获取主机标签get_downtimes-获得预定的停机时间create_downtime-创建计划停机时间
测试和应用(2个工具)
get_synthetics_tests-获取合成测试get_rum_applications-获取RUM应用程序
安全与事故(11个工具)
get_security_rules-获取安全监控规则get_incidents-获取事件数据(带分页)get_slos-获取服务级别目标get_notebooks-获取Datadog笔记本电脑create_notebook-创建Datadog笔记本update_notebook-更新数据狗笔记本。search_error_tracking_issues-搜索错误跟踪问题get_error_tracking_issue-获取错误跟踪问题详细信息update_error_tracking_issue_state-更新错误跟踪问题状态update_error_tracking_issue_assignee-更新错误跟踪受让人remove_error_tracking_issue_assignee-删除错误跟踪受让人
团队和用户(2个工具)
get_teams-组建团队get_users-获取用户
实用程序(2个工具)
analyze_data-分析缓存数据cleanup_cache-清理旧缓存文件
用法示例
一旦连接到MCP客户端,您就可以使用自然语言与Datadog进行交互:
监控示例
- “显示当前正在发出警报的所有监视器”
- “为超过80%的高CPU使用率创建监视器”
- “获取system.cpu.user在过去一小时内的指标”
- “搜索所有与内存相关的指标”
仪表板示例
- “列出我的所有仪表板”
- “创建用于系统监控的新仪表板”
- “在我的主仪表板中显示小部件”
基础设施示例
- “显示所有主机及其状态”
- “获取我的应用程序的服务地图”
- “列出生产主机的所有标签”
事件管理
- “显示所有活动事件”
- “获取最新的安全监控规则”
- “列出所有SLO及其当前状态”
配置
服务器使用最新的Datadog API客户端,具有:
- AsyncApiClient用于非阻塞操作
- 根据速率限制自动重试(429个错误)
- 3次具有指数回退的重试尝试
- 为分页启用了不稳定操作
🏗️ 建筑
核心组件
- DatadogMCP服务器:具有API客户端管理功能的主服务器类
- DatadogConfig:用于配置验证的Pydantic模型
- 工具操作员:每个API终结点的单独异步函数
- 数据存储:使用时间戳自动缓存JSON文件
- 分析引擎:内置数据分析功能
数据流
- 请求:带参数的MCP客户端调用工具
- API调用:服务器向Datadog API发出经过身份验证的请求
- 存储:响应数据缓存到本地JSON文件
- 分析:可选的内置数据分析
- 回应:摘要和文件路径返回给客户端
📈 演出
异步实现
- 所有API调用都是异步的
- 非阻塞文件I/O操作
- 大型数据集的高效内存使用
速率限制
- 遵守Datadog API费率限制
- 具有指数回退的自动重试逻辑
- 批量操作的高效批处理
代码使用示例
# Create a monitor
create_monitor(
name="High CPU Usage",
monitor_type="metric alert",
query="avg(last_5m):avg:system.cpu.user{*} > 0.8",
message="CPU usage is high @slack-alerts"
)
# Create a dashboard
create_dashboard(
title="System Overview",
layout_type="ordered",
widgets=[{
"definition": {
"type": "timeseries",
"requests": [{"q": "avg:system.cpu.user{*}"}]
}
}]
)
# Schedule downtime
create_downtime(
scope=["host:web-server-01"],
start=1640995200,
end=1640998800,
message="Scheduled maintenance"
)
安全和功能
- 读/写操作 -创建、读取、更新支持
- 选择性突变 -仅在支持的地方编写工具
- 本地数据缓存 -所有结果均以JSON文件存储在本地
- 错误处理 -全面的异常管理
- 分页支持 -高效处理大型数据集
- 类型安全性 -完整的类型提示贯穿始终
- 速率限制 -自动重试API限制
发展
设置
# Install development dependencies
pip install -r requirements.txt
pip install pytest pytest-cov black flake8 mypy
# Format code
black server.py
flake8 server.py --max-line-length=88
# Run tests
cd tests && python -m pytest --cov=../server
添加新工具
- 添加新方法
DatadogMCPServer类 - 用…装饰
@self.mcp.tool() - 实施适当的错误处理和数据存储
- 添加测试并更新文档
故障排除
常见问题
- 认证错误:验证您的
DATADOG_API_KEY和DATADOG_APP_KEY是正确的 - 连接问题:确保服务器正在运行且可访问
- 权限错误:检查您的API密钥是否具有必要的权限
- 速率限制:服务器通过重试自动处理速率限制
调试模式
通过设置启用调试日志记录:
export DATADOG_DEBUG=true
许可证
MIT许可证-有关详细信息,请参阅许可证文件。
