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

Protocolo de contexto del modelo (MCP) de Datadog

Una herramienta basada en Python para interactuar con la API de Datadog y obtener datos de monitorización de su infraestructura. Este MCP facilita el acceso a los estados de monitorización y los registros de Kubernetes mediante una interfaz sencilla.

Características de Datadog 🌟

  • Seguimiento del estado del monitor : obtenga y analice estados de monitores específicos
  • Análisis de registros de Kubernetes : extraiga y formatee registros de errores de clústeres de Kubernetes

Prerrequisitos 📋

  • Python 3.11+
  • Claves de API y aplicación de Datadog (con permisos correctos)
  • Acceso al sitio de Datadog

Instalación 🔧

Instalación mediante herrería

Para instalar Datadog para Claude Desktop automáticamente a través de Smithery :

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

Paquetes requeridos:

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

Configuración del entorno 🔑

Cree un archivo .env con sus credenciales de Datadog:

DD_API_KEY=your_api_key DD_APP_KEY=your_app_key

Configuración de Claude Desktop para MCP 🖥️

  1. Instalar Claude Desktop
# Assuming you're on macOS brew install claude-desktop # Or download from official website https://claude.ai/desktop
  1. Configurar la configuración MCP de Datadog:
# 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" } },

Uso 💻

Arquitectura 🏗

  • FastMCP Base : utiliza el marco FastMCP para la gestión de herramientas
  • Diseño modular : funciones separadas para monitores y registros
  • Seguridad de tipos : compatibilidad total con sugerencias de tipos de Python
  • Abstracción de API : llamadas a la API de Datadog encapsuladas con manejo de errores

Agregaré una sección sobre la configuración de MCP y Claude Desktop:

Introducción al Protocolo de Contexto Modelo (MCP) 🤖

¿Qué es MCP?

El Protocolo de Contexto de Modelo (MCP) es un marco que permite a los modelos de IA interactuar con herramientas externas y API de forma estandarizada. Permite a modelos como Claude:

  • Acceder a datos externos
  • Ejecutar comandos
  • Interactuar con las API
  • Mantener el contexto en todas las conversaciones

Algunos ejemplos de servidores MCP

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

Tutorial para configurar MCP

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

Cómo funciona - Funciones disponibles 🛠️

El LLM utiliza la función proporcionada para obtener los datos y utilizarlos.

1. Obtener estados del monitor

get_monitor_states( name: str, # Monitor name to search timeframe: int = 1 # Hours to look back )

Ejemplo:

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. Obtener registros de Kubernetes

get_k8s_logs( cluster: str, # Kubernetes cluster name timeframe: int = 5, # Hours to look back namespace: str = None # Optional namespace filter )

Ejemplo:

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. Verificar la instalación

En el escritorio de chat de Claude

comprobar la conexión de datadog en Claude

5. Utilice las herramientas MCP de Datadog

Consideraciones de seguridad 🔒

  • Almacenar claves API en .env
  • MCP se ejecuta en un entorno aislado
  • Cada herramienta tiene permisos definidos
  • Se implementa la limitación de velocidad

Solución de problemas 🔧

Uso del inspector MCP

# Launch MCP Inspector for debugging task run-mcp-inspector

El Inspector MCP proporciona:

  • Vista en tiempo real del estado del servidor MCP
  • Registros de llamadas de función
  • Seguimiento de errores
  • Monitoreo de respuesta de API

Problemas comunes y soluciones

  1. Errores de autenticación de API
    Error: (403) Forbidden
    ➡️ Verifique su DD_API_KEY y DD_APP_KEY en .env
  2. Problemas de conexión de MCP
    Error: Failed to connect to MCP server
    ➡️ Verifique la ruta y el contenido de claude_desktop_config.json
  3. Monitor no encontrado
    Error: No monitor found with name 'xxx'
    ➡️ Verifique la ortografía del nombre del monitor y la distinción entre mayúsculas y minúsculas
  4. Los registros se pueden encontrar aquí

Contribuyendo 🤝

Siéntete libre de:

  1. Problemas abiertos por errores
  2. Presentar solicitudes de mejora
  3. Añadir nuevas funciones

Notas 📝

  • Las llamadas API se realizan al sitio de Datadog EU
  • El período de tiempo predeterminado es de 1 hora para los estados del monitor.
  • Los límites de tamaño de página se establecen para manejar la mayoría de los casos de uso.
ID: j72e1m6bqk