The MCP Datadog Server is a comprehensive Model Context Protocol (MCP) compatible server that provides LLMs with 351 tools for complete Datadog integration through schema auto-discovery and validation.
Core Capabilities:
Full CRUD Operations: Create, read, update, delete, and list all Datadog resources including monitors, dashboards, downtimes, users, teams, and organizations
Data Analytics & Aggregation: Process and aggregate data from CI pipelines, logs, RUM events, spans, network connections, and DNS traffic
Infrastructure Monitoring: Configure diverse monitor types (metric, logs, APM, synthetics, SLO, audit, database, network performance, cost) with automated alerting
Cloud Integrations: Manage AWS, Azure, GCP integrations plus third-party services like Slack, PagerDuty, Opsgenie, Microsoft Teams, Cloudflare, and Okta
Security & Compliance: Handle WAF rules, workload protection policies, agentless AWS scanning, and resource restriction policies
Log Management: Configure archives, pipelines, indexes, custom destinations, and log-based metrics
User Administration: Manage users, roles, permissions, authentication mappings, API keys, and child organizations
Incident Management: Handle cases, priorities, status updates, on-call schedules, and escalation policies
Performance Monitoring: Create span-based metrics, retention filters, RUM applications, and DORA metrics
Advanced Features:
LLM-Native Design: Automatic tool discovery with JSON schemas, type safety, and robust validation
Smart Filtering: Categorize tools by service type to reduce complexity
Real-time Tracking: Monitor long-running operations with progress updates
CLI Interface: Comprehensive command-line tools for management, debugging, and troubleshooting
Error Handling: Automatic retry mechanisms with configurable timeout and retry settings
Provides comprehensive tools for interacting with Datadog's API, enabling management of monitors, logs, metrics, dashboards, and incidents. Supports creating and updating monitors, sending logs, submitting metrics, querying timeseries data, and performing analytics operations.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Datadog Servershow me the top 5 monitors by alert count from the last 24 hours"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Datadog Server
Servidor MCP (Model Context Protocol) completo e robusto para integração com APIs do Datadog
Um servidor MCP de produção que oferece 351 tools para interagir com todas as APIs do Datadog através de LLMs, incluindo operações CRUD completas, tools curadas e ferramentas geradas automaticamente do schema.
🚀 Características Principais
📊 Tools Disponíveis (351 total)
9 Tools Curadas 🎯 - Handcrafted, otimizadas para casos específicos
25 Tools CRUD ⚡ - Operações CREATE, READ, UPDATE, DELETE para recursos principais
319 Tools Geradas 🔧 - Geradas automaticamente do schema oficial do Datadog
🔍 Recursos Avançados
✅ Autodescoberta de Schema - LLMs descobrem parâmetros automaticamente
✅ Validação Robusta - Zod schemas com validação completa
✅ Progress Tracking - Acompanhamento em tempo real para operações longas
✅ Error Handling - Tratamento inteligente de erros e retry automático
✅ CLI Rica - Interface completa para gestão e debugging
🛡️ Conformidade MCP
✅ 100% Compatível com TypeScript SDK oficial
✅ JSON Schema completo para todas as tools
✅ Metadata Annotations detalhadas
✅ Type Safety com validação Zod
📦 Instalação
Requisitos
Node.js 18+
Chaves de API do Datadog (API Key + Application Key)
Instalação via npm
npm install -g mcp-datadog-serverInstalação Local
git clone https://github.com/ClaudioLazaro/mcp-datadog-server.git
cd mcp-datadog-server
npm install⚙️ Configuração
1. Variáveis de Ambiente
Obrigatórias
DD_API_KEY=your_api_key # Chave da API Datadog
DD_APP_KEY=your_app_key # Chave da aplicação DatadogOpcionais
DD_SITE=datadoghq.com # Site Datadog (padrão: datadoghq.com)
DD_SUBDOMAIN=api # Subdomínio (padrão: api)
MCP_DD_FOLDERS=Dashboards,Logs # Categorias permitidas (padrão: todas)
MCP_DD_SCHEMA_PATH=./schema.json # Caminho do schema (padrão: incluído)
MCP_DD_MAX_RETRIES=3 # Máximo de tentativas (padrão: 3)
MCP_DD_RETRY_BASE_MS=1000 # Base para retry em ms (padrão: 1000)
MCP_DD_TIMEOUT_MS=30000 # Timeout das requisições (padrão: 30000)
MCP_DD_USER_AGENT=mcp-datadog # User agent customizado2. Arquivo .env (Recomendado)
# .env
DD_SITE=\"us3.datadoghq.com\"
DD_API_KEY=\"xxxxxxxxxxxxxxxxxxxxxxxx\"
DD_APP_KEY=\"xxxxxxxxxxxxxxxxxxxxxxxxxxxx\"
MCP_DD_FOLDERS=\"Dashboards,Monitors,Logs\"3. Sites Datadog Suportados
datadoghq.com(US1)datadoghq.eu(EU)us3.datadoghq.com(US3)us5.datadoghq.com(US5)ap1.datadoghq.com(AP1)ddog-gov.com(US Gov)
🎮 Uso
Servidor MCP (Padrão)
# Iniciar servidor MCP
mcp-datadog-server serve
# ou
npm start
# Com filtros
mcp-datadog-server serve --folders=Dashboards,MonitorsInterface CLI
Listar Tools
# Lista básica
mcp-datadog-server list-tools
# Lista detalhada ordenada
mcp-datadog-server list-tools --detailed
# JSON output
mcp-datadog-server list-tools --jsonInspeção de Tools
# Ver detalhes de uma tool
mcp-datadog-server get-tool create_monitor
# Ver schema completo de uma tool
mcp-datadog-server show-schema create_monitor
# JSON output
mcp-datadog-server show-schema create_monitor --jsonValidação e Análise
# Validar configuração
mcp-datadog-server validate
# Analisar schema da API
mcp-datadog-server analyze-schema
# Ajuda
mcp-datadog-server help🔧 Tools CRUD Disponíveis
⚡ Monitors (5 operações)
create_monitor # Criar novo monitor
get_monitor # Obter monitor por ID
update_monitor # Atualizar monitor existente
delete_monitor # Deletar monitor
list_monitor # Listar todos os monitors📊 Dashboards (5 operações)
create_dashboard # Criar novo dashboard
get_dashboard # Obter dashboard por ID
update_dashboard # Atualizar dashboard existente
delete_dashboard # Deletar dashboard
list_dashboard # Listar todos os dashboards⏰ Downtimes (5 operações)
create_downtime # Agendar downtime
get_downtime # Obter downtime por ID
update_downtime # Atualizar downtime
delete_downtime # Cancelar downtime
list_downtime # Listar todos os downtimes👥 Users (5 operações)
create_user # Criar usuário
get_user # Obter usuário por ID
update_user # Atualizar usuário
delete_user # Deletar usuário
list_user # Listar todos os usuários🏗️ Teams (5 operações)
create_team # Criar equipe
get_team # Obter equipe por ID
update_team # Atualizar equipe
delete_team # Deletar equipe
list_team # Listar todas as equipes📋 Como o LLM Descobre os Parâmetros
🔍 Autodescoberta Automática
O LLM NÃO precisa saber os parâmetros antecipadamente. Através do protocolo MCP, ele:
Lista todas as tools disponíveis
Obtém o schema JSON Schema completo de cada tool
Entende todos os parâmetros, tipos e validações
Constrói chamadas válidas automaticamente
📄 Schema Exemplo - create_monitor
{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Monitor name"
},
"type": {
"type": "string",
"enum": ["metric alert", "service check", "event alert", "query alert", "composite", "log alert"],
"description": "Monitor type"
},
"query": {
"type": "string",
"description": "Monitor query"
},
"message": {
"type": "string",
"description": "Notification message"
},
"tags": {
"type": "array",
"items": {"type": "string"},
"description": "Monitor tags"
},
"priority": {
"type": "number",
"minimum": 1,
"maximum": 5,
"description": "Priority (1-5)"
},
"options": {
"type": "object",
"properties": {
"thresholds": {
"type": "object",
"properties": {
"critical": {"type": "number"},
"warning": {"type": "number"},
"ok": {"type": "number"}
}
},
"notify_audit": {"type": "boolean"},
"require_full_window": {"type": "boolean"}
}
}
},
"required": ["name", "type", "query"]
}🎯 Exemplo de Uso pelo LLM
Input do usuário:
"Create a monitor to alert when CPU usage is above 90%"
Chamada automática do LLM:
await use_tool("create_monitor", {
"name": "High CPU Usage Alert",
"type": "metric alert",
"query": "avg(last_5m):avg:system.cpu.user{*} > 0.9",
"message": "CPU usage is high! Please investigate @ops-team",
"tags": ["alert", "cpu", "infrastructure"],
"priority": 3,
"options": {
"thresholds": {
"critical": 0.9,
"warning": 0.8
},
"notify_audit": true,
"require_full_window": false
}
})O LLM automaticamente:
✅ Descobriu todos os parâmetros disponíveis
✅ Preencheu campos obrigatórios (name, type, query)
✅ Adicionou campos opcionais relevantes
✅ Estruturou objetos complexos (options.thresholds)
✅ Validou tipos e constraints
🎯 Tools Curadas Especiais
🎯 Dashboards
list_dashboards # Lista com filtros avançados e paginação🎯 Logs
search_logs # Busca avançada de logs com filtros🎯 Metrics
query_metrics # Query de métricas timeseries🎯 Incidents
manage_incidents # Gerenciamento completo de incidentes🎯 Synthetics
manage_synthetics # Testes sintéticos completos🏗️ Integração com LLMs
Claude Desktop (Recomendado)
Adicione ao arquivo de configuração do Claude:
{
"mcpServers": {
"datadog": {
"command": "mcp-datadog-server",
"args": ["serve"],
"env": {
"DD_API_KEY": "your_api_key",
"DD_APP_KEY": "your_app_key",
"DD_SITE": "datadoghq.com"
}
}
}
}Via npx (Global)
{
"mcpServers": {
"datadog": {
"command": "npx",
"args": ["-y", "mcp-datadog-server", "serve"],
"env": {
"DD_API_KEY": "your_api_key",
"DD_APP_KEY": "your_app_key"
}
}
}
}Local Development
{
"mcpServers": {
"datadog": {
"command": "node",
"args": ["/path/to/mcp-datadog-server/src/index.js", "serve"],
"env": {
"DD_API_KEY": "your_api_key",
"DD_APP_KEY": "your_app_key"
}
}
}
}🛠️ Desenvolvimento
Scripts Disponíveis
npm test # Executar testes
npm run serve # Iniciar servidor
npm run list-tools # Listar tools
npm run validate # Validar configuração
npm run analyze-schema # Analisar schema da APIMakefile
make install # Instalar dependências
make start # Iniciar servidor
make test # Executar testes
make list-tools # Listar tools
make validate # Validar configuraçãoEstrutura do Projeto
src/
├── index.js # CLI principal
├── server.js # Servidor MCP principal
├── core/
│ ├── config.js # Sistema de configuração
│ ├── http-client.js # Cliente HTTP com retry
│ ├── schema-parser.js # Parser do schema Datadog
│ └── validation.js # Validações robustas
└── tools/
├── core-tools.js # Ferramentas base
├── curated-tools.js # Tools curadas otimizadas
└── crud-tools.js # Tools CRUD automáticas🔍 Debugging e Troubleshooting
Verificar Tools Carregadas
# Ver resumo
mcp-datadog-server list-tools
# Ver lista completa ordenada
mcp-datadog-server list-tools --detailed
# Ver schema de uma tool específica
mcp-datadog-server show-schema create_monitorValidar Configuração
# Validar tudo
mcp-datadog-server validate
# Ver configuração resumida
mcp-datadog-server validate --jsonTestar Conectividade
# Analisar schema carregado
mcp-datadog-server analyze-schema
# Testar servidor básico
timeout 5s mcp-datadog-server serveLogs e Debugging
# O servidor gera logs estruturados:
[2025-01-20T10:30:00.000Z] [INFO] Starting server with config: {...}
[2025-01-20T10:30:01.000Z] [INFO] Registered 9 curated tools
[2025-01-20T10:30:02.000Z] [INFO] Registered 25 CRUD tools
[2025-01-20T10:30:03.000Z] [INFO] Registered 319 generated tools
[2025-01-20T10:30:04.000Z] [INFO] Registered 351 tools total🚨 Solução de Problemas Comuns
1. "Tool não encontrada"
# Verificar se a tool existe
mcp-datadog-server list-tools --detailed | grep nome_da_tool
# Ver todas as categorias disponíveis
mcp-datadog-server analyze-schema2. "API Key inválida"
# Validar credenciais
mcp-datadog-server validate
# Verificar variáveis de ambiente
echo $DD_API_KEY
echo $DD_APP_KEY3. "Schema não carregado"
# Verificar se o schema existe
mcp-datadog-server analyze-schema
# Forçar recarregamento
rm -f datadog-api-collection-schema.json
mcp-datadog-server serve4. "Muitas tools carregadas"
# Filtrar apenas categorias necessárias
export MCP_DD_FOLDERS="Dashboards,Monitors,Logs"
mcp-datadog-server list-tools📈 Performance e Limites
Rate Limiting
✅ Automático - Respeita headers
retry-after✅ Configurável - Ajuste via
MCP_DD_MAX_RETRIES✅ Inteligente - Backoff exponencial
Timeouts
✅ Padrão: 30 segundos por requisição
✅ Configurável via
MCP_DD_TIMEOUT_MS✅ Progress Tracking para operações longas
Memory Usage
✅ Otimizado - Schema carregado uma vez na inicialização
✅ Streaming - Não mantém responses grandes em memória
✅ Filtros - Use
MCP_DD_FOLDERSpara reduzir footprint
🔐 Segurança
Credentials
✅ Environment Only - Chaves apenas via variáveis de ambiente
✅ No Logging - Credentials nunca aparecem em logs
✅ Validation - Formato das chaves validado na inicialização
Network
✅ TLS Only - Todas as chamadas via HTTPS
✅ Corporate Proxy - Suporte via
NODE_EXTRA_CA_CERTS✅ Headers Security - User-Agent e headers apropriados
Input Validation
✅ Zod Schemas - Validação rigorosa de entrada
✅ Sanitization - Limpeza automática de inputs
✅ Type Safety - TypeScript + runtime validation
📊 Monitoramento
Health Checks
# Status do servidor
mcp-datadog-server validate
# Análise das tools
mcp-datadog-server list-tools --json | jq '.total'Metrics Disponíveis
✅ Tools Count - Total de tools carregadas
✅ API Calls - Tracking de chamadas por tool
✅ Error Rate - Rate de erros por categoria
✅ Response Time - Tempos de resposta médios
🎓 Exemplos Práticos
Criar Monitor de CPU
O LLM pode automaticamente executar:
await use_tool("create_monitor", {
name: "High CPU Alert",
type: "metric alert",
query: "avg(last_5m):avg:system.cpu.user{*} > 0.9",
message: "CPU high @ops-team"
});Listar Dashboards Filtrados
await use_tool("list_dashboard", {
filter_shared: false,
count: 50
});Criar Downtime para Manutenção
await use_tool("create_downtime", {
scope: ["host:web-server-01"],
start: Math.floor(Date.now() / 1000),
end: Math.floor(Date.now() / 1000) + 3600,
message: "Planned maintenance window"
});📚 Documentação Adicional
🔍 SCHEMA_DISCOVERY.md - Como o LLM descobre parâmetros
📋 REFACTOR_CHECKPOINT.md - Histórico da refatoração
⚙️ TOOLS.md - Documentação completa das tools
🤝 Contribuição
Reportar Bugs
# Gerar relatório de debug
mcp-datadog-server validate --json > debug-info.json
mcp-datadog-server list-tools --json >> debug-info.jsonAdicionar Tools Curadas
Edite
src/tools/curated-tools.jsAdicione schema Zod completo
Implemente função
executeTeste com
npm test
Melhorar Tools CRUD
Edite
src/tools/crud-tools.jsAdicione novos recursos ao
DATADOG_RESOURCESDefina schemas e operações
Teste todas as operações CRUD
📝 Changelog
v0.3.0 - Current
✅ 351 tools (9 curadas + 25 CRUD + 319 geradas)
✅ CRUD completo para recursos principais
✅ Schema autodescoberta via MCP
✅ Progress tracking para operações longas
✅ CLI rica com comandos de debugging
✅ 100% conformidade com padrões MCP
v0.2.x - Previous
✅ Refatoração completa da arquitetura
✅ Validação robusta com Zod
✅ Cliente HTTP com retry automático
✅ Sistema de configuração limpo
📄 Licença
Apache License 2.0 - Veja LICENSE para detalhes.
🙏 Agradecimentos
Model Context Protocol - Framework base
Datadog - APIs e documentação
Zod - Schema validation
Undici - HTTP client
🎉 Pronto para usar com qualquer LLM compatível com MCP!
Para suporte e discussões, veja as Issues do repositório.