Skip to content

MCP Config Validators

dnallm.mcp.config_validators

Configuration validators for MCP Server.

This module provides Pydantic models for validating MCP server configurations and inference model configurations.

Classes

InferenceConfig

Bases: BaseModel

Inference configuration for model prediction.

Functions
set_use_fp16 classmethod
set_use_fp16(v, info)

Set use_fp16 based on precision setting.

Source code in dnallm/mcp/config_validators.py
36
37
38
39
40
41
42
@field_validator("use_fp16", mode="before")
@classmethod
def set_use_fp16(cls, v, info):
    """Set use_fp16 based on precision setting."""
    if info.data and "precision" in info.data:
        return info.data["precision"] == "float16"
    return v

InferenceModelConfig

Bases: BaseModel

Complete inference model configuration.

Functions
validate_task_labels classmethod
validate_task_labels(v)

Validate that num_labels matches label_names length.

Source code in dnallm/mcp/config_validators.py
71
72
73
74
75
76
77
@field_validator("task")
@classmethod
def validate_task_labels(cls, v):
    """Validate that num_labels matches label_names length."""
    if v.num_labels != len(v.label_names):
        raise ValueError("num_labels must match the length of label_names")
    return v

LoggingConfig

Bases: BaseModel

Logging configuration.

MCPConfig

Bases: BaseModel

MCP protocol configuration.

MCPServerConfig

Bases: BaseModel

Complete MCP server configuration.

Functions
validate_model_names classmethod
validate_model_names(v)

Validate that model names are unique.

Source code in dnallm/mcp/config_validators.py
156
157
158
159
160
161
162
163
@field_validator("models")
@classmethod
def validate_model_names(cls, v):
    """Validate that model names are unique."""
    names = [entry.name for entry in v.values()]
    if len(names) != len(set(names)):
        raise ValueError("Model names must be unique")
    return v
validate_multi_model_references classmethod
validate_multi_model_references(v, info)

Validate that multi-model configurations reference existing models.

Source code in dnallm/mcp/config_validators.py
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
@field_validator("multi_model")
@classmethod
def validate_multi_model_references(cls, v, info):
    """Validate that multi-model configurations reference existing
    models."""
    if info.data and "models" in info.data:
        available_models = set(info.data["models"].keys())
        for config in v.values():
            for model_name in config.models:
                if model_name not in available_models:
                    raise ValueError(
                        f"Model '{model_name}' referenced in multi-model "
                        f"config but not defined in models"
                    )
    return v

ModelConfig

Bases: BaseModel

Individual model configuration.

ModelEntryConfig

Bases: BaseModel

Model entry in the main configuration.

Functions
validate_config_path classmethod
validate_config_path(v)

Validate config path format.

Source code in dnallm/mcp/config_validators.py
109
110
111
112
113
114
115
@field_validator("config_path")
@classmethod
def validate_config_path(cls, v):
    """Validate config path format."""
    if not v or not v.strip():
        raise ValueError("Config path cannot be empty")
    return v

ModelInfoConfig

Bases: BaseModel

Model information configuration.

MultiModelConfig

Bases: BaseModel

Multi-model parallel prediction configuration.

SSEConfig

Bases: BaseModel

SSE (Server-Sent Events) configuration.

ServerConfig

Bases: BaseModel

Server configuration.

TaskConfig

Bases: BaseModel

Task configuration for DNA prediction models.

Functions

validate_inference_model_config

validate_inference_model_config(config_path)

Validate inference model configuration file.

Source code in dnallm/mcp/config_validators.py
192
193
194
195
196
197
198
199
def validate_inference_model_config(config_path: str) -> InferenceModelConfig:
    """Validate inference model configuration file."""
    import yaml

    with open(config_path, encoding="utf-8") as f:
        config_dict = yaml.safe_load(f)

    return InferenceModelConfig(**config_dict)

validate_mcp_server_config

validate_mcp_server_config(config_path)

Validate MCP server configuration file.

Source code in dnallm/mcp/config_validators.py
182
183
184
185
186
187
188
189
def validate_mcp_server_config(config_path: str) -> MCPServerConfig:
    """Validate MCP server configuration file."""
    import yaml

    with open(config_path, encoding="utf-8") as f:
        config_dict = yaml.safe_load(f)

    return MCPServerConfig(**config_dict)