Complete MCP CLI preferences.
| 166 | |
| 167 | |
| 168 | class MCPPreferences(BaseModel): |
| 169 | """Complete MCP CLI preferences.""" |
| 170 | |
| 171 | ui: UIPreferences = Field(default_factory=UIPreferences) |
| 172 | provider: ProviderPreferences = Field(default_factory=ProviderPreferences) |
| 173 | servers: ServerPreferences = Field(default_factory=ServerPreferences) |
| 174 | last_servers: str | None = None |
| 175 | config_file: str | None = None |
| 176 | |
| 177 | def to_dict(self) -> dict[str, Any]: |
| 178 | """Convert preferences to dictionary.""" |
| 179 | return self.model_dump() # type: ignore[no-any-return] |
| 180 | |
| 181 | @classmethod |
| 182 | def from_dict(cls, data: dict[str, Any]) -> "MCPPreferences": |
| 183 | """Create preferences from dictionary.""" |
| 184 | # Pydantic will handle nested model validation automatically |
| 185 | return cls.model_validate(data) # type: ignore[no-any-return] |
| 186 | |
| 187 | |
| 188 | class PreferenceManager: |
no outgoing calls