MCPcopy Create free account
hub / github.com/IBM/mcp-cli / models_command

Function models_command

src/mcp_cli/main.py:1289–1368  ·  view source on GitHub ↗

List available models for a provider.

(
    provider_name: str | None = typer.Argument(
        None, help="Provider name (defaults to current)"
    ),
    quiet: bool = typer.Option(False, "-q", "--quiet", help="Suppress most log output"),
    verbose: bool = typer.Option(
        False, "-v", "--verbose", help="Enable verbose logging"
    ),
    log_level: str = typer.Option("WARNING", "--log-level", help="Set log level"),
    theme: str = typer.Option("default", "--theme", help="UI theme"),
)

Source from the content-addressed store, hash-verified

1287# Models command - show available models for current or specified provider
1288@app.command("models", help="List available models for a provider")
1289def models_command(
1290 provider_name: str | None = typer.Argument(
1291 None, help="Provider name (defaults to current)"
1292 ),
1293 quiet: bool = typer.Option(False, "-q", "--quiet", help="Suppress most log output"),
1294 verbose: bool = typer.Option(
1295 False, "-v", "--verbose", help="Enable verbose logging"
1296 ),
1297 log_level: str = typer.Option("WARNING", "--log-level", help="Set log level"),
1298 theme: str = typer.Option("default", "--theme", help="UI theme"),
1299) -> None:
1300 """List available models for a provider."""
1301 # Configure logging and theme for this command
1302 _setup_command_logging(quiet, verbose, log_level, theme)
1303
1304 from mcp_cli.model_management import ModelManager
1305 from rich.table import Table
1306
1307 model_manager = ModelManager()
1308
1309 # Use specified provider or current active provider
1310 target_provider = provider_name or model_manager.get_active_provider()
1311 current_provider = model_manager.get_active_provider()
1312 current_model = model_manager.get_active_model()
1313
1314 # Validate provider exists
1315 if not model_manager.validate_provider(target_provider):
1316 output.error(f"Unknown provider: {target_provider}")
1317 output.info(
1318 f"Available providers: {', '.join(model_manager.get_available_providers())}"
1319 )
1320 return
1321
1322 # Get provider info
1323 default_model = model_manager.get_default_model(target_provider)
1324 available_models = model_manager.get_available_models(target_provider)
1325
1326 # Create table
1327 is_current_provider = target_provider == current_provider
1328 title = f"Models for {target_provider}"
1329 if is_current_provider:
1330 title += " (Current Provider)"
1331
1332 table = Table(title=title)
1333 table.add_column("Model", style="green")
1334 table.add_column("Status", style="yellow")
1335
1336 # Add default model
1337 default_status = "Default"
1338 if is_current_provider and default_model == current_model:
1339 default_status = "Current & Default"
1340 elif is_current_provider and current_model in available_models:
1341 default_status = "Default"
1342
1343 if default_model and default_model != "Not specified":
1344 table.add_row(default_model, default_status)
1345
1346 # Add current model if different from default and this is current provider

Callers

nothing calls this directly

Calls 8

get_active_providerMethod · 0.95
get_active_modelMethod · 0.95
validate_providerMethod · 0.95
get_default_modelMethod · 0.95
get_available_modelsMethod · 0.95
ModelManagerClass · 0.90
_setup_command_loggingFunction · 0.85

Tested by

no test coverage detected