"""Server configuration settings."""
import logging
from dataclasses import dataclass
from typing import Any
@dataclass
class ServerSettings:
"""Server configuration settings."""
name: str = "MCP Server Hero"
debug: bool = False
log_level: str = "INFO"
max_request_size: int = 1024 * 1024 # 1MB
timeout: float = 30.0
def __post_init__(self) -> None:
"""Post-initialization setup."""
self.setup_logging()
def setup_logging(self) -> None:
"""Setup logging configuration."""
level = getattr(logging, self.log_level.upper(), logging.INFO)
logging.basicConfig(
level=level,
format="%(asctime)s - %(name)s - %(levelname)s - %(message)s",
datefmt="%Y-%m-%d %H:%M:%S",
)
if self.debug:
logging.getLogger().setLevel(logging.DEBUG)
def to_dict(self) -> dict[str, Any]:
"""Convert settings to dictionary.
Returns:
Settings as dictionary
"""
return {
"name": self.name,
"debug": self.debug,
"log_level": self.log_level,
"max_request_size": self.max_request_size,
"timeout": self.timeout,
}