datadog

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Provides access to Datadog API to fetch monitoring data, including monitor states and Kubernetes logs from infrastructure

  • Enables extraction and formatting of error logs from Kubernetes clusters through the Datadog API

Datadog 模型上下文协议 (MCP) 🔍

一个基于 Python 的工具,用于与 Datadog API 交互并从您的基础架构获取监控数据。此 MCP 通过简单的界面提供对监控状态和 Kubernetes 日志的轻松访问。

Datadog 功能🌟

  • 监控状态跟踪:获取并分析特定的监控状态
  • Kubernetes 日志分析:从 Kubernetes 集群中提取并格式化错误日志

先决条件📋

  • Python 3.11+
  • Datadog API 和应用程序密钥(具有正确的权限)
  • 访问 Datadog 网站

安装🔧

通过 Smithery 安装

要通过Smithery自动为 Claude Desktop 安装 Datadog:

npx -y @smithery/cli install @didlawowo/mcp-collection --client claude

所需软件包:

datadog-api-client fastmcp loguru icecream python-dotenv uv

环境设置🔑

使用您的 Datadog 凭证创建一个.env文件:

DD_API_KEY=your_api_key DD_APP_KEY=your_app_key

为 MCP 设置 Claude 桌面设置 🖥️

  1. 安装 Claude Desktop
# Assuming you're on macOS brew install claude-desktop # Or download from official website https://claude.ai/desktop
  1. 设置 Datadog MCP 配置:
# on mac is ~/Library/Application\ Support/Claude/claude_desktop_config.json # Add this to your claude config json ```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 Base :利用 FastMCP 框架进行工具管理
  • 模块化设计:监视器和日志的独立功能
  • 类型安全:通过 Python 类型提示提供全面的类型支持
  • API 抽象:包装 Datadog API 调用并进行错误处理

我将添加有关 MCP 和 Claude Desktop 设置的部分:

模型上下文协议(MCP)简介🤖

什么是 MCP?

模型上下文协议 (MCP) 是一个框架,允许 AI 模型以标准化的方式与外部工具和 API 交互。它使 Claude 等模型能够:

  • 访问外部数据
  • 执行命令
  • 与 API 交互
  • 在对话中保持上下文

MCP 服务器的一些示例

https://github.com/punkpeye/awesome-mcp-servers?tab=readme-ov-file

MCP 设置教程

https://medium.com/@pedro.aquino.se/how-to-use-mcp-tools-on-claude-desktop-app-and-automate-your-daily-tasks-1c38e22bc4b0

工作原理 - 可用功能🛠️

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 中的 Datadog 连接

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
  2. MCP 连接问题
    Error: Failed to connect to MCP server
    ➡️ 验证你的 claude_desktop_config.json 路径和内容
  3. 未找到监视器
    Error: No monitor found with name 'xxx'
    ➡️ 检查监视器名称拼写和大小写
  4. 日志可以在这里找到

贡献🤝

请随意:

  1. 未解决的错误问题
  2. 提交 PR 以进行改进
  3. 添加新功能

注释📝

  • 对 Datadog EU 站点进行 API 调用
  • 监控状态的默认时间范围为 1 小时
  • 设置页面大小限制以处理大多数用例
ID: j72e1m6bqk