AWS MCP Server
# 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
## Quick Start
### Prerequisites
- Python 3.12+
- AWS credentials configured (`~/.aws/credentials`)
- Claude Desktop installed
### Installation
1. **Install the package:**
```bash
pip install aws-mcp-server
```
2. **Configure Claude Desktop:**
Add to your `claude_desktop_config.json`:
```json
{
"mcpServers": {
"aws-mcp-server": {
"command": "aws-mcp-server"
}
}
}
```
3. **Configure AWS credentials:**
```bash
aws configure
# OR manually edit ~/.aws/credentials:
```
```ini
[default]
aws_access_key_id = YOUR_ACCESS_KEY
aws_secret_access_key = YOUR_SECRET_KEY
region = us-east-1
```
## Development
### Local Development Setup
```bash
# Clone and install
git clone <repository-url>
cd aws-mcp-server
uv sync
# Run locally
uvx .
```
### Configuration Options
Set environment variables for customization:
```bash
export AWS_MCP_PORT=8888
export AWS_MCP_DEBUG=true
export ENABLE_VECTOR_STORE=true
```
## Documentation
- [Deployment Guide](docs/DEPLOYMENT.md) - Production deployment with AWS App Runner
- [Vector Store Guide](docs/VECTOR_STORE.md) - Document ingestion and search setup
- [Workflow Guide](docs/WORKFLOW.md) - Development workflows and patterns
## License
MIT License - see LICENSE file for details.
TDQS
Scored across 10 tools
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.
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.
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.
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.