@arvoretech/datadog-mcp
v1.0.4
Published
Datadog MCP Server for monitoring and observability data
Downloads
21
Maintainers
Readme
Datadog MCP Server
A Model Context Protocol (MCP) server that provides AI assistants with access to Datadog monitoring and observability data.
Features
- Metrics Querying: Query time series metrics data
- Log Search: Search and retrieve logs with advanced filtering
- Dashboard Management: List and access dashboard information
- Monitor Management: Retrieve monitor configurations and status
- Service Maps: Access APM service topology data
- Infrastructure Monitoring: List and filter hosts
- Active Metrics: Discover currently reporting metrics
- APM Tracing: Search traces, list services, and get spans metrics
- Distributed Tracing: Analyze application performance and dependencies
Installation
npm install -g @arvoretech/datadog-mcp --registry=https://npm.pkg.github.comOr configure your .npmrc:
echo "@arvoretech:registry=https://npm.pkg.github.com" >> ~/.npmrc
npm install -g @arvoretech/datadog-mcpConfiguration
Set the required environment variables:
export DATADOG_API_KEY="your-datadog-api-key"
export DATADOG_APP_KEY="your-datadog-application-key"
export DATADOG_SITE="datadoghq.com" # Optional, defaults to datadoghq.comEnvironment Variables
Create a .env file or set these environment variables:
# Required
DATADOG_API_KEY=your-datadog-api-key-here
DATADOG_APP_KEY=your-datadog-application-key-here
# Optional (defaults to datadoghq.com)
DATADOG_SITE=datadoghq.com
# Other available sites:
# EU: datadoghq.eu
# US3: us3.datadoghq.com
# US5: us5.datadoghq.com
# Government: ddog-gov.comGetting API Keys
- Go to Datadog API Keys
- Create or copy your API key
- Go to Datadog Application Keys
- Create or copy your Application key
Usage
Direct Execution
node dist/index.jsClaude Desktop Configuration
Add to your Claude Desktop configuration file (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"datadog": {
"command": "npx",
"args": ["-y", "@arvoretech/datadog-mcp"],
"env": {
"DATADOG_API_KEY": "your-api-key",
"DATADOG_APP_KEY": "your-app-key",
"DATADOG_SITE": "datadoghq.com"
}
}
}
}Available Tools
query_metrics
Query Datadog metrics with time series data.
Parameters:
query(string): Datadog metrics query (e.g., 'avg:system.cpu.user{*}')from(number): Start timestamp (Unix epoch in seconds)to(number): End timestamp (Unix epoch in seconds)
search_logs
Search and retrieve logs from Datadog.
Parameters:
query(string): Log search query using Datadog search syntaxtime(object): Time range withfromandtoISO stringslimit(number): Maximum number of logs (1-1000, default 50)
list_dashboards
Retrieve a list of dashboards from your account.
Parameters:
count(number): Number of dashboards (max 100, default 25)start(number): Starting index for pagination (default 0)
list_monitors
Retrieve monitors from your account.
Parameters:
groupStates(array): Filter by monitor group statesname(string): Filter by monitor nametags(array): Filter by tagsmonitorTags(array): Filter by monitor tagswithDowntimes(boolean): Include downtime info (default true)
get_service_map
Retrieve APM service map data.
Parameters:
env(string): Environment name (e.g., 'production')start(number): Start timestamp (Unix epoch in seconds)end(number): End timestamp (Unix epoch in seconds)
list_hosts
List infrastructure hosts.
Parameters:
filter(string): Filter hosts by name or tagsortField(string): Sort field ('status', 'name', 'checkTime', 'triggerTime')sortDir(string): Sort direction ('asc', 'desc')start(number): Starting index (default 0)count(number): Number of hosts (max 1000, default 100)
get_active_metrics
Get currently reporting metrics from the last hour.
Parameters: None
search_traces
Search for traces in Datadog APM with filtering capabilities.
Parameters:
query(string): Trace search query (default "*")start(number): Start timestamp (Unix epoch in seconds)end(number): End timestamp (Unix epoch in seconds)limit(number): Maximum number of traces (1-1000, default 50)
list_services
List services monitored by Datadog APM.
Parameters:
start(number): Start timestamp (Unix epoch in seconds)end(number): End timestamp (Unix epoch in seconds)env(string): Environment filter (optional)
get_spans_metrics
Get metrics for spans with optional filtering.
Parameters:
start(number): Start timestamp (Unix epoch in seconds)end(number): End timestamp (Unix epoch in seconds)service(string): Service name filter (optional)operation(string): Operation name filter (optional)resource(string): Resource name filter (optional)env(string): Environment filter (optional)
Example Queries
Query CPU Usage
{
"query": "avg:system.cpu.user{*}",
"from": 1640995200,
"to": 1641081600
}Search Error Logs
{
"query": "status:error service:web-app",
"time": {
"from": "2024-01-01T00:00:00Z",
"to": "2024-01-01T23:59:59Z"
},
"limit": 100
}Search Traces with Errors
{
"query": "service:web-app error:true",
"start": 1640995200,
"end": 1641081600,
"limit": 50
}List Services in Production
{
"start": 1640995200,
"end": 1641081600,
"env": "production"
}Get Spans Metrics for Specific Service
{
"start": 1640995200,
"end": 1641081600,
"service": "web-api",
"env": "production"
}Development
# Install dependencies
pnpm install
# Build the project
pnpm build
# Run in development mode
pnpm dev
# Lint code
pnpm lint
# Run tests with coverage
pnpm test:covLicense
MIT
