Skip to main content
Glama
antonioschaffert

AWS Advisor MCP Server

suggest_aws_service

Get AWS service recommendations by describing your technical use case, such as building a serverless API or storing images, to identify suitable services for your project.

Instructions

Get AWS service recommendations based on your use case. Provide a description of what you want to build or accomplish, and get relevant AWS service suggestions.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
use_caseYesDescription of your use case, requirements, or what you want to build (e.g., 'serverless API', 'store images', 'real-time data processing')

Implementation Reference

  • Handler logic for 'suggest_aws_service' tool: parses arguments, calls search helper, formats and returns recommendations as TextContent.
    if name == "suggest_aws_service":
        use_case = arguments.get("use_case", "")
    
        if not use_case:
            return [TextContent(
                type="text",
                text="Error: Please provide a use case description."
            )]
    
        recommendations = search_aws_services(use_case)
    
        if not recommendations:
            return [TextContent(
                type="text",
                text=f"No specific AWS services found matching '{use_case}'. Try describing your use case differently (e.g., 'serverless compute', 'object storage', 'relational database')."
            )]
    
        # Format the response
        response_lines = [f"## AWS Service Recommendations for: '{use_case}'\n"]
    
        for category, services in recommendations.items():
            response_lines.append(f"\n### {category.upper().replace('_', ' ')}")
            for service_name, description in services.items():
                response_lines.append(f"\n**{service_name}**")
                response_lines.append(f"- {description}")
    
        return [TextContent(
            type="text",
            text="\n".join(response_lines)
        )]
  • Input schema for 'suggest_aws_service' tool, defining required 'use_case' string parameter.
    inputSchema={
        "type": "object",
        "properties": {
            "use_case": {
                "type": "string",
                "description": "Description of your use case, requirements, or what you want to build (e.g., 'serverless API', 'store images', 'real-time data processing')"
            }
        },
        "required": ["use_case"]
    }
  • Registration of 'suggest_aws_service' tool in the list_tools() function, including name, description, and schema.
        name="suggest_aws_service",
        description="Get AWS service recommendations based on your use case. Provide a description of what you want to build or accomplish, and get relevant AWS service suggestions.",
        inputSchema={
            "type": "object",
            "properties": {
                "use_case": {
                    "type": "string",
                    "description": "Description of your use case, requirements, or what you want to build (e.g., 'serverless API', 'store images', 'real-time data processing')"
                }
            },
            "required": ["use_case"]
        }
    ),
  • Helper function that matches use case keywords against AWS service descriptions to find recommendations.
    def search_aws_services(use_case: str) -> dict[str, Any]:
        """
        Search for AWS services matching a use case description.
    
        Args:
            use_case: Description of the use case or requirements
    
        Returns:
            Dictionary with recommended services and explanations
        """
        use_case_lower = use_case.lower()
        recommendations = {}
    
        # Search through all services
        for category, services in AWS_SERVICES.items():
            matching_services = {}
            for service_name, description in services.items():
                # Check if use case keywords match service description
                if any(word in description.lower() for word in use_case_lower.split()):
                    matching_services[service_name] = description
    
            if matching_services:
                recommendations[category] = matching_services
    
        return recommendations
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. It describes the basic function but lacks details on behavioral traits such as response format, whether it's a read-only operation, potential rate limits, or error handling. The description is minimal and doesn't compensate for the absence of annotations.

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

Conciseness5/5

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

The description is concise and front-loaded, consisting of two efficient sentences that directly state the tool's purpose and usage. There is no wasted text, and it effectively communicates the core information in a structured manner.

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's low complexity (single parameter, no output schema, no annotations), the description is adequate but has gaps. It covers the basic purpose and parameter, but without annotations or output schema, it lacks details on behavioral aspects and return values, making it minimally viable but incomplete for full transparency.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents the single parameter 'use_case' with a clear description. The description adds minimal value by restating the parameter's purpose ('Provide a description...') without providing additional syntax or format details beyond what the schema provides.

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: 'Get AWS service recommendations based on your use case.' It specifies the verb ('Get recommendations') and resource ('AWS service'), though it doesn't explicitly differentiate from the sibling tool 'list_aws_categories' beyond the recommendation focus. The description is specific but lacks sibling comparison.

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

Usage Guidelines3/5

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

The description implies when to use this tool ('based on your use case') and provides an example of what to provide, but it doesn't explicitly state when not to use it or mention alternatives like the sibling tool. Usage is contextually implied rather than explicitly guided.

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/antonioschaffert/my-dev-mcp'

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