Skip to main content
Glama
config.pyโ€ข2.32 kB
""" Configuration for Pitstop F1 MCP Server Supports development and production environments. """ import os from pathlib import Path from typing import Literal from dotenv import load_dotenv # Load environment variables from .env file env_path = Path(__file__).parent / '.env' if env_path.exists(): load_dotenv(env_path) else: # Try to load from current directory as fallback load_dotenv() # Environment configuration ENV = os.getenv("PITSTOP_ENV", "development") # development or production LOG_LEVEL = os.getenv("PITSTOP_LOG_LEVEL", "INFO" if ENV == "production" else "DEBUG") # Server configuration SERVER_NAME = "Pitstop F1" SERVER_VERSION = "1.0.0" # Feature flags ENABLE_CACHING = os.getenv("PITSTOP_ENABLE_CACHING", "true").lower() == "true" CACHE_TTL_SECONDS = int(os.getenv("PITSTOP_CACHE_TTL", "300")) # 5 minutes default # Error handling MASK_ERRORS_IN_PRODUCTION = ENV == "production" DETAILED_ERROR_MESSAGES = ENV == "development" # Rate limiting (requests per hour per client) RATE_LIMIT_ENABLED = os.getenv("PITSTOP_RATE_LIMIT_ENABLED", "false").lower() == "true" RATE_LIMIT_PER_HOUR = int(os.getenv("PITSTOP_RATE_LIMIT", "1000")) # Timeout settings (seconds) DEFAULT_TIMEOUT = int(os.getenv("PITSTOP_TIMEOUT", "30")) TELEMETRY_TIMEOUT = int(os.getenv("PITSTOP_TELEMETRY_TIMEOUT", "60")) # Telemetry can be slow # Logging configuration LOG_FORMAT = "json" if ENV == "production" else "text" LOG_INCLUDE_TIMESTAMP = True LOG_INCLUDE_REQUEST_ID = True # Data source URLs (for monitoring/health checks) DATA_SOURCES = { "fastf1": "FastF1 Library", "ergast": "http://ergast.com/api/f1", "openf1": "https://api.openf1.org/v1", } def get_config() -> dict: """Get current configuration as dictionary.""" return { "environment": ENV, "server_name": SERVER_NAME, "server_version": SERVER_VERSION, "log_level": LOG_LEVEL, "caching_enabled": ENABLE_CACHING, "cache_ttl": CACHE_TTL_SECONDS, "rate_limiting_enabled": RATE_LIMIT_ENABLED, "mask_errors": MASK_ERRORS_IN_PRODUCTION, } def is_production() -> bool: """Check if running in production mode.""" return ENV == "production" def is_development() -> bool: """Check if running in development mode.""" return ENV == "development"

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/praneethravuri/pitstop'

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