Datadog MCP Server
A generic Model Context Protocol (MCP) server for Datadog integration. This project enables Datadog API access via MCP for monitoring, metrics, dashboards, logs, events, and incidents.
Features
- Monitors: List and filter Datadog monitors by status, tags, etc.
- Metrics: Search and retrieve metric information
- Dashboards: List and get dashboard details
- Logs: Search logs with advanced filtering
- Events: Retrieve events within time ranges
- Incidents: List and search incidents
Setup
1. Install Dependencies
npm install
2. Configure Datadog Credentials
- Copy the environment template:
cp .env.template .env
- Get your Datadog API credentials from your Datadog account settings:
- API Key: https://app.datadoghq.com/organization-settings/api-keys
- Application Key: https://app.datadoghq.com/organization-settings/application-keys
- Edit
.envand fill in your credentials:
DD_API_KEY=your_datadog_api_key_here
DD_APP_KEY=your_datadog_app_key_here
DD_SITE=datadoghq.com # or your specific site (datadoghq.eu, us3.datadoghq.com, etc.)
3. Test Configuration
License
This project is licensed under the MIT License. See the LICENSE file for details.
npm test
This will validate your credentials and test the Datadog API connection.
Usage
VS Code MCP Integration
Add to your VS Code MCP configuration (~/.config/Code/User/mcp.json):
{
"mcpServers": {
"datadog": {
"command": "node",
"args": ["/absolute/path/to/datadog/index.js"],
"env": {
"DD_API_KEY": "your_api_key",
"DD_APP_KEY": "your_app_key",
"DD_SITE": "datadoghq.com"
}
}
}
}
Standalone Testing
# List available tools
echo '{"jsonrpc": "2.0", "id": 1, "method": "tools/list", "params": {}}' | node index.js
# Test monitors tool
echo '{"jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": {"name": "get_monitors", "arguments": {"limit": 5}}}' | node index.js
Available Tools
get_monitors
- Description: Retrieve Datadog monitors with filtering options
- Parameters:
limit(optional): Number of monitors to return (default: 10)groupStates(optional): Filter by monitor states (e.g., ["Alert", "Warn"])tags(optional): Filter by tags
get_metrics
- Description: Search for metrics in your Datadog account
- Parameters:
query(optional): Search query for metric nameslimit(optional): Number of metrics to return (default: 100)
get_dashboards
- Description: List Datadog dashboards
- Parameters:
limit(optional): Number of dashboards to return (default: 10)author(optional): Filter by authorfilterDeleted(optional): Filter out deleted dashboards
search_logs
- Description: Search logs with advanced filtering
- Parameters:
query(optional): Log search queryfrom(optional): Start time (e.g., "now-1h")to(optional): End time (e.g., "now")limit(optional): Number of logs to return (default: 100)
get_events
- Description: Retrieve events within a time range
- Parameters:
start(required): Start timestamp (Unix timestamp)end(required): End timestamp (Unix timestamp)priority(optional): Event priority filtertags(optional): Tag filter
get_incidents
- Description: List incidents from Datadog incident management
- Parameters:
query(optional): Search query for incidentslimit(optional): Number of incidents to return (default: 100)
Troubleshooting
Common Issues
-
"spawn datadog-mcp-server ENOENT": This means the official server isn't available. Use this custom server instead.
-
API Authentication Errors:
- Verify your
DD_API_KEYandDD_APP_KEYare correct - Check that your API keys have the necessary permissions
- Ensure you're using the correct
DD_SITEfor your Datadog instance
- Verify your
-
Network/Timeout Errors:
- Check your internet connection
- Verify firewall settings allow HTTPS to Datadog APIs
- Try increasing timeout values if on a slow connection
Debug Mode
Run with debug logging:
DEBUG=1 node index.js
Development
Testing Changes
# Install dependencies
npm install
# Test the server
npm test
# Start in development mode with auto-reload
npm run dev
Adding New Tools
- Define the Zod schema for input validation
- Add the tool to the
listToolshandler - Implement the tool logic in the
callToolhandler - Update this README with documentation
License
MIT License - See LICENSE file for details.
