Skip to main content
Glama
ASXRND

MCP Weather & Accruals Server

by ASXRND
config.py3.37 kB
#!/usr/bin/env python3 """ Модуль конфигурации проекта. Загружает и валидирует переменные окружения. """ import os import sys import logging from dotenv import load_dotenv # Загружаем переменные окружения из файла .env load_dotenv() # Настраиваем логирование logging.basicConfig( level=os.getenv("LOG_LEVEL", "INFO").upper(), format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', handlers=[ logging.StreamHandler() ] ) logger = logging.getLogger("Config") class Config: """ Класс для управления конфигурацией приложения. Загружает и валидирует все необходимые переменные окружения. """ # OpenWeatherMap API OPENWEATHER_API_KEY = os.getenv("OPENWEATHER_API_KEY") OPENWEATHER_BASE_URL = os.getenv( "OPENWEATHER_BASE_URL", "https://api.openweathermap.org/data/2.5" ) # Deepseek API DEEPSEEK_API_KEY = os.getenv("DEEPSEEK_API_KEY") DEEPSEEK_BASE_URL = "https://api.deepseek.com/chat/completions" # Database DATABASE_URL = os.getenv("DATABASE_URL", "postgresql://localhost/mydb") # API для работы с начислениями ACCRUALS_API_URL = os.getenv("ACCRUALS_API_URL", "http://localhost:8000") # Параметры приложения LOG_LEVEL = os.getenv("LOG_LEVEL", "INFO").upper() MAX_FORECAST_DAYS = 5 MIN_FORECAST_DAYS = 1 DEFAULT_FORECAST_DAYS = 3 API_TIMEOUT = 30.0 # Таймаут для API запросов в секундах API_TIMEOUT = 30.0 # Таймаут для API запросов в секундах @classmethod def validate(cls) -> bool: """ Валидирует наличие критических переменных окружения. Returns: bool: True если все критические переменные установлены, False иначе """ errors = [] if not cls.OPENWEATHER_API_KEY: errors.append("OPENWEATHER_API_KEY не найден в переменных окружения") if not cls.DEEPSEEK_API_KEY: errors.append("DEEPSEEK_API_KEY не найден в переменных окружения") if errors: for error in errors: logger.error(error) return False logger.info("✅ Конфигурация успешно валидирована") return True @classmethod def get_config_summary(cls) -> str: """ Возвращает сводку конфигурации для логирования. Returns: str: Строка с информацией о конфигурации """ return f""" Конфигурация приложения: - OpenWeatherMap URL: {cls.OPENWEATHER_BASE_URL} - Deepseek API: {cls.DEEPSEEK_BASE_URL} - Уровень логирования: {cls.LOG_LEVEL} - Максимум дней прогноза: {cls.MAX_FORECAST_DAYS} - Таймаут API: {cls.API_TIMEOUT} сек """.strip()

Latest Blog Posts

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/ASXRND/MCP_deepseek'

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