Provides tools for creating and managing AWS resources using boto3.
AWS MCP server has complete input schemas for all 9 tools with proper JSON Schema structure (types, descriptions, required fields). Tool names follow verb_noun convention (create_*, list_*, describe_*, delete_*). However, descriptions are minimal (10-40 chars) and lack context about when to use each tool, prerequisites, or what the tool returns. Parameter descriptions are present but generic. No output schemas documented. Error handling is absent from visible code. Security concerns: master_password exposed as parameter in create_rds_instance. No pagination support for list_resources despite potential for large result sets.
Create an EC2 instance
Create an RDS database instance
Create an S3 bucket
Create a security group
Create a subnet in a VPC
Create a VPC
Delete an AWS resource (use with caution!)
Credentials exposed as parameters: create_rds_instance accepts master_password as a required parameter. Passwords must never appear in tool parameters, use server-side secret injection via environment variables or vault. Agent traces log all parameters, leaking secrets into logs and prompt history.
Minimal tool descriptions (10-40 chars) lack context. Descriptions should explain WHAT the tool does, WHEN to use it, and any prerequisites. Current descriptions like 'Create an EC2 instance' and 'Create a VPC' do not guide LLM selection or explain dependencies (e.g., 'Create a VPC first, then create subnets within it').
No output schemas documented. LLMs cannot plan downstream calls or extract required data without knowing what fields are returned. Each tool should document its response structure (e.g., create_ec2_instance returns instance_id, public_ip, state).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
Get detailed information about a specific AWS resource
List AWS resources of a specific type
No pagination support for list_resources. Tool accepts region and resource_type but lacks limit, offset, or page parameters. AWS resources can number in thousands, returning all results will exhaust context windows. Implement pagination with limit (default 20-50) and next_cursor.
No error handling or recovery guidance visible in code. Destructive operations (delete_resource) lack confirmation or dry-run support. Error responses should categorize failures as retryable, user-fixable, or fatal, and guide the LLM on next steps.