"""Configuration management for Cisco Catalog MCP Server."""
from pydantic_settings import BaseSettings, SettingsConfigDict
class Settings(BaseSettings):
"""Application settings loaded from environment variables."""
model_config = SettingsConfigDict(
env_file=".env",
env_file_encoding="utf-8",
case_sensitive=False,
)
# Cisco API Credentials
cisco_client_id: str
cisco_client_secret: str
cisco_cco_username: str
cisco_cco_password: str
# API Configuration
cisco_price_list: str = "GLUS"
cisco_token_url: str = "https://id.cisco.com/oauth2/default/v1/token"
cisco_catalog_url: str = "https://api.cisco.com/commerce/CATALOG/v2/sync/getItemInformation"
cisco_mapped_service_url: str = "https://api.cisco.com/commerce/CATALOG/v2/sync/getMappedService"
cisco_offers_url: str = "https://api.cisco.com/commerce/CATALOG/lpcservices/v1/offers"
cisco_offer_details_url: str = "https://api.cisco.com/commerce/CATALOG/lpcservices/v1/offerDetails"
# Request Configuration
request_timeout: int = 60
max_skus_per_request: int = 1000
token_refresh_buffer_seconds: int = 60
def get_settings() -> Settings:
"""Get application settings (cached)."""
return Settings()