Skip to main content
Glama

list_models

Retrieve all available models for a specified LLM provider (e.g., OpenAI, Anthropic, Google Gemini) through the Just Prompt MCP server, enabling efficient model selection.

Instructions

List all available models for a specific LLM provider

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
providerYesProvider to list models for (e.g., 'openai' or 'o')

Implementation Reference

  • Handler logic in the call_tool function that invokes list_models_func with the provider argument and formats the list of models as TextContent for the MCP response.
    elif name == JustPromptTools.LIST_MODELS:
        models = list_models_func(arguments["provider"])
        return [TextContent(
            type="text",
            text=f"Models for provider '{arguments['provider']}':\n" + 
                 "\n".join([f"- {model}" for model in models])
        )]
  • Pydantic schema defining the input for the list_models tool, requiring a 'provider' string field.
    class ListModelsSchema(BaseModel):
        provider: str = Field(..., description="Provider to list models for (e.g., 'openai' or 'o')")
  • Registration of the 'list_models' tool in the server's list_tools() method, including name, description, and input schema.
    Tool(
        name=JustPromptTools.LIST_MODELS,
        description="List all available models for a specific LLM provider",
        inputSchema=ListModelsSchema.schema(),
    ),
  • Core list_models function imported and used by the handler; validates the provider and routes to ModelRouter for model listing.
    def list_models(provider: str) -> List[str]:
        """
        List available models for a provider.
        
        Args:
            provider: Provider name (full or short)
            
        Returns:
            List of model names
        """
        # Validate provider
        validate_provider(provider)
        
        # Get models from provider
        return ModelRouter.route_list_models(provider)
  • ModelRouter.route_list_models dynamically imports the provider-specific module and calls its list_models() method to retrieve available models.
    def route_list_models(provider_name: str) -> List[str]:
        """
        Route a list_models request to the appropriate provider.
    
        Args:
            provider_name: Provider name (full or short)
    
        Returns:
            List of model names
        """
        provider = ModelProviders.from_name(provider_name)
    
        if not provider:
            raise ValueError(f"Unknown provider: {provider_name}")
    
        # Import the appropriate provider module
        try:
            module_name = f"just_prompt.atoms.llm_providers.{provider.full_name}"
            provider_module = importlib.import_module(module_name)
    
            # Call the list_models function
            return provider_module.list_models()
        except ImportError as e:
            logger.error(f"Failed to import provider module: {e}")
            raise ValueError(f"Provider not available: {provider.full_name}")
        except Exception as e:
            logger.error(f"Error listing models for {provider.full_name}: {e}")
            raise
Install Server

Other Tools

Related Tools

Latest Blog Posts

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/disler/just-prompt'

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