Skip to main content
Glama

AWS MCP Server

A Model Context Protocol (MCP) server that provides tools to interact with AWS services through Claude Desktop.

Features

  • S3: List buckets, list objects

  • EC2: Describe instances, security groups, VPCs

  • RDS: Describe database instances

  • Cost Explorer: Get cost and usage reports

  • CloudWatch: Retrieve metric statistics

  • Generic AWS SDK: Access any AWS operation via aws_sdk_wrapper

  • Vector Store: Optional document ingestion and search capabilities

Related MCP server: Cloud FinOps Analyst MCP Server

Quick Start

Prerequisites

  • Python 3.12+

  • AWS credentials configured (~/.aws/credentials)

  • Claude Desktop installed

Installation

  1. Install the package:

    pip install aws-mcp-server
  2. Configure Claude Desktop: Add to your claude_desktop_config.json:

    {
        "mcpServers": {
            "aws-mcp-server": {
                "command": "aws-mcp-server"
            }
        }
    }
  3. Configure AWS credentials:

    aws configure
    # OR manually edit ~/.aws/credentials:
    [default]
    aws_access_key_id = YOUR_ACCESS_KEY
    aws_secret_access_key = YOUR_SECRET_KEY
    region = us-east-1

Development

Local Development Setup

# Clone and install
git clone <repository-url>
cd aws-mcp-server
uv sync

# Run locally
uvx .

Configuration Options

Set environment variables for customization:

export AWS_MCP_PORT=8888
export AWS_MCP_DEBUG=true
export ENABLE_VECTOR_STORE=true

Documentation

License

MIT License - see LICENSE file for details.

Available Tools

10 tools
aws_sdk_wrapperA
A generic AWS SDK wrapper to call any AWS service and operation.

Args:
    service_name (str): The name of the AWS service to call (e.g. 's3', 'ec2', 'rds', etc.).
    operation_name (str): The name of the operation to call (e.g. 'list_buckets', 'describe_instances', etc.).
    region_name (str): The AWS region to use.
    profile_name (str): The name of the AWS profile to use.
    operation_kwargs (dict): The arguments to pass to the operation.
Returns:
    Any: The response from the AWS service.
Example:
    aws_sdk_wrapper('ce', 'get_cost_and_usage_with_resources', region_name='us-east-1', profile_name='my_profile', operation_kwargs={'TimePeriod': {'Start': '2023-01-01', 'End': '2023-01-31'}, 'Granularity': 'MONTHLY', 'GroupBy': [{'Type': 'DIMENSION', 'Key': 'SERVICE'}], 'Metrics': ['BlendedCost']})
ParametersJSON Schema
NameRequiredDescriptionDefault
service_nameYes
operation_nameYes
region_nameYes
profile_nameYes
operation_kwargsYes

TDQS

A4.2/5.0
Behavior3/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 discloses that the tool calls AWS services and returns responses, but lacks details on authentication requirements (beyond profile_name), error handling, rate limits, or side effects. The example adds some context but doesn't fully compensate for the missing behavioral traits.

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 well-structured with clear sections (Args, Returns, Example), front-loaded purpose, and no redundant sentences. However, it could be more concise by integrating the example more tightly or trimming minor details, but overall it's efficient and easy to parse.

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 high complexity (5 parameters, no output schema, no annotations), the description is incomplete. It explains parameters and provides an example, but lacks details on authentication, error handling, or response formatting. For a generic wrapper with many sibling tools, more guidance on when to use it versus specific tools would enhance completeness.

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?

Schema description coverage is 0%, so the description must compensate. It adds significant meaning by explaining each parameter's purpose (e.g., service_name as 'The name of the AWS service to call'), providing examples (e.g., 's3', 'ec2'), and detailing operation_kwargs as 'The arguments to pass to the operation.' This goes beyond the schema's basic titles, though it doesn't cover all possible nuances.

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

Purpose5/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 as 'A generic AWS SDK wrapper to call any AWS service and operation,' which is specific (verb: 'call,' resource: 'any AWS service and operation') and distinguishes it from sibling tools that are specific to individual services like 'ce-get_cost_and_usage' or 's3-list_buckets.'

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

Usage Guidelines5/5

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

The description explicitly provides usage guidance by naming the tool as a 'generic' wrapper for 'any AWS service and operation,' implying it should be used when a specific sibling tool is not available. The example further illustrates this with a call to 'ce' service, which has sibling tools, suggesting alternatives exist for common operations.

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

ce-get_cost_and_usageA
Retrieve comprehensive AWS cost and usage data with advanced filtering, grouping, and time-based analysis.

This tool provides detailed cost analysis across AWS services, accounts, and custom dimensions.
Essential for cost optimization, budgeting, chargeback reporting, and financial governance.
Supports multiple granularities, cost metrics, and complex filtering for precise analysis.

**Required Parameters:**
- profile_name (str): AWS profile name from ~/.aws/credentials
- region (str): AWS region (e.g., 'us-east-1') - Cost Explorer is global but requires region
- start (str): Start date in YYYY-MM-DD format (e.g., '2024-01-01')
- end (str): End date in YYYY-MM-DD format (e.g., '2024-01-31')
  * Maximum 12 months range for daily data
  * Maximum 12 months range for monthly data
  * Maximum 1 week range for hourly data

**Optional Parameters:**
- granularity (str): Time granularity for cost breakdown. Default: 'MONTHLY'
  * 'DAILY': Day-by-day cost breakdown (max 12 months)
  * 'MONTHLY': Month-by-month cost breakdown (max 12 months)
  * 'HOURLY': Hour-by-hour cost breakdown (max 1 week)

- group_by (List[Dict[str, str]]): Grouping dimensions for cost analysis
  **Service Grouping:**
  [{'Type': 'DIMENSION', 'Key': 'SERVICE'}] - Group by AWS service

  **Account Grouping:**
  [{'Type': 'DIMENSION', 'Key': 'LINKED_ACCOUNT'}] - Group by AWS account

  **Geographic Grouping:**
  [{'Type': 'DIMENSION', 'Key': 'REGION'}] - Group by AWS region
  [{'Type': 'DIMENSION', 'Key': 'AVAILABILITY_ZONE'}] - Group by AZ

  **Resource Grouping:**
  [{'Type': 'DIMENSION', 'Key': 'INSTANCE_TYPE'}] - Group by EC2 instance type
  [{'Type': 'DIMENSION', 'Key': 'USAGE_TYPE'}] - Group by usage type
  [{'Type': 'DIMENSION', 'Key': 'OPERATION'}] - Group by operation

  **Tag-based Grouping:**
  [{'Type': 'TAG', 'Key': 'Environment'}] - Group by Environment tag
  [{'Type': 'TAG', 'Key': 'Project'}] - Group by Project tag
  [{'Type': 'TAG', 'Key': 'Owner'}] - Group by Owner tag

  **Multiple Grouping:**
  [{'Type': 'DIMENSION', 'Key': 'SERVICE'}, {'Type': 'TAG', 'Key': 'Environment'}]

- metrics (List[str]): Cost metrics to retrieve. Default: ['BlendedCost']
  * 'BlendedCost': Cost after applying Reserved Instance and Savings Plans discounts
  * 'UnblendedCost': On-demand cost without discounts
  * 'NetBlendedCost': BlendedCost minus credits and refunds
  * 'NetUnblendedCost': UnblendedCost minus credits and refunds
  * 'UsageQuantity': Usage amount (hours, GB, requests, etc.)
  * 'NormalizedUsageAmount': Usage normalized to equivalent units

- filter_expression (Dict[str, Any]): Advanced filtering for targeted analysis
  **Service Filters:**
  {'Dimensions': {'Key': 'SERVICE', 'Values': ['Amazon Elastic Compute Cloud - Compute']}}

  **Account Filters:**
  {'Dimensions': {'Key': 'LINKED_ACCOUNT', 'Values': ['123456789012']}}

  **Region Filters:**
  {'Dimensions': {'Key': 'REGION', 'Values': ['us-east-1', 'us-west-2']}}

  **Tag Filters:**
  {'Tags': {'Key': 'Environment', 'Values': ['production', 'staging']}}

  **Complex Filters (AND/OR/NOT):**
  {'And': [{'Dimensions': {'Key': 'SERVICE', 'Values': ['EC2']}}, {'Tags': {'Key': 'Environment', 'Values': ['production']}}]}

- next_page_token (str): Pagination token from previous response
  * Use NextPageToken from previous call for large datasets

**Common Use Cases:**
1. **Monthly service breakdown:** granularity='MONTHLY', group_by=[{'Type': 'DIMENSION', 'Key': 'SERVICE'}]
2. **Daily cost trends:** granularity='DAILY', metrics=['BlendedCost']
3. **Environment cost analysis:** group_by=[{'Type': 'TAG', 'Key': 'Environment'}]
4. **EC2 cost optimization:** filter_expression={'Dimensions': {'Key': 'SERVICE', 'Values': ['Amazon Elastic Compute Cloud - Compute']}}
5. **Multi-account analysis:** group_by=[{'Type': 'DIMENSION', 'Key': 'LINKED_ACCOUNT'}]
6. **Regional cost comparison:** group_by=[{'Type': 'DIMENSION', 'Key': 'REGION'}]

**Response includes:** Time periods, cost amounts by specified metrics, grouping dimensions,
and metadata for comprehensive cost analysis and reporting.

**Best Practices:**
- Use monthly granularity for trend analysis
- Apply service filters to focus on specific cost areas
- Combine dimension and tag grouping for detailed insights
- Use pagination for large datasets
- Consider NetBlendedCost for accurate cost reporting
ParametersJSON Schema
NameRequiredDescriptionDefault
profile_nameYes
regionYes
startYes
endYes
granularityNoMONTHLY
group_byNo
metricsNo
filter_expressionNo
next_page_tokenNo

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden and does well by disclosing behavioral traits: it explains time range limitations (max 12 months for daily/monthly, 1 week for hourly), mentions pagination behavior via next_page_token, and describes response content. However, it doesn't cover authentication requirements beyond profile_name or potential rate limits.

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

Conciseness3/5

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

The description is comprehensive but lengthy with multiple sections. While well-structured with clear headings, it could be more front-loaded; the core purpose appears early, but detailed parameter explanations dominate. Some redundancy exists (e.g., repeating grouping examples).

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

Completeness4/5

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

For a complex tool with 9 parameters, 0% schema coverage, and no output schema, the description is largely complete: it covers purpose, parameters, usage examples, and response content. However, it lacks explicit error handling information and doesn't fully explain the output structure beyond listing included data types.

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

Parameters5/5

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

Given 0% schema description coverage, the description fully compensates by providing detailed parameter semantics: it explains all 9 parameters with examples, valid values, defaults, and constraints. It adds substantial meaning beyond the bare schema, including granularity options, grouping dimensions, filter expressions, and pagination usage.

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

Purpose5/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 as retrieving AWS cost and usage data with advanced filtering, grouping, and time-based analysis. It specifies the resource (AWS cost and usage data) and distinguishes from siblings like 'ce-get_cost_and_usage_with_resources' by focusing on comprehensive data analysis rather than resource-level details.

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

Usage Guidelines5/5

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

The description provides explicit usage guidance through 'Common Use Cases' (e.g., monthly service breakdown, daily cost trends) and 'Best Practices' sections. It distinguishes when to use specific parameter combinations and mentions pagination for large datasets, though it doesn't explicitly contrast with sibling tools beyond the purpose differentiation.

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

ce-get_cost_and_usage_with_resourcesA
Retrieve detailed AWS cost and usage data with individual resource-level granularity and identification.

This tool provides the most granular cost analysis available, showing costs for individual AWS resources
such as specific EC2 instances, RDS databases, and S3 buckets. Essential for detailed cost allocation,
rightsizing analysis, and identifying cost optimization opportunities at the resource level.

**Required Parameters:**
- profile_name (str): AWS profile name from ~/.aws/credentials
- region (str): AWS region (e.g., 'us-east-1') - Cost Explorer is global but requires region
- start (str): Start date in YYYY-MM-DD format (e.g., '2024-01-01')
- end (str): End date in YYYY-MM-DD format (e.g., '2024-01-31')
  * **Note:** Maximum 14 days range for resource-level data
  * Hourly granularity not supported for resource-level analysis

**Optional Parameters:**
- granularity (str): Time granularity for cost breakdown. Default: 'MONTHLY'
  * 'DAILY': Day-by-day resource cost breakdown (max 14 days)
  * 'MONTHLY': Month-by-month resource cost breakdown (max 14 days)
  * **Note:** HOURLY not supported for resource-level data

- group_by (List[Dict[str, str]]): Grouping dimensions for resource analysis
  **Resource Grouping:**
  [{'Type': 'DIMENSION', 'Key': 'RESOURCE_ID'}] - Group by individual resources

  **Service + Resource:**
  [{'Type': 'DIMENSION', 'Key': 'SERVICE'}, {'Type': 'DIMENSION', 'Key': 'RESOURCE_ID'}]

  **Tag-based Resource Analysis:**
  [{'Type': 'TAG', 'Key': 'Name'}, {'Type': 'DIMENSION', 'Key': 'RESOURCE_ID'}]
  [{'Type': 'TAG', 'Key': 'Environment'}, {'Type': 'DIMENSION', 'Key': 'RESOURCE_ID'}]

- metrics (List[str]): Cost metrics to retrieve. Default: ['BlendedCost']
  * 'BlendedCost': Cost after applying Reserved Instance and Savings Plans discounts
  * 'UnblendedCost': On-demand cost without discounts
  * 'NetBlendedCost': BlendedCost minus credits and refunds
  * 'NetUnblendedCost': UnblendedCost minus credits and refunds
  * 'UsageQuantity': Resource usage amount (hours, GB, requests, etc.)
  * 'NormalizedUsageAmount': Usage normalized to equivalent units

- filter_expression (Dict[str, Any]): Advanced filtering for targeted resource analysis
  **Service Filters:**
  {'Dimensions': {'Key': 'SERVICE', 'Values': ['Amazon Elastic Compute Cloud - Compute']}}

  **Resource Type Filters:**
  {'Dimensions': {'Key': 'INSTANCE_TYPE', 'Values': ['t3.micro', 'm5.large']}}

  **Tag-based Resource Filters:**
  {'Tags': {'Key': 'Environment', 'Values': ['production']}}
  {'Tags': {'Key': 'Owner', 'Values': ['team-a', 'team-b']}}

  **Complex Resource Filters:**
  {'And': [{'Dimensions': {'Key': 'SERVICE', 'Values': ['EC2']}}, {'Tags': {'Key': 'Environment', 'Values': ['production']}}]}

- next_page_token (str): Pagination token from previous response
  * Essential for resource-level data due to large result sets

**Common Use Cases:**
1. **EC2 instance cost analysis:**
   filter_expression={'Dimensions': {'Key': 'SERVICE', 'Values': ['Amazon Elastic Compute Cloud - Compute']}}
   group_by=[{'Type': 'DIMENSION', 'Key': 'RESOURCE_ID'}]

2. **RDS database cost breakdown:**
   filter_expression={'Dimensions': {'Key': 'SERVICE', 'Values': ['Amazon Relational Database Service']}}
   group_by=[{'Type': 'DIMENSION', 'Key': 'RESOURCE_ID'}]

3. **S3 bucket cost analysis:**
   filter_expression={'Dimensions': {'Key': 'SERVICE', 'Values': ['Amazon Simple Storage Service']}}
   group_by=[{'Type': 'DIMENSION', 'Key': 'RESOURCE_ID'}]

4. **Team-based resource costs:**
   filter_expression={'Tags': {'Key': 'Team', 'Values': ['backend', 'frontend']}}
   group_by=[{'Type': 'TAG', 'Key': 'Team'}, {'Type': 'DIMENSION', 'Key': 'RESOURCE_ID'}]

5. **Environment resource breakdown:**
   filter_expression={'Tags': {'Key': 'Environment', 'Values': ['production']}}
   group_by=[{'Type': 'DIMENSION', 'Key': 'RESOURCE_ID'}]

**Response includes:** Time periods, individual resource identifiers, cost amounts,
resource metadata, and grouping dimensions for granular cost analysis.

**Important Limitations:**
- Maximum 14-day date range (AWS limitation for resource-level data)
- Large result sets require pagination
- Not all services provide resource-level cost data
- Higher API costs compared to standard cost analysis

**Best Practices:**
- Use specific service filters to reduce data volume
- Implement pagination for comprehensive analysis
- Focus on high-cost services for optimization
- Combine with tagging strategies for better insights
- Use for detailed cost allocation and chargeback reporting
ParametersJSON Schema
NameRequiredDescriptionDefault
profile_nameYes
regionYes
startYes
endYes
granularityNoMONTHLY
group_byNo
metricsNo
filter_expressionNo
next_page_tokenNo

TDQS

A4.9/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure and does so comprehensively. It explains critical behavioral traits: the 14-day maximum date range, pagination requirements ('Large result sets require pagination'), API cost implications ('Higher API costs compared to standard cost analysis'), and service limitations ('Not all services provide resource-level cost data'). It also describes the response format and provides best practices.

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 well-structured with clear sections (purpose, required/optional parameters, use cases, limitations, best practices) and uses bullet points effectively. However, at approximately 800 words, it is quite lengthy. While most content is valuable, some repetition (e.g., restating the 14-day limit) could be trimmed for better conciseness.

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

Completeness5/5

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

Given the tool's complexity (9 parameters, no annotations, no output schema), the description is exceptionally complete. It covers purpose, usage guidelines, detailed parameter semantics, behavioral constraints, common use cases with examples, response content, limitations, and best practices. This provides all necessary context for an AI agent to understand and correctly invoke this tool.

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

Parameters5/5

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

With 0% schema description coverage for 9 parameters, the description fully compensates by providing extensive parameter semantics. Each parameter is documented with purpose, format, constraints, and examples. For complex parameters like 'group_by' and 'filter_expression', it provides multiple concrete examples with syntax. The description adds significant value beyond what the bare schema provides.

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

Purpose5/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: 'Retrieve detailed AWS cost and usage data with individual resource-level granularity and identification.' It specifies the verb ('retrieve'), resource ('AWS cost and usage data'), and key differentiator ('resource-level granularity'). It distinguishes from sibling tools like 'ce-get_cost_and_usage' by emphasizing resource-level detail.

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

Usage Guidelines5/5

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

The description provides explicit guidance on when to use this tool versus alternatives. It states this is 'the most granular cost analysis available' and is 'essential for detailed cost allocation, rightsizing analysis, and identifying cost optimization opportunities at the resource level.' The 'Common Use Cases' section gives concrete examples, and the 'Important Limitations' section clarifies constraints like the 14-day maximum range.

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

cloudwatch-get_metric_statisticsA
Retrieve CloudWatch metric statistics with full configurability for monitoring AWS resources.

This tool fetches time-series data points for CloudWatch metrics, supporting custom statistics,
dimensions, and time ranges. Essential for monitoring EC2 instances, RDS databases, Lambda functions,
and other AWS services.

**Required Parameters:**
- profile_name (str): AWS profile name from ~/.aws/credentials
- region (str): AWS region (e.g., 'us-east-1', 'eu-west-1')
- metric_name (str): CloudWatch metric name (e.g., 'CPUUtilization', 'NetworkIn', 'DatabaseConnections')
- namespace (str): AWS service namespace (e.g., 'AWS/EC2', 'AWS/RDS', 'AWS/Lambda')
- start_time (str): Start time in ISO 8601 format (e.g., '2024-01-01T00:00:00Z')
- end_time (str): End time in ISO 8601 format (e.g., '2024-01-02T00:00:00Z')
- period (int): Data point interval in seconds (60, 300, 3600, etc. - must align with metric resolution)

**Optional Parameters:**
- statistics (List[str]): Standard statistics to calculate. Default: ['Average']
  Options: 'Average', 'Sum', 'SampleCount', 'Maximum', 'Minimum'
  Example: ['Average', 'Maximum'] for CPU utilization trends

- extended_statistics (List[str]): Percentile statistics for detailed analysis
  Format: 'p{percentile}' (e.g., 'p99', 'p95', 'p90', 'p50')
  Example: ['p99', 'p95'] for latency analysis

- dimensions (List[Dict[str, str]]): Filter metrics by specific resource attributes
  Common dimension examples:
  * EC2: [{'Name': 'InstanceId', 'Value': 'i-1234567890abcdef0'}]
  * RDS: [{'Name': 'DBInstanceIdentifier', 'Value': 'mydb-instance'}]
  * Lambda: [{'Name': 'FunctionName', 'Value': 'my-function'}]
  * ELB: [{'Name': 'LoadBalancerName', 'Value': 'my-load-balancer'}]

- unit (str): Expected unit of measurement for validation
  Common units: 'Seconds', 'Percent', 'Count', 'Bytes', 'Bits/Second'

**Common Use Cases:**
1. Monitor EC2 CPU: namespace='AWS/EC2', metric_name='CPUUtilization', statistics=['Average', 'Maximum']
2. Track RDS connections: namespace='AWS/RDS', metric_name='DatabaseConnections', statistics=['Average']
3. Lambda duration analysis: namespace='AWS/Lambda', metric_name='Duration', extended_statistics=['p99', 'p95']
4. ELB response times: namespace='AWS/ELB', metric_name='Latency', extended_statistics=['p95', 'p99']

**Time Range Guidelines:**
- For high-resolution metrics: Use 60-second periods, max 3 hours of data
- For standard metrics: Use 300-second periods, up to 15 days of data
- For long-term analysis: Use 3600-second periods, up to 455 days of data

Returns detailed metric data points with timestamps, values, and units for analysis and alerting.
ParametersJSON Schema
NameRequiredDescriptionDefault
profile_nameYes
regionYes
metric_nameYes
namespaceYes
start_timeYes
end_timeYes
periodYes
statisticsNo
extended_statisticsNo
dimensionsNo
unitNo

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes what the tool does (fetches time-series data), includes practical constraints ('Time Range Guidelines' with period/data duration relationships), and specifies the return format ('detailed metric data points with timestamps, values, and units'). It doesn't mention authentication requirements beyond profile_name, rate limits, or error handling, but covers core behavior well.

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 well-structured with clear sections (purpose, required/optional parameters, use cases, guidelines) and uses bullet points effectively. While comprehensive, it's appropriately sized for an 11-parameter tool with no schema descriptions. Some sections like the detailed dimension examples could be slightly condensed, but overall it's front-loaded with key information and avoids redundancy.

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

Completeness4/5

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

For a complex tool with 11 parameters, 0% schema coverage, no annotations, and no output schema, the description provides excellent coverage of inputs, behavior, and usage context. It explains what the tool returns and includes practical constraints. The main gap is the lack of explicit error handling or rate limit information, but given the comprehensive parameter documentation and behavioral context, it's nearly complete.

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

Parameters5/5

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

Given 0% schema description coverage, the description fully compensates by providing comprehensive parameter documentation. It clearly distinguishes required vs. optional parameters, explains each parameter's purpose with examples and formatting guidelines (e.g., ISO 8601 for timestamps, p99 format for extended_statistics), and includes practical examples for dimensions across different AWS services. This adds substantial value beyond the bare schema.

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

Purpose5/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 specific verbs ('retrieve', 'fetches') and resources ('CloudWatch metric statistics', 'time-series data points'), and distinguishes it from sibling tools by focusing on CloudWatch metrics rather than EC2, RDS, or S3 operations. The opening sentence provides a concise summary of functionality.

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

Usage Guidelines4/5

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

The description provides clear context for when to use this tool ('essential for monitoring EC2 instances, RDS databases, Lambda functions, and other AWS services') and includes 'Common Use Cases' with specific examples. However, it doesn't explicitly state when NOT to use it or name alternative tools for similar monitoring tasks, though the sibling list suggests other AWS services.

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

ec2-describe_instancesA
Retrieve detailed information about EC2 instances with advanced filtering and pagination.

This tool provides comprehensive instance data including state, type, networking, tags, and configuration.
Essential for inventory management, monitoring, and troubleshooting EC2 infrastructure.

**Required Parameters:**
- profile_name (str): AWS profile name from ~/.aws/credentials
- region (str): AWS region (e.g., 'us-east-1', 'eu-west-1')

**Optional Parameters:**
- instance_ids (List[str]): Specific instance IDs to retrieve
  Example: ['i-1234567890abcdef0', 'i-0987654321fedcba0']

- filters (Dict[str, Any]): Advanced filtering options
  **Instance State Filters:**
  - 'instance-state-name': ['pending', 'running', 'shutting-down', 'terminated', 'stopping', 'stopped']

  **Instance Type Filters:**
  - 'instance-type': ['t2.micro', 't3.small', 'm5.large', 'c5.xlarge']

  **Network Filters:**
  - 'vpc-id': ['vpc-12345678'] - Filter by VPC
  - 'subnet-id': ['subnet-12345678'] - Filter by subnet
  - 'private-ip-address': ['10.0.1.100'] - Filter by private IP
  - 'public-ip-address': ['54.123.45.67'] - Filter by public IP

  **Tag Filters:**
  - 'tag:Name': ['web-server', 'database'] - Filter by Name tag
  - 'tag:Environment': ['production', 'staging'] - Filter by Environment tag
  - 'tag-key': ['Owner'] - Filter by tag key existence

  **Security and Compliance:**
  - 'security-group-id': ['sg-12345678'] - Filter by security group
  - 'key-name': ['my-key-pair'] - Filter by key pair
  - 'monitoring-state': ['enabled', 'disabled'] - Filter by detailed monitoring

  **Architecture Filters:**
  - 'architecture': ['i386', 'x86_64', 'arm64'] - Filter by architecture
  - 'root-device-type': ['ebs', 'instance-store'] - Filter by root device type
  - 'virtualization-type': ['hvm', 'paravirtual'] - Filter by virtualization

- max_results (int): Limit results (1-1000). Default: no limit
- next_token (str): Pagination token from previous request

**Common Use Cases:**
1. List all running instances: filters={'instance-state-name': ['running']}
2. Find instances by tag: filters={'tag:Environment': ['production']}
3. Get instances in specific VPC: filters={'vpc-id': ['vpc-12345678']}
4. Find instances by type: filters={'instance-type': ['t3.micro', 't3.small']}
5. Security audit: filters={'security-group-id': ['sg-12345678']}

**Response includes:** Instance ID, state, type, AMI ID, key name, launch time,
networking details, security groups, tags, monitoring state, and more.

Use pagination with max_results and next_token for large environments.
ParametersJSON Schema
NameRequiredDescriptionDefault
regionYes
profile_nameNodefault
instance_idsNo
filtersNo
max_resultsNo
next_tokenNo

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It effectively describes key behaviors: pagination behavior ('Use pagination with max_results and next_token for large environments'), filtering capabilities (extensive filter examples), and response content ('Response includes: Instance ID, state, type, AMI ID, key name...'). It doesn't mention rate limits, authentication requirements beyond parameters, or error handling, but provides substantial operational context.

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

Conciseness3/5

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

The description is well-structured with clear sections (purpose, parameters, use cases, response), but is quite lengthy with extensive filter examples that could be condensed. While all content is relevant, some redundancy exists (e.g., filter categories could be summarized more concisely). The core purpose is front-loaded appropriately, but overall length exceeds what's strictly necessary.

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

Completeness4/5

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

Given the tool's complexity (6 parameters, no annotations, no output schema), the description provides substantial context: clear purpose, detailed parameter semantics, usage examples, and response content. It effectively compensates for the lack of structured metadata. The main gap is the absence of explicit error handling information or authentication prerequisites beyond the profile_name parameter.

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

Parameters5/5

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

With 0% schema description coverage, the description fully compensates by providing comprehensive parameter documentation. It clearly distinguishes required vs. optional parameters, provides examples (e.g., region format 'us-east-1'), enumerates filter options with detailed categories and values, explains max_results range (1-1000) and default behavior, and documents next_token purpose. This adds substantial meaning beyond the bare schema.

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

Purpose5/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: 'Retrieve detailed information about EC2 instances with advanced filtering and pagination.' It specifies the verb ('retrieve'), resource ('EC2 instances'), and key capabilities ('advanced filtering and pagination'), distinguishing it from siblings like ec2-describe_security_groups or ec2-describe_vpcs that focus on different AWS resources.

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

Usage Guidelines4/5

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

The description provides clear context for when to use this tool ('Essential for inventory management, monitoring, and troubleshooting EC2 infrastructure') and includes 'Common Use Cases' section with five specific examples. However, it doesn't explicitly state when NOT to use this tool or mention direct alternatives among sibling tools (e.g., when to use ec2-describe_security_groups instead).

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

ec2-describe_security_groupsA
Retrieve detailed security group information with comprehensive filtering for network security analysis.

This tool provides complete security group data including ingress/egress rules, associated resources,
and tags. Critical for security auditing, compliance checking, and network troubleshooting.

**Required Parameters:**
- profile_name (str): AWS profile name from ~/.aws/credentials
- region (str): AWS region (e.g., 'us-east-1', 'eu-west-1')

**Optional Parameters:**
- group_ids (List[str]): Specific security group IDs to retrieve
  Example: ['sg-12345678', 'sg-87654321']

- group_names (List[str]): Security group names (VPC security groups use IDs, not names)
  Example: ['web-server-sg', 'database-sg']

- filters (Dict[str, Any]): Advanced filtering options
  **Basic Filters:**
  - 'group-name': ['web-server-sg', 'database-sg'] - Filter by name
  - 'group-id': ['sg-12345678'] - Filter by ID
  - 'description': ['Web server security group'] - Filter by description

  **Network Filters:**
  - 'vpc-id': ['vpc-12345678'] - Filter by VPC (most common)
  - 'owner-id': ['123456789012'] - Filter by AWS account ID

  **Rule-based Filters:**
  - 'ip-protocol': ['tcp', 'udp', 'icmp'] - Filter by protocol
  - 'from-port': [22, 80, 443] - Filter by port range start
  - 'to-port': [22, 80, 443] - Filter by port range end
  - 'cidr': ['10.0.0.0/16', '0.0.0.0/0'] - Filter by CIDR block

  **Tag Filters:**
  - 'tag:Name': ['web-tier', 'db-tier'] - Filter by Name tag
  - 'tag:Environment': ['production', 'staging'] - Filter by Environment tag
  - 'tag-key': ['Owner'] - Filter by tag key existence

- max_results (int): Limit results (5-1000). Default: no limit
- next_token (str): Pagination token from previous request

**Common Use Cases:**
1. Audit VPC security groups: filters={'vpc-id': ['vpc-12345678']}
2. Find groups allowing SSH: filters={'from-port': [22], 'to-port': [22]}
3. Security compliance check: filters={'cidr': ['0.0.0.0/0']} (find public access)
4. Find groups by tag: filters={'tag:Environment': ['production']}
5. Owner-based filtering: filters={'owner-id': ['123456789012']}

**Response includes:** Group ID, name, description, VPC ID, owner ID, ingress/egress rules
(with ports, protocols, source/destination), tags, and associated resources.

Essential for security auditing and network access control management.
ParametersJSON Schema
NameRequiredDescriptionDefault
regionYes
profile_nameNodefault
group_idsNo
group_namesNo
filtersNo
max_resultsNo
next_tokenNo

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes what the tool does (retrieves security group data), what it returns (group ID, name, description, rules, tags, etc.), and includes pagination behavior via 'next_token'. However, it lacks details on error conditions, rate limits, or authentication requirements beyond profile/region parameters.

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

Conciseness3/5

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

The description is well-structured with clear sections (purpose, parameters, use cases), but is quite lengthy. While most content is valuable given the complex tool, some redundancy exists (e.g., repeating filtering examples). It could be more front-loaded with critical information before detailed parameter breakdowns.

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

Completeness4/5

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

For a complex tool with 7 parameters, 0% schema coverage, and no output schema, the description does an excellent job covering parameter semantics and use cases. It describes what the response includes. However, it lacks information about error handling, rate limits, or authentication requirements, which would be valuable for a security-focused AWS tool.

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

Parameters5/5

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

Given 0% schema description coverage, the description compensates fully by providing detailed parameter information. It clearly distinguishes required vs. optional parameters, gives examples for all parameters (e.g., region format, group_ids examples), and provides extensive documentation for the complex 'filters' parameter with multiple categories and examples. This adds significant value beyond the bare schema.

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

Purpose5/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: 'Retrieve detailed security group information with comprehensive filtering for network security analysis.' It specifies the verb ('retrieve'), resource ('security group information'), and scope ('detailed' with 'comprehensive filtering'), distinguishing it from siblings like ec2-describe_instances or ec2-describe_vpcs.

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

Usage Guidelines4/5

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

The description provides clear context for when to use the tool: 'Critical for security auditing, compliance checking, and network troubleshooting.' It includes 'Common Use Cases' with specific examples, but does not explicitly state when not to use it or name alternatives among sibling tools.

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

ec2-describe_vpcsA
Retrieve comprehensive VPC information with advanced filtering for network infrastructure analysis.

This tool provides complete VPC data including CIDR blocks, DNS settings, tenancy, and associated
resources. Essential for network planning, security auditing, and infrastructure management.

**Required Parameters:**
- profile_name (str): AWS profile name from ~/.aws/credentials
- region (str): AWS region (e.g., 'us-east-1', 'eu-west-1')

**Optional Parameters:**
- vpc_ids (List[str]): Specific VPC IDs to retrieve
  Example: ['vpc-12345678', 'vpc-87654321']

- filters (Dict[str, Any]): Advanced filtering options
  **State Filters:**
  - 'state': ['pending', 'available'] - Filter by VPC state

  **Network Configuration:**
  - 'cidr': ['10.0.0.0/16', '172.16.0.0/12'] - Filter by primary CIDR block
  - 'cidr-block-association.cidr-block': ['10.1.0.0/16'] - Filter by any CIDR block
  - 'cidr-block-association.state': ['associated', 'associating', 'disassociated']

  **DNS and Networking:**
  - 'dhcp-options-id': ['dopt-12345678'] - Filter by DHCP options set
  - 'dns-resolution': ['true', 'false'] - Filter by DNS resolution support
  - 'dns-hostnames': ['true', 'false'] - Filter by DNS hostnames support

  **Default VPC:**
  - 'is-default': ['true', 'false'] - Filter default vs custom VPCs

  **Tenancy:**
  - 'instance-tenancy': ['default', 'dedicated', 'host'] - Filter by instance tenancy

  **Ownership:**
  - 'owner-id': ['123456789012'] - Filter by AWS account ID

  **Tag Filters:**
  - 'tag:Name': ['production-vpc', 'staging-vpc'] - Filter by Name tag
  - 'tag:Environment': ['production', 'staging'] - Filter by Environment tag
  - 'tag-key': ['Owner'] - Filter by tag key existence

- max_results (int): Limit results (5-1000). Default: no limit
- next_token (str): Pagination token from previous request

**Common Use Cases:**
1. Find default VPC: filters={'is-default': ['true']}
2. List production VPCs: filters={'tag:Environment': ['production']}
3. Find VPCs with specific CIDR: filters={'cidr': ['10.0.0.0/16']}
4. Audit DNS settings: filters={'dns-resolution': ['true']}
5. Check tenancy: filters={'instance-tenancy': ['dedicated']}

**Response includes:** VPC ID, state, CIDR blocks, DNS resolution settings, DHCP options,
instance tenancy, default VPC flag, owner ID, tags, and associated CIDR block associations.

Critical for network architecture planning and security compliance auditing.
ParametersJSON Schema
NameRequiredDescriptionDefault
regionYes
profile_nameNodefault
vpc_idsNo
filtersNo
max_resultsNo
next_tokenNo

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes what the tool does (retrieves comprehensive VPC data), mentions pagination behavior (next_token parameter), and provides extensive examples of filtering capabilities. It doesn't mention rate limits, authentication requirements beyond parameters, or error conditions, but covers the core behavioral aspects well.

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

Conciseness3/5

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

The description is well-structured with clear sections, but it's quite lengthy with extensive filter documentation and use cases. While all content is valuable given the lack of schema descriptions, it could be more front-loaded with the most critical information. Some redundancy exists in the filter explanations.

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

Completeness4/5

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

For a 6-parameter tool with 0% schema description coverage and no output schema, the description does an excellent job covering parameter semantics and use cases. It describes what the response includes and provides practical examples. The main gap is the lack of explicit error handling or authentication context, but overall it's quite complete for the tool's complexity.

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

Parameters5/5

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

With 0% schema description coverage, the description fully compensates by providing detailed parameter documentation. It clearly distinguishes required vs optional parameters, provides examples for vpc_ids and filters, explains filter categories with specific key-value pairs, documents default values, and gives practical use cases. This adds substantial meaning beyond the bare schema.

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

Purpose5/5

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

The description clearly states the tool retrieves comprehensive VPC information with advanced filtering for network infrastructure analysis. It specifies the exact resource (VPCs) and operation (retrieve/describe), distinguishing it from sibling tools like ec2-describe_instances or ec2-describe_security_groups that work with different AWS resources.

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

Usage Guidelines4/5

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

The description provides clear context about when to use this tool (network planning, security auditing, infrastructure management) and includes specific common use cases with examples. However, it doesn't explicitly state when NOT to use it or mention alternatives among sibling tools, though the context is sufficiently clear for an AWS EC2 VPC-focused operation.

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

rds-describe_db_instancesA
Retrieve comprehensive RDS database instance information with advanced filtering and pagination.

This tool provides detailed information about RDS database instances including configuration,
status, performance settings, and security details. Essential for database monitoring,
compliance auditing, and operational management.

**Required Parameters:**
- profile_name (str): AWS profile name from ~/.aws/credentials
- region (str): AWS region (e.g., 'us-east-1', 'eu-west-1')

**Optional Parameters:**
- db_instance_identifier (str): Specific database instance identifier
  Example: 'production-mysql-db', 'staging-postgres-01'

- filters (Dict[str, Any]): Advanced filtering options
  **Engine Filters:**
  - 'engine': Database engine types
    * MySQL: ['mysql']
    * PostgreSQL: ['postgres']
    * Oracle: ['oracle-ee', 'oracle-se2', 'oracle-se1', 'oracle-se']
    * SQL Server: ['sqlserver-ex', 'sqlserver-web', 'sqlserver-se', 'sqlserver-ee']
    * MariaDB: ['mariadb']
    * Aurora: ['aurora-mysql', 'aurora-postgresql']

  **Version Filters:**
  - 'engine-version': ['8.0.35', '13.7', '19.0.0.0.ru-2023-01.rur-2023-01.r1']

  **Instance Class Filters:**
  - 'db-instance-class': ['db.t3.micro', 'db.r5.large', 'db.m5.xlarge']

  **Status Filters:**
  - 'db-instance-status': ['available', 'creating', 'deleting', 'modifying', 'rebooting', 'stopped']

  **Network Filters:**
  - 'vpc-id': ['vpc-12345678'] - Filter by VPC
  - 'subnet-group-name': ['default', 'custom-subnet-group']

  **Availability Filters:**
  - 'availability-zone': ['us-east-1a', 'us-east-1b']
  - 'multi-az': ['true', 'false'] - Multi-AZ deployment filter

  **Security Filters:**
  - 'db-security-group': ['sg-12345678'] - VPC security groups
  - 'db-parameter-group': ['default.mysql8.0', 'custom-params']

  **Backup and Maintenance:**
  - 'backup-retention-period': ['7', '14', '30'] - Backup retention days
  - 'maintenance-window': ['sun:05:00-sun:06:00'] - Maintenance window

  **Performance Insights:**
  - 'performance-insights-enabled': ['true', 'false']
  - 'monitoring-interval': ['0', '60', '300'] - Enhanced monitoring interval

- max_records (int): Maximum results per request (20-100)
  * Default: 100
  * Use smaller values for memory efficiency
  * Combine with pagination for large fleets

- marker (str): Pagination marker from previous response
  * Use 'Marker' value from previous call
  * Enables seamless pagination through large DB fleets

**Common Use Cases:**
1. **Production DB audit:** filters={'engine': ['mysql'], 'db-instance-status': ['available']}
2. **Multi-AZ check:** filters={'multi-az': ['true']}
3. **Security audit:** filters={'vpc-id': ['vpc-12345678']}
4. **Performance monitoring:** filters={'performance-insights-enabled': ['true']}
5. **Backup compliance:** filters={'backup-retention-period': ['7', '14', '30']}
6. **Engine version check:** filters={'engine': ['mysql'], 'engine-version': ['8.0.35']}

**Response includes:** DB instance identifier, status, engine details, instance class,
availability zone, VPC security groups, parameter groups, backup settings, performance
insights status, monitoring configuration, endpoint information, and more.

**Use Cases:**
- Database inventory and compliance reporting
- Performance monitoring and optimization
- Security auditing and configuration review
- Backup and disaster recovery planning
- Cost optimization and rightsizing analysis

Essential for comprehensive RDS fleet management and operational visibility.
ParametersJSON Schema
NameRequiredDescriptionDefault
profile_nameYes
regionYes
db_instance_identifierNo
filtersNo
max_recordsNo
markerNo

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes the tool's behavior: it's a read operation (implied by 'retrieve'), supports pagination (via 'marker' parameter), has filtering capabilities, and returns comprehensive instance data. It also mentions memory efficiency considerations for 'max_records'. While it doesn't cover rate limits or authentication details beyond profile/region parameters, it provides substantial behavioral context for a read operation.

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

Conciseness3/5

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

While well-structured with clear sections (purpose, parameters, use cases), the description is verbose with redundant sections ('Common Use Cases' and 'Use Cases' repeat similar information). Some sentences don't earn their place, such as the final 'Essential for comprehensive RDS fleet management and operational visibility' which restates earlier points. The front-loading is good, but overall length could be reduced without losing value.

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

Completeness4/5

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

For a 6-parameter tool with no annotations and no output schema, the description provides substantial context. It explains what the tool does, how to use parameters, and what information is returned ('Response includes: DB instance identifier, status, engine details...'). The main gap is the lack of output schema, but the description compensates by listing return data categories. Given the complexity, it's nearly complete but could benefit from explicit error handling or rate limit information.

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

Parameters5/5

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

Given 0% schema description coverage, the description compensates fully by providing detailed semantic information for all 6 parameters. It clearly distinguishes required vs. optional parameters, provides examples (e.g., region: 'us-east-1'), explains complex nested structures (the 'filters' dictionary with 12 sub-filters and their allowed values), and gives practical guidance on parameter usage (e.g., 'Use smaller values for memory efficiency' for max_records).

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

Purpose5/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: 'Retrieve comprehensive RDS database instance information with advanced filtering and pagination.' It specifies the verb ('retrieve'), resource ('RDS database instance information'), and distinguishes it from siblings by focusing on RDS instances rather than EC2, S3, or CloudWatch resources mentioned in the sibling list.

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

Usage Guidelines4/5

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

The description provides clear context for when to use this tool ('Essential for database monitoring, compliance auditing, and operational management') and includes six specific use cases with filter examples. However, it doesn't explicitly state when NOT to use it or name alternatives among sibling tools for related AWS operations.

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

s3-list_bucketsC

List all S3 buckets in the AWS account

ParametersJSON Schema
NameRequiredDescriptionDefault
profile_nameYes
regionYes

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states it's a list operation but doesn't mention authentication requirements, rate limits, pagination behavior, or what happens if credentials are invalid. For a cloud API tool, this leaves critical operational context unspecified.

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 a single, clear sentence with zero wasted words. It's appropriately sized for a simple list operation and front-loads the core functionality immediately.

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

Completeness2/5

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

For a cloud API tool with 2 required parameters, 0% schema coverage, no annotations, and no output schema, the description is insufficient. It doesn't explain authentication, error conditions, return format, or parameter usage - leaving the agent with significant gaps in understanding how to use this tool effectively.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate but provides no parameter information. It doesn't explain what 'profile_name' or 'region' mean, their format, or why both are required. This leaves two required parameters completely undocumented beyond their schema titles.

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 verb ('List') and resource ('all S3 buckets in the AWS account'), making the purpose immediately understandable. However, it doesn't distinguish this tool from its sibling 's3-list_objects_v2', which lists objects within a bucket rather than buckets themselves.

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?

No guidance is provided on when to use this tool versus alternatives. The description doesn't mention prerequisites like AWS credentials setup, nor does it differentiate from sibling tools like 's3-list_objects_v2' for listing bucket contents.

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

s3-list_objects_v2C

List objects in an S3 bucket with filtering and pagination

ParametersJSON Schema
NameRequiredDescriptionDefault
profile_nameYes
regionYes
bucket_nameYes
prefixNo
delimiterNo
max_keysNo
continuation_tokenNo
start_afterNo
fetch_ownerNo

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'filtering and pagination' which gives some context, but fails to describe important behavioral aspects like authentication requirements (profile_name parameter), rate limits, error conditions, or what the output looks like. For a tool with 9 parameters and no annotations, this is insufficient.

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 extremely concise - a single sentence that efficiently communicates the core functionality. Every word earns its place, and the structure is front-loaded with the main purpose followed by key capabilities.

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

Completeness2/5

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

For a tool with 9 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain the authentication model (profile_name), doesn't describe the return format, and provides minimal guidance on parameter usage. Given the complexity and lack of structured documentation, the description should do much more to help an agent understand how to use this tool effectively.

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

Parameters2/5

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

With 0% schema description coverage and 9 parameters, the description fails to compensate for the lack of parameter documentation. While 'filtering and pagination' hints at some parameters (prefix, delimiter, max_keys, continuation_token), it doesn't explain what any parameter actually does or how they interact. The description adds minimal value beyond what's already evident from parameter names.

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 verb ('List') and resource ('objects in an S3 bucket'), making the purpose immediately understandable. It also mentions key capabilities ('with filtering and pagination'), though it doesn't explicitly differentiate from sibling tools like 's3-list_buckets' beyond the obvious resource difference.

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. While 's3-list_buckets' is clearly for listing buckets rather than objects, there's no mention of other potential alternatives or specific scenarios where this tool is appropriate versus other S3 operations.

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

TDQS

B3.4/5.0
Disambiguation2/5

The aws_sdk_wrapper tool creates significant ambiguity as it can perform any AWS operation, overlapping with all other specialized tools. For example, ce-get_cost_and_usage and ce-get_cost_and_usage_with_resources have overlapping purposes with the wrapper, and agents may struggle to choose between them. While the specialized tools are distinct from each other, the generic wrapper undermines clear boundaries.

Naming Consistency3/5

Most tools follow a service_verb_noun pattern (e.g., ec2-describe_instances, s3-list_buckets), but aws_sdk_wrapper deviates with a generic name and underscores. The pattern is mixed, with some using hyphens and others underscores, but it remains readable. The inconsistency is moderate, not chaotic.

Tool Count4/5

With 10 tools, the count is reasonable for an AWS server, covering key services like EC2, S3, RDS, CloudWatch, and Cost Explorer. It's well-scoped, though it could be slightly expanded for broader AWS coverage. The number is appropriate, not too heavy or thin.

Completeness3/5

The server covers read operations well (describe, list, get) but lacks create, update, or delete tools for most services, creating notable gaps. For example, there are no tools to create EC2 instances or S3 buckets. The aws_sdk_wrapper can fill some gaps, but the specialized surface is incomplete for full lifecycle management.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    Enables Claude Desktop to interact with 57 AWS services using over 200 tools and local machine profiles. It supports multi-profile configurations and features a read-only safe mode by default to manage infrastructure like EC2, S3, and Lambda securely.
    100
    BSD 3-Clause
  • A
    license
    A
    quality
    B
    maintenance
    Enables analyzing AWS cloud costs through natural language queries, providing cost summaries, anomaly detection, idle resource identification, rightsizing recommendations, and tagging compliance via Claude.
    10
    41
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables Claude AI to automatically audit AWS cloud resource configurations, diagnose security vulnerabilities, and generate high-availability optimization reports.

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/Havoc24k/aws-sa-tools-mcp-server'

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