@uania/aws-ow-s3-mcp
v0.1.3
Published
AWS S3 MCP Server with pre-signed URL upload and download tools.
Readme
AWS S3 MCP Server
MCP Server for AWS S3 operations, providing secure access to S3 buckets through pre-signed URLs.
Tools
list_objects- List objects in an S3 bucket
- Input:
prefix(string, optional): Prefix filter for object keys
- Returns: Array of objects with keys, sizes, and last modified dates
get_object- Generate a pre-signed URL for accessing an object
- Inputs:
key(string, required): Object key to retrieveexpiry(number, optional): URL expiration time in seconds (default: 3600)
- Returns:
object_urlcontaining the pre-signed URL
put_object- Generate a pre-signed URL for uploading an object
- Inputs:
key(string, required): Object key to uploadcontent_type(string, optional): Content type to sign into the upload URLexpiry(number, optional): URL expiration time in seconds (default: 3600)
- Returns:
upload_urlcontaining the pre-signed URL
upload_file- Upload a local file to S3 through a generated pre-signed PUT URL
- Inputs:
source_path(string, required): Local file path to upload from the MCP server hostkey(string, required): S3 object key to upload tocontent_type(string, optional): Content type to set on the uploaded objectexpiry(number, optional): Pre-signed URL expiration time in seconds (default: 3600)
- Returns: Upload status, uploaded byte count, object key, and generated
upload_url
download_file- Download an S3 object to a local file through a generated pre-signed GET URL
- Inputs:
key(string, required): S3 object key to downloaddestination_path(string, required): Local file path to write to on the MCP server hostexpiry(number, optional): Pre-signed URL expiration time in seconds (default: 3600)
- Returns: Download status, downloaded byte count, object key, destination path, and generated
download_url
delete_object- Delete an object from the bucket
- Input:
key(string, required): Object key to delete
- Returns:
successboolean indicating deletion status
Setup
Environment Variables
The server requires the following environment variables:
BUCKET_NAME: The name of your S3 bucket (required)REGION: AWS region (default: "ap-southeast-1")
AWS credentials should be configured using standard AWS credential configuration methods (environment variables, IAM roles, or AWS credentials file).
Usage with Claude Desktop
Add the following to your claude_desktop_config.json:
{
"mcpServers": {
"aws-ow-s3-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"BUCKET_NAME",
"-e",
"REGION",
"-e",
"AWS_ACCESS_KEY_ID",
"-e",
"AWS_SECRET_ACCESS_KEY",
"mcp/aws-ow-s3-mcp"
],
"env": {
"BUCKET_NAME": "<YOUR_BUCKET_NAME>",
"REGION": "<AWS_REGION>",
"AWS_ACCESS_KEY_ID": "<YOUR_ACCESS_KEY>",
"AWS_SECRET_ACCESS_KEY": "<YOUR_SECRET_KEY>"
}
}
}
}NPX Command
{
"mcpServers": {
"aws-ow-s3-mcp": {
"command": "npx",
"args": [
"-y",
"@uania/aws-ow-s3-mcp"
],
"env": {
"BUCKET_NAME": "<YOUR_BUCKET_NAME>",
"REGION": "<AWS_REGION>",
"AWS_ACCESS_KEY_ID": "<YOUR_ACCESS_KEY>",
"AWS_SECRET_ACCESS_KEY": "<YOUR_SECRET_KEY>"
}
}
}
}Build
Docker build:
docker build -t mcp/aws-ow-s3-mcp-server .Development
The server is built using:
- Node.js
- TypeScript
- @modelcontextprotocol/sdk
- @aws-sdk/client-s3
- @aws-sdk/s3-request-presigner
License
This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.
