数据狗模型上下文协议(MCP)🔍
](https://smithery.ai/server/@didlawowo/mcp-collection)
一个基于Python的工具,用于与Datadog API交互,并从基础设施中获取监控数据。此MCP通过一个简单的界面提供了对监控状态和Kubernetes日志的轻松访问。
Datadog功能🌟
- 监控状态跟踪:获取并分析特定的监视器状态
- Kubernetes日志分析:从Kubernetes集群中提取并格式化错误日志
先决条件📋
- Python 3.11+
- Datadog API和应用程序密钥(具有正确的权限)
- 访问Datadog网站
安装🔧
通过Smithery安装
通过以下方式自动安装克劳德桌面版Datadog 史密瑟里:
npx -y @smithery/cli install @didlawowo/mcp-collection --client claude所需软件包:
datadog-api-client
fastmcp
loguru
icecream
python-dotenv
uv环境设置🔑
创建一个 .env 文件中包含您的Datadog凭据:
DD_API_KEY=your_api_key
DD_APP_KEY=your_app_key为MCP设置Claude桌面设置🖥️
- 安装克劳德桌面
# Assuming you're on macOS
brew install claude-desktop
# Or download from official website
https://claude.ai/desktop- 设置Datadog MCP配置:
# on mac is
~/Library/Application\ Support/Claude/claude_desktop_config.json
# Add this to your claude config json"Datadog-MCP-Server": { "command": "uv", "args": [ "run", "--with", "datadog-api-client", "--with", "fastmcp", "--with", "icecream", "--with", "loguru", "--with", "python-dotenv", "fastmcp", "run", "/your-path/mcp-collection/datadog/main.py" ], "env": { "DD_API_KEY": "xxxx", "DD_APP_KEY": "xxx" } },
## 用法💻


## 建筑🏗
- **FastMCP基座**:利用FastMCP框架进行工具管理
- **模块化设计**:监视器和日志的单独功能
- **类型安全**:完全支持Python类型提示
- **API摘要**:带错误处理的包装数据狗API调用
我将添加一个关于MCP和Claude Desktop设置的部分:
# 模型上下文协议(MCP)介绍🤖
## 什么是MCP?
模型上下文协议(MCP)是一个框架,允许AI模型以标准化的方式与外部工具和API进行交互。它使像Claude这样的模型能够:
- 访问外部数据
- 执行命令
- 与API交互
- 在对话中保持上下文
## MCP服务器的一些示例
## MCP设置教程
## 工作原理-可用功能🛠️
LLM使用提供的函数获取数据并使用它
### 1.获取监视器状态
get_monitor_states( name: str, # Monitor name to search timeframe: int = 1 # Hours to look back )
例子:
response = get_monitor_states(name="traefik")
Sample Output
{ "id": "12345678", "name": "traefik", "status": "OK", "query": "avg(last_5m):avg:traefik.response_time{*} > 1000", "message": "Response time is too high", "type": "metric alert", "created": "2024-01-14T10:00:00Z", "modified": "2024-01-14T15:30:00Z" }
### 2.获取Kubernetes日志
get_k8s_logs( cluster: str, # Kubernetes cluster name timeframe: int = 5, # Hours to look back namespace: str = None # Optional namespace filter )
例子:
logs = get_k8s_logs( cluster="prod-cluster", timeframe=3, namespace="default" )
Sample Output
{ "timestamp": "2024-01-14T22:00:00Z", "host": "worker-1", "service": "nginx-ingress", "pod_name": "nginx-ingress-controller-abc123", "namespace": "default", "container_name": "controller", "message": "Connection refused", "status": "error" }
Install as MCP extension
cd datadog task install-mcp
## 4.验证安装
### 在克劳德聊天桌面
检查claude中的数据狗连接

## 5.使用Datadog MCP工具
## 安全考虑🔒
- 将API密钥存储在 `.env`
- MCP在隔离环境中运行
- 每个工具都有定义的权限
- 已实施速率限制
## 故障排除🔧
### 使用MCP检查器
Launch MCP Inspector for debugging
task run-mcp-inspector
MCP检查员提供:
- MCP服务器状态的实时视图
- 函数调用日志
- 误差溯源
- API响应监测
### 常见问题和解决方案
1. **API身份验证错误**
Error: (403) Forbidden
➡️ 检查.env中的DD_API_KEY和DD_APP_KEY
1. **MCP连接问题**
Error: Failed to connect to MCP server
➡️ 验证您的claude_desktop_config.json路径和内容
1. **未找到监视器**
Error: No monitor found with name 'xxx'
➡️ 检查监视器名称拼写和区分大小写
1. **日志可以在这里找到**

## 贡献🤝
请随意:
1. bug的未决问题
1. 提交PR以进行改进
1. 添加新功能
## 备注📝
- API调用Datadog EU站点
- 监视器状态的默认时间范围为1小时
- 设置页面大小限制以处理大多数用例