"""Configuration loading for Reachy Mini MCP server."""
import os
from dataclasses import dataclass
from typing import Literal
@dataclass
class Config:
"""Configuration settings for the MCP server."""
# Robot settings
robot_name: str = "reachy-mini"
enable_camera: bool = False
head_tracking_enabled: bool = False
# MCP transport settings
transport: Literal["stdio", "sse"] = "stdio"
sse_host: str = "0.0.0.0"
sse_port: int = 8000
@classmethod
def from_env(cls) -> "Config":
"""Load configuration from environment variables."""
transport_value = os.getenv("REACHY_MINI_MCP_TRANSPORT", "stdio").lower()
transport: Literal["stdio", "sse"] = "sse" if transport_value == "sse" else "stdio"
return cls(
robot_name=os.getenv("REACHY_MINI_ROBOT_NAME", "reachy-mini"),
enable_camera=os.getenv("REACHY_MINI_ENABLE_CAMERA", "").lower()
in ("true", "1", "yes"),
head_tracking_enabled=os.getenv("REACHY_MINI_HEAD_TRACKING_ENABLED", "").lower()
in ("true", "1", "yes"),
transport=transport,
sse_host=os.getenv("REACHY_MINI_MCP_HOST", "0.0.0.0"),
sse_port=int(os.getenv("REACHY_MINI_MCP_PORT", "8000")),
)
@property
def sse_url(self) -> str:
"""Get the SSE URL for the MCP server."""
return f"http://{self.sse_host}:{self.sse_port}/sse"