Datadog

Interactúa con la API de Datadog para monitorear tu infraestructura en la nube, aplicaciones y registros.

Documentación

Servidor MCP de Datadog

Un servidor de Model Context Protocol (MCP) para interactuar con la API de Datadog.

Datadog MCP server

Características

  • Monitoreo: Accede a datos y configuraciones de monitores
  • Dashboards: Recupera y visualiza definiciones de dashboards
  • Métricas: Consulta métricas disponibles y sus metadatos
  • Eventos: Busca y recupera eventos dentro de rangos de tiempo
  • Logs: Busca logs con opciones avanzadas de filtrado y ordenamiento
  • Incidentes: Accede a datos de gestión de incidentes
  • Integración con API: Integración directa con las APIs v1 y v2 de Datadog
  • Manejo Integral de Errores: Mensajes de error claros para problemas de API y autenticación
  • Endpoints Específicos por Servicio: Soporte para diferentes endpoints para logs y métricas

Requisitos Previos

  1. Node.js (versión 16 o superior)
  2. Cuenta de Datadog con:
    • Clave de API - Se encuentra en Configuración de la Organización > Claves de API
    • Clave de aplicación - Se encuentra en Configuración de la Organización > Claves de Aplicación

Ámbitos de la Clave de Aplicación

Para mayor seguridad, puedes delimitar tu Clave de Aplicación para otorgar solo los permisos mínimos requeridos por este servidor MCP. Por defecto, las Claves de Aplicación heredan todos los permisos del usuario que las creó, pero las Claves de Aplicación delimitadas te permiten seguir el principio de menor privilegio.

Ámbitos Requeridos

Los siguientes ámbitos son necesarios para las características correspondientes:

Herramienta(s)Ámbito RequeridoDescripción
get-monitors, get-monitormonitors_readAcceso de lectura a configuraciones y estados de monitores
get-dashboards, get-dashboarddashboards_readAcceso de lectura a definiciones de dashboards
get-metrics, get-metric-metadatametrics_readAcceso de lectura a la lista de métricas y metadatos
get-eventsevents_readAcceso de lectura a eventos del flujo de eventos
search-logs, aggregate-logslogs_read_dataAcceso de lectura a datos de logs para búsqueda y agregación
get-incidentsincident_readAcceso de lectura a datos de gestión de incidentes

Creación de una Clave de Aplicación Delimitada

  1. Ve a Configuración de la Organización > Claves de Aplicación
  2. Haz clic en Nueva Clave
  3. Ingresa un nombre (por ejemplo, "Servidor MCP - Solo Lectura")
  4. En Ámbitos, selecciona solo los permisos que necesitas:
    • Para funcionalidad completa: monitors_read, dashboards_read, metrics_read, events_read, logs_read_data, incident_read
    • Solo para logs: logs_read_data
    • Solo para monitoreo: monitors_read, dashboards_read, metrics_read
  5. Haz clic en Crear Clave

Nota: Si no especificas ningún ámbito al crear una Clave de Aplicación, tendrá acceso completo con todos los permisos del usuario creador. Para uso en producción, recomendamos especificar siempre ámbitos explícitos.

Instalación

Vía npm (recomendado)

npm install -g datadog-mcp-server

Desde el Código Fuente

  1. Clona este repositorio
  2. Instala las dependencias:
    npm install
    
  3. Compila el proyecto:
    npm run build
    

Configuración

Puedes configurar el servidor MCP de Datadog usando variables de entorno o argumentos de línea de comandos.

Variables de Entorno

Crea un archivo .env con tus credenciales de Datadog:

DD_API_KEY=your_api_key_here
DD_APP_KEY=your_app_key_here
DD_SITE=datadoghq.com
DD_LOGS_SITE=datadoghq.com
DD_METRICS_SITE=datadoghq.com

Nota: DD_LOGS_SITE y DD_METRICS_SITE son opcionales y tomarán por defecto el valor de DD_SITE si no se especifican.

Argumentos de Línea de Comandos

Uso básico con configuración global del sitio:

datadog-mcp-server --apiKey=your_api_key --appKey=your_app_key --site=datadoghq.eu

Uso avanzado con endpoints específicos por servicio:

datadog-mcp-server --apiKey=your_api_key --appKey=your_app_key --site=datadoghq.com --logsSite=logs.datadoghq.com --metricsSite=metrics.datadoghq.com

Nota: Los argumentos del sitio no necesitan https:// - se agregará automáticamente.

Endpoints Regionales

Diferentes regiones de Datadog tienen diferentes endpoints:

  • EE. UU. (Predeterminado): datadoghq.com
  • UE: datadoghq.eu
  • US3 (GovCloud): ddog-gov.com
  • US5: us5.datadoghq.com
  • AP1: ap1.datadoghq.com

Uso con Claude Desktop

Agrega esto a tu claude_desktop_config.json:

{
  "mcpServers": {
    "datadog": {
      "command": "npx",
      "args": [
        "datadog-mcp-server",
        "--apiKey",
        "<YOUR_API_KEY>",
        "--appKey",
        "<YOUR_APP_KEY>",
        "--site",
        "<YOUR_DD_SITE>(e.g us5.datadoghq.com)"
      ]
    }
  }
}

Para configuraciones más avanzadas con endpoints separados para logs y métricas:

{
  "mcpServers": {
    "datadog": {
      "command": "npx",
      "args": [
        "datadog-mcp-server",
        "--apiKey",
        "<YOUR_API_KEY>",
        "--appKey",
        "<YOUR_APP_KEY>",
        "--site",
        "<YOUR_DD_SITE>",
        "--logsSite",
        "<YOUR_LOGS_SITE>",
        "--metricsSite",
        "<YOUR_METRICS_SITE>"
      ]
    }
  }
}

Ubicaciones del archivo de configuración de Claude Desktop:

  • MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%/Claude/claude_desktop_config.json

Uso con MCP Inspector

Para usar con la herramienta MCP Inspector:

npx @modelcontextprotocol/inspector datadog-mcp-server --apiKey=your_api_key --appKey=your_app_key

Herramientas Disponibles

El servidor proporciona estas herramientas MCP:

  • get-monitors: Obtiene monitores con filtrado opcional
  • get-monitor: Obtiene detalles de un monitor específico por ID
  • get-dashboards: Lista todos los dashboards
  • get-dashboard: Obtiene un dashboard específico por ID
  • get-metrics: Lista métricas disponibles
  • get-metric-metadata: Obtiene metadatos de una métrica específica
  • get-events: Obtiene eventos dentro de un rango de tiempo
  • get-incidents: Lista incidentes con filtrado opcional
  • search-logs: Busca logs con filtrado avanzado de consultas
  • aggregate-logs: Realiza análisis y agregaciones en datos de logs

Ejemplos

Ejemplo: Obtener Monitores

{
  "method": "tools/call",
  "params": {
    "name": "get-monitors",
    "arguments": {
      "groupStates": ["alert", "warn"],
      "limit": 5
    }
  }
}

Ejemplo: Obtener un Dashboard

{
  "method": "tools/call",
  "params": {
    "name": "get-dashboard",
    "arguments": {
      "dashboardId": "abc-def-123"
    }
  }
}

Ejemplo: Buscar Logs

{
  "method": "tools/call",
  "params": {
    "name": "search-logs",
    "arguments": {
      "filter": {
        "query": "service:web-app status:error",
        "from": "now-15m",
        "to": "now"
      },
      "sort": "-timestamp",
      "limit": 20
    }
  }
}

Ejemplo: Agregar Logs

{
  "method": "tools/call",
  "params": {
    "name": "aggregate-logs",
    "arguments": {
      "filter": {
        "query": "service:web-app",
        "from": "now-1h",
        "to": "now"
      },
      "compute": [
        {
          "aggregation": "count"
        }
      ],
      "groupBy": [
        {
          "facet": "status",
          "limit": 10,
          "sort": {
            "aggregation": "count",
            "order": "desc"
          }
        }
      ]
    }
  }
}

Ejemplo: Obtener Incidentes

{
  "method": "tools/call",
  "params": {
    "name": "get-incidents",
    "arguments": {
      "includeArchived": false,
      "query": "state:active",
      "pageSize": 10
    }
  }
}

Solución de Problemas

Si encuentras un error 403 Prohibido, verifica que:

  1. Tu clave de API y clave de aplicación sean correctas
  2. Las claves tengan los permisos necesarios para acceder a los recursos solicitados
  3. Tu cuenta tenga acceso a los datos solicitados
  4. Estés usando el endpoint correcto para tu región (por ejemplo, datadoghq.eu para clientes de la UE)

Depuración

Si encuentras problemas, revisa los logs de MCP de Claude Desktop:

# On macOS
tail -n 20 -f ~/Library/Logs/Claude/mcp*.log

# On Windows
Get-Content -Path "$env:APPDATA\Claude\Logs\mcp*.log" -Tail 20 -Wait

Problemas comunes:

  • 403 Prohibido: Problema de autenticación con las claves de API de Datadog
  • Formato de clave de API o clave de aplicación inválido: Asegúrate de usar las cadenas completas de las claves
  • Errores de configuración del sitio: Asegúrate de usar el dominio correcto de Datadog
  • Desajustes de endpoints: Verifica que los endpoints específicos por servicio estén configurados correctamente si usas dominios separados para logs y métricas

Licencia

MIT