haive.mcp.configΒΆ
Configuration models for MCP Downloader.
This module defines the configuration models used throughout the MCP downloader system, including templates, server configurations, and installation methods.
Example
Creating a server template:
- template = ServerTemplate(
name=βnpm_officialβ, installation_method=InstallationMethod.NPM, command_pattern=β@modelcontextprotocol/server-{service}β, capabilities=[βtoolsβ], category=βofficialβ
)
Creating a server configuration:
config = ServerConfig( name="filesystem", template="npm_official", source="npm", variables={"service": "filesystem"}, tags={"official", "file-operations"})
- Classes:
InstallationMethod: Enum of supported installation methods ServerTemplate: Template for server installation patterns ServerConfig: Configuration for a specific server DownloaderConfig: Overall downloader configuration
- class config.DiscoveryConfig(*, sources=<factory>, patterns=<factory>, auto_discover=False, discovery_interval=24, max_servers=100)[source]ΒΆ
Configuration for server discovery.
- Parameters:
- model_config: ClassVar[ConfigDict] = {}ΒΆ
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class config.DownloaderConfig(*, install_dir=<factory>, config_dir=<factory>, log_dir=<factory>, max_concurrent=5, retry_attempts=3, retry_delay=5, health_check_enabled=True, health_check_timeout=30, backup_enabled=True, backup_dir=<factory>, templates=<factory>, servers=<factory>, discovery=<factory>)[source]ΒΆ
Overall configuration for the MCP downloader.
- Parameters:
install_dir (Path)
config_dir (Path)
log_dir (Path)
max_concurrent (int)
retry_attempts (int)
retry_delay (int)
health_check_enabled (bool)
health_check_timeout (int)
backup_enabled (bool)
backup_dir (Path)
templates (list[ServerTemplate])
servers (list[ServerConfig])
discovery (DiscoveryConfig)
- install_dirΒΆ
Directory for server installations
- Type:
- config_dirΒΆ
Directory for configuration files
- Type:
- log_dirΒΆ
Directory for log files
- Type:
- backup_dirΒΆ
Directory for backups
- Type:
- templatesΒΆ
List of server templates
- Type:
- serversΒΆ
List of server configurations
- Type:
- discoveryΒΆ
Discovery configuration
- Type:
Example
Full configuration:
- discovery: DiscoveryConfigΒΆ
- model_config: ClassVar[ConfigDict] = {}ΒΆ
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- servers: list[ServerConfig]ΒΆ
- templates: list[ServerTemplate]ΒΆ
- class config.InstallationMethod(*values)[source]ΒΆ
Supported installation methods for MCP servers.
- NPMΒΆ
Node Package Manager installation
- PIPΒΆ
Python Package Index installation
- GITΒΆ
Git repository cloning
- DOCKERΒΆ
Docker image pull
- BINARYΒΆ
Binary executable download
- CURLΒΆ
Direct HTTP download
- MANUALΒΆ
Manual installation process
- SCRIPTΒΆ
Custom script execution
- BINARY = 'binary'ΒΆ
- CURL = 'curl'ΒΆ
- DOCKER = 'docker'ΒΆ
- GIT = 'git'ΒΆ
- MANUAL = 'manual'ΒΆ
- NPM = 'npm'ΒΆ
- PIP = 'pip'ΒΆ
- SCRIPT = 'script'ΒΆ
- class config.ServerConfig(*, name, template, source, variables=<factory>, enabled=True, priority=0, tags=<factory>, env_vars=<factory>, version=None)[source]ΒΆ
Configuration for a specific MCP server.
Server configurations define individual servers to be installed, referencing a template and providing server-specific variables.
- Parameters:
Example
Filesystem server config:
- model_config: ClassVar[ConfigDict] = {'use_enum_values': True}ΒΆ
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class config.ServerTemplate(*, name, installation_method, command_pattern, args_pattern=<factory>, env_vars=<factory>, capabilities=<factory>, category='general', health_check=None, prerequisites=<factory>, post_install=<factory>, timeout=300)[source]ΒΆ
Template for MCP server installation patterns.
Templates define reusable installation patterns that can be applied to multiple servers with similar installation requirements.
- Parameters:
- installation_methodΒΆ
Method to use for installation
Example
NPM template:
- installation_method: InstallationMethodΒΆ
- model_config: ClassVar[ConfigDict] = {'use_enum_values': True}ΒΆ
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- config.load_config(config_file)[source]ΒΆ
Load configuration from YAML file.
- Parameters:
config_file (Path) β Path to YAML configuration file
- Returns:
Loaded configuration
- Return type:
- Raises:
FileNotFoundError β If config file doesnβt exist
ValueError β If config file is invalid
Example
Loading config:
- config.save_config(config, config_file)[source]ΒΆ
Save configuration to YAML file.
- Parameters:
config (DownloaderConfig) β Configuration to save
config_file (Path) β Path to save file
- Return type:
None
Example
Saving config: