MCP server to control AWS resources directly from Claude Desktop or Claude Code
Project description
AWS MCP Server
An MCP server that lets you control AWS resources directly from Claude Desktop or Claude Code.
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 |
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) |
Installation & Setup (Windows)
Prerequisites
- Python 3.10+ (check "Add Python to PATH" during install)
- Git
1. Clone the repository
Open Command Prompt or PowerShell and run:
git clone https://github.com/chyang222/MCP_Project_AWS.git
cd MCP_Project_AWS
2. Configure environment variables
copy .env.example .env
Open .env in a text editor and fill in your AWS credentials:
AWS_ACCESS_KEY_ID=your_access_key
AWS_SECRET_ACCESS_KEY=your_secret_key
AWS_DEFAULT_REGION=ap-northeast-2
3. Install dependencies
pip install -r requirements.txt
4. Test the server
python server.py
You should see MCP server running... if everything is working.
Claude Desktop Integration
Config file path (Windows):
%APPDATA%\Claude\claude_desktop_config.json
Paste
%APPDATA%\Claude\into the Explorer address bar to navigate there directly.
Add the following to claude_desktop_config.json:
{
"mcpServers": {
"aws": {
"command": "python",
"args": ["C:\\Users\\<your-username>\\MCP_Project_AWS\\server.py"],
"env": {
"AWS_ACCESS_KEY_ID": "your_access_key",
"AWS_SECRET_ACCESS_KEY": "your_secret_key",
"AWS_DEFAULT_REGION": "ap-northeast-2"
}
}
}
}
Replace
C:\\Users\\<your-username>\\MCP_Project_AWS\\with your actual clone path.
Use double backslashes (\\) in JSON paths.
Claude Code Integration
claude mcp add aws python C:\Users\<your-username>\MCP_Project_AWS\server.py
Or add directly to .claude\settings.json:
{
"mcpServers": {
"aws": {
"command": "python",
"args": ["C:\\Users\\<your-username>\\MCP_Project_AWS\\server.py"]
}
}
}
Usage Examples
Show me all security groups
Add my IP to security group sg-0abc1234 on port 22
List all running EC2 instances
Create a t3.micro instance
Stop instance i-0abc1234
Troubleshooting
python not found
- Make sure "Add Python to PATH" was checked during installation
- Close and reopen CMD, then verify with
python --version
pip install errors
python -m pip install --upgrade pip
pip install -r requirements.txt
AWS authentication errors
- Verify the key values in your
.envfile are correct - Confirm the IAM user has the required permissions
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.0.tar.gz.
File metadata
- Download URL: claude_aws_mcp-0.1.0.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 |
d607f2ac3e52af778cd09b1df17d58493fe20bde0f9a9a5cfefa426c373b2cc3
|
|
| MD5 |
93c5db4fd30057d1351d082a04123f36
|
|
| BLAKE2b-256 |
dd09874565a27f36a3b80335bdb74946fc767e86e8df04acad221a10b9e80f44
|
File details
Details for the file claude_aws_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: claude_aws_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 11.2 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 |
e9e0173a240659ade7495cc21570bf6eb81ec9a46096d7d6268bf63653e96959
|
|
| MD5 |
4ba74d7ea336f822d49bdb31f785ae0e
|
|
| BLAKE2b-256 |
62e1680cccbdd98aa8e6254a8f03598438d6093dcabe1461cec15ebf2e8827ce
|