Skip to main content
Glama
config.py4.3 kB
"""Configuration management for ScreenMonitorMCP v2.""" import os from typing import List, Optional from pydantic import Field from pydantic_settings import BaseSettings class ServerConfig(BaseSettings): """Server configuration settings.""" # Server settings host: str = Field("0.0.0.0", description="Server host") port: int = Field(8000, description="Server port") workers: int = Field(1, description="Number of worker processes") reload: bool = Field(False, description="Enable auto-reload") # Security settings api_key: Optional[str] = Field(None, description="API key for authentication") cors_origins: List[str] = Field( default=["*"], description="CORS allowed origins" ) cors_credentials: bool = Field(True, description="Allow CORS credentials") # Streaming settings - Optimized for client stability max_stream_fps: int = Field(10, description="Maximum streaming FPS - Reduced for client stability") default_stream_fps: int = Field(1, description="Default streaming FPS - Conservative default") max_stream_quality: int = Field(75, description="Maximum streaming quality - Reduced for bandwidth") default_stream_quality: int = Field(60, description="Default streaming quality - Optimized for performance") max_concurrent_streams: int = Field(25, description="Maximum concurrent streams - Reduced for stability") stream_buffer_size: int = Field(10, description="Stream buffer size - Reduced to prevent memory issues") # Connection settings - Enhanced for stability max_connections: int = Field(250, description="Maximum concurrent connections - Reduced for stability") connection_timeout: int = Field(20, description="Connection timeout in seconds - Faster cleanup") keep_alive_timeout: int = Field(3, description="Keep-alive timeout in seconds - Faster detection") client_buffer_limit: int = Field(5 * 1024 * 1024, description="Client buffer limit in bytes (5MB)") max_frame_size: int = Field(2 * 1024 * 1024, description="Maximum frame size in bytes (2MB)") # Performance settings request_timeout: int = Field(30, description="Request timeout in seconds") max_request_size: int = Field(100 * 1024 * 1024, description="Maximum request size in bytes") rate_limit_per_minute: int = Field(60, description="Rate limit per minute") # Logging settings log_level: str = Field("INFO", description="Logging level") log_format: str = Field( "json", description="Log format: json, plain" ) # AI Provider settings openai_api_key: Optional[str] = Field(None, description="OpenAI API key") openai_base_url: Optional[str] = Field(None, description="OpenAI API base URL (for compatible APIs)") openai_model: str = Field("gpt-4o", description="OpenAI model name - Optimized for monitor analysis") openai_timeout: int = Field(30, description="OpenAI timeout in seconds") # Cache settings cache_enabled: bool = Field(True, description="Enable caching") cache_ttl: int = Field(3600, description="Cache TTL in seconds") cache_max_size: int = Field(1000, description="Maximum cache entries") # Monitoring settings metrics_enabled: bool = Field(True, description="Enable metrics collection") metrics_port: int = Field(9090, description="Metrics server port") health_check_interval: int = Field(30, description="Health check interval in seconds") # MCP Server settings (from core/config.py) mcp_server_name: str = Field("screenmonitormcp-v2", description="MCP server name") mcp_server_version: str = Field("2.0.0", description="MCP server version") mcp_protocol_version: str = Field("2025-06-18", description="MCP protocol version") # Screen capture settings (from core/config.py) default_image_format: str = Field("png", description="Default image format for screen captures") default_image_quality: int = Field(85, description="Default image quality for screen captures") class Config: """Pydantic configuration.""" env_file = ".env" env_file_encoding = "utf-8" case_sensitive = False extra = "allow" # Global configuration instance config = ServerConfig()

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/inkbytefo/ScreenMonitorMCP'

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