A Model Context Protocol server implementation for operations on AWS resources
Configuration
View docs{
"mcpServers": {
"rishikavikondala-mcp-server-aws": {
"command": "uv",
"args": [
"--directory",
"/path/to/repo/mcp-server-aws",
"run",
"mcp-server-aws"
],
"env": {
"AWS_REGION": "us-east-1",
"AWS_ACCESS_KEY_ID": "YOUR_AWS_ACCESS_KEY_ID",
"AWS_SECRET_ACCESS_KEY": "YOUR_AWS_SECRET_ACCESS_KEY"
}
}
}
}This MCP server implements a Model Context Protocol interface for AWS operations, enabling automated auditing of S3 and DynamoDB actions. You can run it locally and connect via an MCP client to perform common cloud operations with built‑in logging and an audit resource endpoint.
You connect to this MCP server from your MCP client (such as Claude) to perform AWS operations. Practical workflows include creating, listing, updating, and deleting S3 buckets and DynamoDB tables, as well as manipulating and querying DynamoDB items. Every action is automatically logged and can be accessed through the audit endpoint for visibility and auditing.
To start using it once you have it running locally, initiate operations from your MCP client to the available S3 and DynamoDB endpoints. Use typical read/write patterns to manage buckets, objects, tables, and items. If you encounter setup issues, use the built‑in debugging tools to verify credentials, permissions, and network access.
Prerequisites: you need Node.js and npm, or a runtime that supports the MCP local server workflow used here. You also need access to an AWS account with an IAM user that has full RW permissions for S3 and DynamoDB.
Step 1: Install the MCP server for AWS via the CLI (Claude client integration). Run the following command to install automatically for Claude:
npx -y @smithery/cli install mcp-server-aws --client claudeStep 2: Manual installation steps. Follow these steps to run the server locally without the auto‑install option.
Step 2.1: Prepare AWS credentials. Use either of these options. The server requires an IAM user with RW permissions for both S3 and DynamoDB.
Option A — Environment variables
Set the following environment variables in your shell or environment configuration: AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_REGION (defaults to us-east-1).
Option B — Default AWS credential chain
Configure credentials using the AWS CLI by running aws configure to set the default profile.
Step 2.2: Create Claude desktop configuration. Add the MCP server entry to your Claude desktop config as shown.
"mcpServers": {
"mcp-server-aws": {
"command": "uv",
"args": [
"--directory",
"/path/to/repo/mcp-server-aws",
"run",
"mcp-server-aws"
],
"env": [
{"name": "AWS_ACCESS_KEY_ID", "value": "YOUR_AWS_ACCESS_KEY_ID"},
{"name": "AWS_SECRET_ACCESS_KEY", "value": "YOUR_AWS_SECRET_ACCESS_KEY"},
{"name": "AWS_REGION", "value": "us-east-1"}
]
}
}Step 2.3: Start Claude desktop and verify. Open the Claude app, ensure the AWS MCP server appears, and perform a read/write operation (for example, create an S3 bucket with a unique name) to confirm the setup.
Security and access: Use IAM credentials with the minimum required permissions for your tasks. Do not expose your AWS keys in shared environments. Rotate credentials periodically and use separate keys for different environments when possible.
Audit endpoint: All AWS operations performed through this MCP server are automatically logged. Access the audit://aws-operations resource endpoint to review activity and ensure compliance.
Tools available through this MCP server include actions for S3 and DynamoDB operations such as creating, listing, deleting, and reading buckets; uploading, listing, reading, updating, and deleting objects; and comprehensive DynamoDB table and item operations, including batch and TTL controls.
Create a new S3 bucket and make it available for object storage.
List all S3 buckets under the AWS account.
Delete an S3 bucket and its contents.
Upload an object to an S3 bucket.
Delete an object from an S3 bucket.
List objects within an S3 bucket.
Read the contents of an S3 object.
Create a new DynamoDB table.
Describe details about a DynamoDB table.
Delete a DynamoDB table.
Update a DynamoDB table.
Put an item into a DynamoDB table.
Get an item from a DynamoDB table.
Update an item in a DynamoDB table.
Delete an item from a DynamoDB table.
Query items in a DynamoDB table.
Scan items in a DynamoDB table.
Batch get multiple items from DynamoDB tables.
Batch write operations for DynamoDB items.
Execute multiple PartiQL statements in a batch.
Get the TTL settings for a DynamoDB table.
Update the TTL settings for a DynamoDB table.