Skip to main content
Glama
mvilanova

Intervals.icu MCP Server

by mvilanova
config.py1.83 kB
""" Configuration management for Intervals.icu MCP Server. This module handles loading and validation of configuration from environment variables. """ import os from dataclasses import dataclass from intervals_mcp_server.utils.validation import validate_athlete_id # Try to load environment variables from .env file if it exists try: from dotenv import load_dotenv _ = load_dotenv() except ImportError: # python-dotenv not installed, proceed without it pass @dataclass class Config: """Configuration settings for the Intervals.icu MCP Server.""" api_key: str athlete_id: str intervals_api_base_url: str user_agent: str _config_instance: Config | None = None def load_config() -> Config: """ Load configuration from environment variables. Returns: Config: Configuration instance with loaded values. Raises: ValueError: If athlete_id is invalid (when non-empty). """ api_key = os.getenv("API_KEY", "") athlete_id = os.getenv("ATHLETE_ID", "") intervals_api_base_url = os.getenv("INTERVALS_API_BASE_URL", "https://intervals.icu/api/v1") user_agent = "intervalsicu-mcp-server/1.0" # Validate athlete_id if provided (empty string is allowed) if athlete_id: validate_athlete_id(athlete_id) return Config( api_key=api_key, athlete_id=athlete_id, intervals_api_base_url=intervals_api_base_url, user_agent=user_agent, ) def get_config() -> Config: """ Get the configuration instance (singleton pattern). Returns: Config: The configuration instance. """ global _config_instance # pylint: disable=global-statement # noqa: PLW0603 - singleton pattern if _config_instance is None: _config_instance = load_config() return _config_instance

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/mvilanova/intervals-mcp-server'

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