Skip to main content
Glama

Datadog MCP Server

by brukhabtu
config.py2.63 kB
"""Configuration models for Datadog MCP server.""" from __future__ import annotations import os from typing import TYPE_CHECKING from pydantic import BaseModel, field_validator if TYPE_CHECKING: pass class DatadogConfig(BaseModel): """Configuration for Datadog connection.""" base_url: str api_key: str app_key: str timeout: int = 30 site: str = "datadoghq.com" openapi_spec_path: str | None = None @field_validator("base_url", "api_key", "app_key") @classmethod def validate_not_empty(cls, v: str) -> str: if not v or not v.strip(): msg = "Field cannot be empty" raise ValueError(msg) return v.strip() class MCPConfig(BaseModel): """Configuration for MCP server.""" transport: str = "stdio" port: int = 8000 log_level: str = "INFO" enable_security_filtering: bool = True class AppConfig(BaseModel): """Main application configuration.""" datadog: DatadogConfig mcp: MCPConfig @classmethod def from_env(cls) -> AppConfig: """Load configuration from environment variables.""" # Required environment variables api_key = os.getenv("DATADOG_API_KEY") app_key = os.getenv("DATADOG_APP_KEY") if not api_key: msg = "DATADOG_API_KEY environment variable is required" raise ValueError(msg) if not app_key: msg = "DATADOG_APP_KEY environment variable is required" raise ValueError(msg) # Optional environment variables with defaults base_url = os.getenv("DATADOG_BASE_URL", "https://api.datadoghq.com") timeout = int(os.getenv("DATADOG_TIMEOUT", "30")) site = os.getenv("DATADOG_SITE", "datadoghq.com") openapi_spec_path = os.getenv("DATADOG_OPENAPI_SPEC_PATH") transport = os.getenv("MCP_TRANSPORT", "stdio") port = int(os.getenv("MCP_PORT", "8000")) log_level = os.getenv("MCP_LOG_LEVEL", "INFO") enable_security_filtering = os.getenv( "MCP_ENABLE_SECURITY_FILTERING", "true" ).lower() in ("true", "1", "yes") datadog_config = DatadogConfig( base_url=base_url, api_key=api_key, app_key=app_key, timeout=timeout, site=site, openapi_spec_path=openapi_spec_path, ) mcp_config = MCPConfig( transport=transport, port=port, log_level=log_level, enable_security_filtering=enable_security_filtering, ) return cls(datadog=datadog_config, mcp=mcp_config)

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/brukhabtu/datadog-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server