Skip to main content

MCP server to control AWS resources directly from Claude Desktop or Claude Code

Project description

claude-aws-mcp

PyPI version Python License: MIT

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

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 .env values 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

claude_aws_mcp-0.1.1.tar.gz (17.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

claude_aws_mcp-0.1.1-py3-none-any.whl (11.5 kB view details)

Uploaded Python 3

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

Hashes for claude_aws_mcp-0.1.1.tar.gz
Algorithm Hash digest
SHA256 977d232605127c03437add822f08f7cdf3501f889da5661b8059aff8eb2d13f0
MD5 daabc612eaad8bd05050b8f9ef6d2bfb
BLAKE2b-256 1912e866f7d4a5909f804128edbbde4af6ada0fe4757abde96d2477e77865690

See more details on using hashes here.

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

Hashes for claude_aws_mcp-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 bc5aa106114ea6272bc7975086b457de48f2301a8caeb81899ee39c5c4581a7e
MD5 511e42ac478c19823876cb9c5540d6e8
BLAKE2b-256 d43bbb14708425af591603a7c03a6261669bc59b3c5485aa47ac523a390b8ebd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page