Skip to main content
Glama

MCP Git Server

by MementoRC
__init__.py4.83 kB
"""Configuration module for MCP Git Server. This module provides comprehensive configuration management using Pydantic models for validation, type safety, and documentation. Configuration is designed to be environment-aware, validation-rich, and easily testable. Architecture: Configuration follows a hierarchical approach: - Base configuration: Common configuration patterns and validation - Service configuration: Service-specific configuration models - Application configuration: Top-level application configuration - Environment integration: Environment variable binding and defaults Key components: server_config: Main server configuration with validation git_config: Git service configuration and validation github_config: GitHub service configuration and validation security_config: Security and authentication configuration Configuration principles: - Type safety: All configuration values have explicit types - Validation: Comprehensive validation with clear error messages - Documentation: Self-documenting configuration with examples - Environment aware: Automatic binding to environment variables - Testable: Easy to create test configurations Pydantic features used: - Field validation: Custom validators for complex rules - Environment variables: Automatic binding to environment - Nested models: Hierarchical configuration structures - Default factories: Dynamic default value generation - Aliases: Support for multiple naming conventions Configuration hierarchy: ```python class ApplicationConfig(BaseModel): server: ServerConfig git: GitConfig github: GitHubConfig security: SecurityConfig logging: LoggingConfig ``` Usage examples: >>> from mcp_server_git.configuration import ApplicationConfig >>> >>> # Load from environment variables >>> config = ApplicationConfig() >>> >>> # Load from file >>> config = ApplicationConfig.parse_file("config.json") >>> >>> # Load from dictionary >>> config_dict = {"server": {"host": "0.0.0.0", "port": 8080}} >>> config = ApplicationConfig.parse_obj(config_dict) >>> >>> # Access typed configuration >>> print(f"Server running on {config.server.host}:{config.server.port}") Environment variable binding: ```bash # Environment variables automatically bind to configuration export MCP_SERVER_HOST=localhost export MCP_SERVER_PORT=8080 export MCP_GIT_MAX_CONCURRENT_OPERATIONS=20 export MCP_GITHUB_TOKEN=ghp_xxxxxxxxxxxx ``` Validation examples: >>> from mcp_server_git.configuration import GitConfig >>> >>> try: ... config = GitConfig(operation_timeout_seconds=0) ... except ValidationError as e: ... print(e.errors()) [{'loc': ('operation_timeout_seconds',), 'msg': 'ensure this value is greater than 0'}] Configuration testing: >>> from mcp_server_git.configuration import create_test_config >>> >>> # Create configuration optimized for testing >>> test_config = create_test_config( ... override_git_timeout=1, # Fast timeouts for tests ... override_github_token="test_token" ... ) Schema generation: >>> from mcp_server_git.configuration import ApplicationConfig >>> >>> # Generate JSON schema for documentation >>> schema = ApplicationConfig.schema() >>> print(json.dumps(schema, indent=2)) Security considerations: - Secrets handling: Proper handling of sensitive configuration - Validation: Prevent invalid or dangerous configuration - Environment isolation: Separate configuration for different environments - Audit logging: Log configuration changes and access See also: - constants: Default values used in configuration - types: Type definitions used in configuration models - validation: Additional validation utilities """ # Import all configuration models from .git_config import GitConfig from .github_config import GitHubConfig from .server_config import GitServerConfig # Export all configuration models and utilities __all__: list[str] = [ # Server configuration "GitServerConfig", # Service configurations "GitConfig", "GitHubConfig", # Note: Additional configurations and utilities can be added as they are implemented: # "ApplicationConfig", # Combined configuration model # "SecurityConfig", # Security-specific configuration # "LoggingConfig", # Logging configuration # "MetricsConfig", # Metrics configuration # "create_test_config", # Test configuration factory # "load_config_from_env", # Environment loading utility # "validate_config_file", # Configuration file validation # "generate_config_schema", # Schema generation utility ]

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/MementoRC/mcp-git'

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