mcp-collection
Documentation
Datadog Model Context Protocol (MCP) 🔍
A Python-based tool to interact with Datadog API and fetch monitoring data from your infrastructure. This MCP provides easy access to monitor states and Kubernetes logs through a simple interface.
Datadog Features 🌟
- Monitor State Tracking: Fetch and analyze specific monitor states
- Kubernetes Log Analysis: Extract and format error logs from Kubernetes clusters
Prerequisites 📋
- Python 3.11+
- Datadog API and Application keys (with correct permissions)
- Access to Datadog site
Installation 🔧
Installing via Smithery
To install Datadog for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @didlawowo/mcp-collection --client claudeRequired packages:
datadog-api-client
fastmcp
loguru
icecream
python-dotenv
uvEnvironment Setup 🔑
Create a .env file with your Datadog credentials:
DD_API_KEY=your_api_key
DD_APP_KEY=your_app_keySetup Claude Desktop Setup for MCP 🖥️
1. Install Claude Desktop
# Assuming you're on macOS
brew install claude-desktop
# Or download from official website
https://claude.ai/desktop2. Set up Datadog MCP config:
# on mac is
~/Library/Application\ Support/Claude/claude_desktop_config.json
# Add this to your claude config json"Datadog-MCP-Server": {
"command": "uv",
"args": [
"run",
"--with",
"datadog-api-client",
"--with",
"fastmcp",
"--with",
"icecream",
"--with",
"loguru",
"--with",
"python-dotenv",
"fastmcp",
"run",
"/your-path/mcp-collection/datadog/main.py"
],
"env": {
"DD_API_KEY": "xxxx",
"DD_APP_KEY": "xxx"
}
},
## Usage 💻


## Architecture 🏗
- **FastMCP Base**: Utilizes FastMCP framework for tool management
- **Modular Design**: Separate functions for monitors and logs
- **Type Safety**: Full typing support with Python type hints
- **API Abstraction**: Wrapped Datadog API calls with error handling
I'll add a section about MCP and Claude Desktop setup:
# Model Context Protocol (MCP) Introduction 🤖
## What is MCP?
Model Context Protocol (MCP) is a framework allowing AI models to interact with external tools and APIs in a standardized way. It enables models like Claude to:
- Access external data
- Execute commands
- Interact with APIs
- Maintain context across conversations
## some examples of MCP servers
## Tutorial for setup MCP
## How it works - Available Functions 🛠️
the LLM use provided function to get the data and use it
### 1. Get Monitor Statesget_monitor_states(
name: str, # Monitor name to search
timeframe: int = 1 # Hours to look back
)
Example:response = get_monitor_states(name="traefik")
Sample Output
{
"id": "12345678",
"name": "traefik",
"status": "OK",
"query": "avg(last_5m):avg:traefik.response_time{*} > 1000",
"message": "Response time is too high",
"type": "metric alert",
"created": "2024-01-14T10:00:00Z",
"modified": "2024-01-14T15:30:00Z"
}
### 2. Get Kubernetes Logsget_k8s_logs(
cluster: str, # Kubernetes cluster name
timeframe: int = 5, # Hours to look back
namespace: str = None # Optional namespace filter
)
Example:logs = get_k8s_logs(
cluster="prod-cluster",
timeframe=3,
namespace="default"
)
Sample Output
{
"timestamp": "2024-01-14T22:00:00Z",
"host": "worker-1",
"service": "nginx-ingress",
"pod_name": "nginx-ingress-controller-abc123",
"namespace": "default",
"container_name": "controller",
"message": "Connection refused",
"status": "error"
}
// Code blockInstall as MCP extension
cd datadog
task install-mcp
## 4. Verify Installation
### In Claude chat desktop
check datadog connection in claude

## 5. Use Datadog MCP Tools
## Security Considerations 🔒
- Store API keys in `.env`
- MCP runs in isolated environment
- Each tool has defined permissions
- Rate limiting is implemented
## Troubleshooting 🔧
### Using MCP InspectorLaunch MCP Inspector for debugging
task run-mcp-inspector
The MCP Inspector provides:
- Real-time view of MCP server status
- Function call logs
- Error tracing
- API response monitoring
### Common issues and solutions
1. **API Authentication Errors**Error: (403) Forbidden
➡️ Check your DD_API_KEY and DD_APP_KEY in .env
2. **MCP Connection Issues**Error: Failed to connect to MCP server
➡️ Verify your claude_desktop_config.json path and content
3. **Monitor Not Found**Error: No monitor found with name 'xxx'
➡️ Check monitor name spelling and case sensitivity
4. **logs can be found here**

## Contributing 🤝
Feel free to:
1. Open issues for bugs
2. Submit PRs for improvements
3. Add new features
## Notes 📝
- API calls are made to Datadog EU site
- Default timeframe is 1 hour for monitor states
- Page size limits are set to handle most use casesSimilar MCP
Based on tags & features
Trending MCP
Most active this week