Skip to main content
Glama

list_available_providers

Discover available AI model providers and their configurations to select the right multimodal models for processing images and media formats.

Instructions

List available model providers and their configurations.

        Returns:
            JSON string of available providers and their models
        

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Implementation Reference

  • The handler function for the 'list_available_providers' tool. It is decorated with @self.server.tool() for registration and returns a JSON string containing information about available providers (e.g., openai, dashscope), including their supported models, default models, max_tokens, and temperature settings.
    def list_available_providers() -> str:
        """List available model providers and their configurations.
    
        Returns:
            JSON string of available providers and their models
        """
        providers_info = {}
    
        for provider_name, provider in self.providers.items():
            # Find the provider config to get default model
            provider_config = None
            for config in self.config.get("providers", []):
                if config.get("provider_type") == provider_name:
                    provider_config = config
                    break
    
            if isinstance(provider, OpenAIProvider):
                providers_info[provider_name] = {
                    "type": "openai",
                    "default_model": provider_config.get("default_model", "gpt-4o") if provider_config else "gpt-4o",
                    "supported_models": provider.supported_models,
                    "max_tokens": provider_config.get("max_tokens", 4000) if provider_config else 4000,
                    "temperature": provider_config.get("temperature", 0.7) if provider_config else 0.7
                }
            elif isinstance(provider, DashscopeProvider):
                providers_info[provider_name] = {
                    "type": "dashscope",
                    "default_model": provider_config.get("default_model", "qwen-vl-plus") if provider_config else "qwen-vl-plus",
                    "supported_models": provider.supported_models,
                    "max_tokens": provider_config.get("max_tokens", 4000) if provider_config else 4000,
                    "temperature": provider_config.get("temperature", 0.7) if provider_config else 0.7
                }
    
        return json.dumps(providers_info, indent=2)
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool returns a JSON string of providers and models, which is useful, but doesn't cover other behavioral traits like rate limits, authentication needs, error handling, or whether it's a read-only operation. The description adds some value but leaves significant gaps for a tool with no annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately concise with two sentences: one stating the purpose and one specifying the return format. It's front-loaded with the main action. However, the formatting includes extra indentation and a blank line, which slightly detracts from structure but doesn't impact clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 0 parameters, 100% schema coverage, and an output schema exists, the description is moderately complete. It explains what the tool does and the return format, but with no annotations, it should ideally cover more behavioral aspects like safety or performance. The output schema reduces the need to detail return values, but the description could better address gaps from missing annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0 parameters with 100% coverage, so the schema fully documents the lack of inputs. The description doesn't need to add parameter details, and it correctly avoids discussing parameters. This meets the baseline for 0 parameters, as the description focuses on output without redundancy.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb ('List') and resource ('available model providers and their configurations'). It distinguishes from sibling tools like 'generate_multimodal_response' and 'validate_multimodal_request' by focusing on listing rather than generating or validating. However, it doesn't explicitly differentiate itself from potential alternative listing tools beyond the scope of providers.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, context for usage, or compare it to sibling tools. The only implied usage is to retrieve provider information, but this is basic and lacks explicit when/when-not instructions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other 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/StanleyChanH/vllm-mcp'

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