Skip to main content
Glama
config.py2.91 kB
"""Configuration settings for Turbify Store MCP Server.""" import os from pydantic_settings import BaseSettings from pydantic import Field class TurbifyStoreConfig(BaseSettings): """Turbify Store API configuration.""" # Required settings store_id: str = Field( default_factory=lambda: os.getenv("TURBIFY_STORE_ID", ""), description="Turbify Store ID" ) contract_token: str = Field( default_factory=lambda: os.getenv("TURBIFY_CONTRACT_TOKEN", ""), description="Turbify Store Contract Token" ) # API settings api_base_url: str = Field( default="https://catalog.store.turbifyapis.io/V1/", description="Base URL template for Turbify Store API" ) api_version: str = Field( default="1.0", description="API version to use" ) # Rate limiting and performance max_items_per_call: int = Field( default=100, description="Maximum items per API call (Turbify limit)" ) request_timeout: int = Field( default=30, description="API request timeout in seconds" ) max_retries: int = Field( default=3, description="Maximum number of retry attempts" ) backoff_factor: float = Field( default=1.0, description="Backoff factor for retries" ) # Search defaults default_search_limit: int = Field( default=100, description="Default limit for search results" ) max_search_limit: int = Field( default=1000, description="Maximum search result limit (Turbify constraint)" ) class Config: env_file = ".env" env_file_encoding = "utf-8" case_sensitive = False @property def api_base(self) -> str: """Get the formatted API base URL.""" return self.api_base_url.format(store_id=self.store_id) @property def is_configured(self) -> bool: """Check if required configuration is present.""" return bool(self.store_id and self.contract_token) def validate_config(self) -> None: """Validate configuration and raise if invalid.""" if not self.store_id: raise ValueError("TURBIFY_STORE_ID is required") if not self.contract_token: raise ValueError("TURBIFY_CONTRACT_TOKEN is required") if self.contract_token in ["your_contract_token", "your_store_id"]: raise ValueError("Please set actual values for TURBIFY_STORE_ID and TURBIFY_CONTRACT_TOKEN") # Global configuration instance config = TurbifyStoreConfig() def get_config() -> TurbifyStoreConfig: """Get the global configuration instance.""" return config def validate_environment() -> None: """Validate that all required environment variables are set.""" config.validate_config()

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/benpeke/turbify_store_mcp'

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