MCP Datadog Server
Enables interaction with Datadog APIs through automatically generated tools from Postman collections. Supports monitoring operations, log management, metrics submission, and other Datadog functionality through natural language.
README
MCP Datadog Server
- Servidor MCP (Model Context Protocol) para Datadog.
- Gera tools automaticamente a partir do Postman Collection
datadog-api-collection-schema.json. - Faz chamadas HTTP às APIs do Datadog usando suas chaves (API/Application) via headers.
Instalação
- Requisitos: Node.js 18+
- Instalar deps:
npm installoumake install
Execução
- Padrão (stdio):
node src/index.jsoumake start - Integre no seu host MCP apontando para esse comando (protocolo stdio).
- O servidor usa
McpServere registra todas as tools no startup (como na doc oficial do MCP). - O Makefile carrega variáveis de um arquivo
.envautomaticamente (se existir).
- O servidor usa
Configuração no Host MCP (LLM)
- Exemplos de configuração JSON do host MCP para adicionar servidores (Github e Datadog):
Exemplo 1 (Github, referência):
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
}
}
}
}
Exemplo 2 (Datadog via arquivo local):
{
"mcpServers": {
"datadog": {
"command": "node",
"args": ["/path/to/mcp-datadog-server/src/index.js"],
"env": {
"DATADOG_API_KEY": "<YOUR_API_KEY>",
"DATADOG_APP_KEY": "<YOUR_APP_KEY>",
"DATADOG_SITE": "<YOUR_SITE>" // opcional, ex.: datadoghq.com / datadoghq.eu
}
}
}
}
Exemplo 3 (Datadog via npx do pacote publicado):
{
"mcpServers": {
"datadog": {
"command": "npx",
"args": ["-y", "mcp-datadog-server"],
"env": {
"DATADOG_API_KEY": "<YOUR_API_KEY>",
"DATADOG_APP_KEY": "<YOUR_APP_KEY>",
"DATADOG_SITE": "<YOUR_SITE>" // opcional
}
}
}
}
Observações:
- O servidor aceita variáveis
DD_API_KEY/DD_APP_KEYouDATADOG_API_KEY/DATADOG_APP_KEY. - O site pode ser configurado com
DD_SITEouDATADOG_SITE(ex.:datadoghq.com,datadoghq.eu,us3.datadoghq.com). - Você também pode usar
MCP_DD_FOLDERSpara reduzir as tools carregadas (ex.:Logs,Monitors). - Qualquer querystring de exemplo embutida na coleção Postman é removida na geração das tools. Forneça
queryexplicitamente ao chamar a tool.
Variáveis de Ambiente
DD_API_KEYeDD_APP_KEY(obrigatórias)DD_SITE(opcional, padrãodatadoghq.com)DD_SUBDOMAIN(opcional, padrãoapi)MCP_DD_SCHEMA_PATH(opcional, caminho do JSON do Postman Collection; padrão édatadog-api-collection-schema.jsonno repositório)MCP_DD_FOLDERS(opcional, CSV de pastas topo da coleção para filtrar tools, ex.:Logs,Monitors,Metrics,Incidents,Dashboards)NODE_EXTRA_CA_CERTS(opcional) caminho para um certificado CA adicional (PEM/CRT) quando sua rede corporativa usa interceptação TLS. Ex.:NODE_EXTRA_CA_CERTS=/etc/ssl/certs/zscaler.pem(Linux) ouNODE_EXTRA_CA_CERTS="C:\\Users\\seu.usuario\\Devops\\zscaler.cer"(Windows)
Exemplo .env:
DD_API_KEY=xxxx
DD_APP_KEY=yyyy
DD_SITE=datadoghq.eu
MCP_DD_FOLDERS=Logs,Monitors,Metrics
# Para redes corporativas com CA própria (ex.: Zscaler)
# Linux/macOS
# NODE_EXTRA_CA_CERTS=/etc/ssl/certs/zscaler.pem
# Windows (atenção às barras invertidas e aspas)
# NODE_EXTRA_CA_CERTS="C:\\Users\\claudio.lazaro\\Devops\\zscaler.cer"
Capacidades
- Listar tools (MCP
list_tools) com nomes amigáveis, ex.:- Monitors:
get_monitors,get_monitor,create_monitor,update_monitor,delete_monitor,mute_monitor,unmute_monitor,search_monitors,search_monitor_groups,can_delete_monitors,validate_monitor. - Logs:
send_logs,search_logs_events,get_logs_events,aggregate_logs_analytics. - Metrics:
get_metrics_v1,get_metrics_v2,get_metric,get_metric_tags,update_metric,submit_series,submit_distribution_points,query_timeseries,query_scalars,estimate_metric.
- Monitors:
- Executar tools (MCP
call_tool) para qualquer endpoint da coleção. - Geração dinâmica de tools a partir do Postman Collection, com:
- Naming amigável por heurística (ver
src/schema.js). - Overrides de nomes para rotas populares (Monitors, Logs intake, Métricas de envio).
- Desambiguação por versão automática (
_v1,_v2) quando necessário. - Filtro por pastas de alto nível com
MCP_DD_FOLDERS(ex.:Logs,Monitors,Metrics).
- Naming amigável por heurística (ver
- Suporte a variáveis de path/query/body/headers por tool.
- Resolução de
{{baseUrl}},{{site}},{{subdomain}}conforme seu ambiente.
Curated tools (alto nível)
- Monitors:
list_monitors,get_monitor_by_id,create_monitor_v1,update_monitor_v1,delete_monitor_v1,mute_monitor_v1,unmute_monitor_v1. - Dashboards:
list_dashboards,get_dashboard_by_id,create_dashboard_v1,update_dashboard_v1,delete_dashboard_v1. - Logs:
logs_send,logs_search_events,logs_aggregate_analytics. - Metrics:
metrics_submit_series,metrics_query_timeseries,metrics_query_scalars. - Incidents:
incidents_list,incidents_get,incidents_create,incidents_update. - Downtimes:
downtimes_list,downtimes_create,downtimes_cancel. - Events:
events_post,events_list. - Notebooks:
notebooks_list,notebooks_get,notebooks_create,notebooks_update,notebooks_delete. - Synthetics:
synthetics_list_tests,synthetics_get_test,synthetics_create_test,synthetics_update_test,synthetics_delete_test. - SLOs:
slos_list,slos_get,slos_create,slos_update,slos_delete. - Users:
users_list,users_get,users_create,users_update. - Roles:
roles_list,roles_get. - Teams:
teams_list,teams_get.
Como as Tools Funcionam
- Cada tool aceita:
path: parâmetros de caminho (ex.:{ "monitor_id": 123 }).query: parâmetros de querystring.body: corpo da requisição (objeto/array ou string JSON bruta).headers: headers adicionais (chaves do Datadog são adicionadas automaticamente).site/subdomain: sobrescreveDD_SITE/DD_SUBDOMAINsó nessa chamada.
Exemplos Práticos
- Monitors
get_monitors→ GET/api/v1/monitor(filtros viaquery).get_monitor→ GET/api/v1/monitor/:monitor_id(path.monitor_id).create_monitor→ POST/api/v1/monitor(bodycom a definição do monitor).mute_monitor/unmute_monitor→ POST/api/v1/monitor/:monitor_id/mute|unmute.
- Logs
send_logs→ POSThttps://http-intake.logs.{{site}}/api/v2/logs(corpo: array de eventos de log).search_logs_events→ POST/api/v2/logs/events/search(corpo comfilter,page, etc.).
- Métricas
submit_series→ POST/api/v2/series(envio de métricas v2).submit_distribution_points→ POST/api/v1/distribution_points.query_timeseries/query_scalars→ POST/api/v2/query/*.
Segurança
- Lê chaves apenas das variáveis de ambiente e envia em headers (
DD-API-KEY,DD-APPLICATION-KEY). Não registra chaves em logs.
Dicas
- Muitas tools? Use
MCP_DD_FOLDERS="Logs,Monitors,Metrics"para reduzir o escopo. - Quando houver endpoints v1 e v2 equivalentes, os nomes terão sufixos (
*_v1,*_v2). - Ajuste nomes exatos via overrides em
src/schema.js(procuregetOverrideName).
Makefile
- Use
makepara tarefas comuns:make install→ instala dependênciasmake start→ inicia o servidor MCP (stdio)make list-tools→ lista tools geradas (useFOLDERS=Logs,Monitorspara filtrar)make test→ roda testes unitários e valida o JSON da coleçãomake smoke→ executa um teste funcional real contra a API do Datadog (usa.env)
Teste Funcional (Live) com a API do Datadog
- Configure
.envcom suas chaves:
DD_API_KEY=xxxx
DD_APP_KEY=yyyy
DD_SITE=datadoghq.com
- Rode o teste de fumaça:
make smoke
O script executa:
GET /api/v1/validatepara validar as chavesGET /api/v1/monitor?page_size=1para listar monitores (pode falhar se a conta/escopo não tiver permissão; o teste segue mesmo assim)
Saída esperada (exemplo):
Smoke test: Validate API key
Validate: 200 true { valid: true, ... }
Smoke test: List monitors (page_size=1)
Monitors: 200 true
{ "...": "..." }
Observação: chamadas reais podem incorrer em custos/limites e dependem das permissões dos tokens.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。