返回市场
MCP-集合服务器

MCP-集合服务器

作者:didlawowo8 星标更新:2025-10-28

项目介绍

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

smithery 徽章

一个基于Python的工具,用于与Datadog API交互并从基础设施中获取监控数据。此MCP提供了通过简单接口访问监控状态和Kubernetes日志的功能。

Datadog 功能 🌟

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

预备条件 📋

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

安装 🔧

通过 Smithery 安装

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

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

设置 Claude Desktop 的 MCP 🖥️

  1. 安装 Claude Desktop
# 假设您在macOS上
brew install claude-desktop

# 或从官方网站下载
https://claude.ai/desktop
  1. 设置 Datadog MCP 配置:
# 在mac上是
~/Library/Application\ Support/Claude/claude_desktop_config.json

# 将以下内容添加到您的claude配置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 基础:利用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,           # 要搜索的监控名称
    timeframe: int = 1   # 回溯小时数
)

示例:


response = get_monitor_states(name="traefik")

# 示例输出
{
    "id": "12345678",
    "name": "traefik",
    "status": "OK",
    "query": "avg(last_5m):avg:traefik.response_time{*} > 1000",
    "message": "响应时间过高",
    "type": "指标警报",
    "created": "2024-01-14T10:00:00Z",
    "modified": "2024-01-14T15:30:00Z"
}

2. 获取Kubernetes日志

get_k8s_logs(
    cluster: str,            # Kubernetes集群名称
    timeframe: int = 5,      # 回溯小时数
    namespace: str = None    # 可选命名空间过滤器
)

示例:

logs = get_k8s_logs(
    cluster="prod-cluster",
    timeframe=3,
    namespace="default"
)

# 示例输出
{
    "timestamp": "2024-01-14T22:00:00Z",
    "host": "worker-1",
    "service": "nginx-ingress",
    "pod_name": "nginx-ingress-controller-abc123",
    "namespace": "default",
    "container_name": "controller",
    "message": "连接被拒绝",
    "status": "错误"
}
# 作为MCP扩展安装
cd datadog
task install-mcp

4. 验证安装

在 Claude 聊天桌面中

检查Claude中的Datadog连接

设置 Claude

5. 使用 Datadog MCP 工具

安全注意事项 🔒

  • 将API密钥存储在.env
  • MCP在一个隔离环境中运行
  • 每个工具都有定义的权限
  • 实现了速率限制

故障排除 🔧

使用 MCP Inspector

# 启动 MCP Inspector 进行调试
task run-mcp-inspector

MCP Inspector 提供:

  • MCP服务器状态的实时视图
  • 函数调用日志
  • 错误追踪
  • API响应监控

常见问题及解决方案

  1. API认证错误

    错误:(403) 禁止访问
    

    ➡️ 检查您的.env中的DD_API_KEY和DD_APP_KEY

  2. MCP连接问题

    错误:无法连接到MCP服务器
    

    ➡️ 验证您的claude_desktop_config.json路径和内容

  3. 未找到监控

    错误:未找到名为'xxx'的监控
    

    ➡️ 检查监控名称的拼写和大小写敏感性

  4. 日志可以在这里找到

alt text

贡献 🤝

随时可以:

  1. 对于bug打开问题
  2. 提交改进的PR
  3. 添加新功能

注意事项 📝

  • API调用指向Datadog EU站点
  • 监控状态的默认时间段为1小时
  • 分页大小限制设置以处理大多数用例