MCP server to control AWS resources directly from Claude Desktop or Claude Code
Project description
claude-aws-mcp
An MCP server that lets you control AWS resources directly from Claude Desktop or Claude Code using natural language.
Installation
pip install claude-aws-mcp
Setup
Step 1. Create a .env file in your working directory:
AWS_ACCESS_KEY_ID=your_access_key
AWS_SECRET_ACCESS_KEY=your_secret_key
AWS_DEFAULT_REGION=ap-northeast-2
Step 2. Run the MCP server:
aws-mcp
Claude Desktop Integration
Config file location:
| OS | Path |
|---|---|
| Windows | %APPDATA%\Claude\claude_desktop_config.json |
| Mac | ~/Library/Application Support/Claude/claude_desktop_config.json |
Add this to claude_desktop_config.json:
{
"mcpServers": {
"aws": {
"command": "aws-mcp",
"env": {
"AWS_ACCESS_KEY_ID": "your_access_key",
"AWS_SECRET_ACCESS_KEY": "your_secret_key",
"AWS_DEFAULT_REGION": "ap-northeast-2"
}
}
}
}
Restart Claude Desktop — the AWS tools will appear automatically.
Claude Code Integration
claude mcp add aws aws-mcp
Or add directly to .claude/settings.json:
{
"mcpServers": {
"aws": {
"command": "aws-mcp"
}
}
}
Available Tools
Security Groups
| Tool | Description |
|---|---|
list_security_groups |
List all security groups with inbound/outbound rules |
get_my_public_ip |
Get the current public IP address |
add_my_ip_to_security_group |
Add current IP to a specified security group |
remove_ip_from_security_group |
Remove a specific CIDR rule (supports port ranges e.g. 0-65535) |
create_security_group |
Create a new security group |
EC2 Instances
| Tool | Description |
|---|---|
list_ec2_instances |
List instances with state, IP, and type |
get_instance_details |
Get detailed info for a specific instance |
start_ec2_instance |
Start an instance |
stop_ec2_instance |
Stop an instance |
reboot_ec2_instance |
Reboot an instance |
create_ec2_instance |
Create a new instance |
terminate_ec2_instance |
Permanently delete an instance |
get_instance_console_output |
Get boot log (console output) |
Elastic IP
| Tool | Description |
|---|---|
list_elastic_ips |
List allocated EIPs with associated instance info |
allocate_elastic_ip |
Allocate a new EIP |
associate_elastic_ip |
Associate an EIP with an instance |
disassociate_elastic_ip |
Disassociate an EIP |
release_elastic_ip |
Release an EIP |
Utilities
| Tool | Description |
|---|---|
get_ssh_command |
Generate SSH command (auto-detects username from AMI) |
add_instance_tag |
Add or update instance tags |
change_instance_type |
Change instance type (auto stops if running) |
S3
| Tool | Description |
|---|---|
list_s3_buckets |
List all buckets with region |
list_s3_objects |
List objects in a bucket (supports prefix filter) |
create_s3_bucket |
Create a new bucket |
delete_s3_object |
Delete a file from a bucket |
get_s3_presigned_url |
Generate a temporary download URL |
Bedrock AI
| Tool | Description |
|---|---|
list_bedrock_models |
List available foundation models (supports provider filter) |
invoke_bedrock_claude |
Invoke Claude model (default: Claude 3.5 Sonnet v2) |
invoke_bedrock_model_raw |
Invoke any Bedrock model with raw JSON |
list_bedrock_knowledge_bases |
List Knowledge Bases |
query_bedrock_knowledge_base |
RAG query against a Knowledge Base |
Infrastructure Info
| Tool | Description |
|---|---|
list_key_pairs |
List available key pairs |
list_vpcs |
List VPCs and subnets |
list_available_amis |
List latest official AMIs (Amazon Linux / Ubuntu / Windows) |
Example Prompts
Once connected to Claude, just type naturally:
Show me all security groups
Add my current IP to sg-0abc1234 on port 22
Remove 0.0.0.0/0 from sg-0abc1234 on port range 0-65535
List all running EC2 instances
Stop instance i-0abc1234
List all S3 buckets
Generate a presigned URL for my-bucket/report.pdf
IAM Permissions Required
| Service | Recommended Policy |
|---|---|
| EC2 / Security Groups | AmazonEC2FullAccess |
| S3 | AmazonS3FullAccess |
| Bedrock | AmazonBedrockFullAccess |
Troubleshooting
aws-mcp command not found
pip install --upgrade claude-aws-mcp
AWS authentication errors
- Check that your
.envvalues are correct - Confirm the IAM user has the required permissions
Links
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file claude_aws_mcp-0.1.2.tar.gz.
File metadata
- Download URL: claude_aws_mcp-0.1.2.tar.gz
- Upload date:
- Size: 17.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
76871896d79dd440b21908e356723aa55bbb46dbad39a9495d466c57cb53337d
|
|
| MD5 |
7f54dfcd3854d27292979d97f0b49d31
|
|
| BLAKE2b-256 |
394d1fe60871a4d7315a1059e056d96670b8212b8470c55519de943fc4f27749
|
File details
Details for the file claude_aws_mcp-0.1.2-py3-none-any.whl.
File metadata
- Download URL: claude_aws_mcp-0.1.2-py3-none-any.whl
- Upload date:
- Size: 11.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
365f5eeb8612c6e6e14b5af77ad6a0c4fad84605bbbaa3e274779e882309a8f1
|
|
| MD5 |
1981a1a294b0071036b34d081717edad
|
|
| BLAKE2b-256 |
46e6764bc31364dc54d331f79a47a6158bd05cd7b0c47f79ea408264941c60fa
|