Skip to main content
Glama

Luno MCP Server

config.py2.52 kB
""" Configuration management for the Luno MCP server. """ import os from typing import Optional from pydantic import Field from pydantic_settings import BaseSettings from enum import Enum class LogLevel(str, Enum): """Supported logging levels.""" DEBUG = "DEBUG" INFO = "INFO" WARNING = "WARNING" ERROR = "ERROR" CRITICAL = "CRITICAL" class TransportType(str, Enum): """Supported transport types.""" STDIO = "stdio" STREAMABLE_HTTP = "streamable-http" SSE = "sse" class LunoMCPConfig(BaseSettings): """Configuration settings for the Luno MCP server.""" # Luno API credentials api_key: Optional[str] = Field( default=None, description="Luno API key for authenticated endpoints" ) api_secret: Optional[str] = Field( default=None, description="Luno API secret for authenticated endpoints" ) # Server configuration server_name: str = Field( default="luno-mcp-server", description="Name of the MCP server" ) server_description: str = Field( default="MCP server for Luno cryptocurrency exchange API", description="Description of the MCP server", ) # Transport configuration transport: TransportType = Field( default=TransportType.STDIO, description="Transport mechanism to use" ) host: str = Field( default="localhost", description="Host to bind to for HTTP-based transports" ) port: int = Field( default=8000, description="Port to bind to for HTTP-based transports" ) # Logging configuration log_level: LogLevel = Field(default=LogLevel.INFO, description="Logging level") # API configuration api_base_url: str = Field( default="https://api.luno.com", description="Base URL for the Luno API" ) request_timeout: float = Field( default=30.0, description="Request timeout in seconds" ) # Rate limiting configuration max_requests_per_minute: int = Field( default=60, description="Maximum requests per minute for rate limiting" ) class Config: env_prefix = "LUNO_MCP_" env_file = ".env" case_sensitive = False def get_config() -> LunoMCPConfig: """Get the configuration instance.""" return LunoMCPConfig() def has_credentials(config: Optional[LunoMCPConfig] = None) -> bool: """Check if API credentials are available.""" if config is None: config = get_config() return bool(config.api_key and config.api_secret)

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/amanasmuei/mcp-luno'

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