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
Requires Python 3.10 or higher.
Quick Start (Windows)
Prerequisites
- Python 3.10+ — check "Add Python to PATH" during install
- Git
1. Install the package
pip install claude-aws-mcp
2. Create a .env file
Create a file named .env in your working directory:
AWS_ACCESS_KEY_ID=your_access_key
AWS_SECRET_ACCESS_KEY=your_secret_key
AWS_DEFAULT_REGION=ap-northeast-2
3. Run the 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 |
On Windows, paste
%APPDATA%\Claude\into the Explorer address bar to navigate there directly.
Add the following 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 from a security group (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
Create a t3.micro instance
List all S3 buckets
Generate a presigned URL for my-bucket/report.pdf
Ask Claude via Bedrock: "Summarize the AWS Well-Architected Framework"
IAM Permissions
Your AWS IAM user needs the following policies:
| Service | Recommended Policy |
|---|---|
| EC2 / Security Groups | AmazonEC2FullAccess |
| S3 | AmazonS3FullAccess |
| Bedrock | AmazonBedrockFullAccess |
Troubleshooting
aws-mcp command not found after install
- Close and reopen CMD, then retry
- Or run:
python -m aws_mcp.server
pip errors
python -m pip install --upgrade pip
pip install claude-aws-mcp
AWS authentication errors
- Check that your
.envvalues are correct - Confirm the IAM user has the required permissions
Python not found
- Reinstall Python and make sure "Add Python to PATH" is checked
- Verify with:
python --version
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.1.tar.gz.
File metadata
- Download URL: claude_aws_mcp-0.1.1.tar.gz
- Upload date:
- Size: 17.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
977d232605127c03437add822f08f7cdf3501f889da5661b8059aff8eb2d13f0
|
|
| MD5 |
daabc612eaad8bd05050b8f9ef6d2bfb
|
|
| BLAKE2b-256 |
1912e866f7d4a5909f804128edbbde4af6ada0fe4757abde96d2477e77865690
|
File details
Details for the file claude_aws_mcp-0.1.1-py3-none-any.whl.
File metadata
- Download URL: claude_aws_mcp-0.1.1-py3-none-any.whl
- Upload date:
- Size: 11.5 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 |
bc5aa106114ea6272bc7975086b457de48f2301a8caeb81899ee39c5c4581a7e
|
|
| MD5 |
511e42ac478c19823876cb9c5540d6e8
|
|
| BLAKE2b-256 |
d43bbb14708425af591603a7c03a6261669bc59b3c5485aa47ac523a390b8ebd
|