aws-s3-connector-mcp
Provides tools for connecting to AWS S3 buckets, listing objects, uploading files, and reading file contents, supporting both public and private buckets.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@aws-s3-connector-mcplist objects in my S3 bucket"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
AWS S3 Connector MCP Server
A production-ready Model Context Protocol (MCP) server for AWS S3 operations.
Provides 4 practical tools for connecting to S3, listing objects, uploading files, and reading file contents — supporting public buckets (no credentials) and private buckets (AWS credentials).
Supports three transport modes: stdio, SSE, and Streamable HTTP.
Folder Structure
aws-s3-connector-tool-updated/
|-- aws_s3_server.py # Main server entry point
|-- Dockerfile
|-- LICENSE
|-- mcp.example.json
|-- pyproject.toml
|-- README.md
`-- tools/
|-- __init__.py
|-- s3_connector_tools.py
`-- toolhandler.pyRelated MCP server: S3 MCP Server
Available Tools (4)
Tool | Description |
| Connect to an S3 bucket via public URL or AWS credentials |
| List all objects in the connected bucket with filenames and links |
| Upload a file from a local path or internet URL to S3 |
| Read file contents from S3 (CSV, JSON, Excel, PDF, Parquet, images, text) |
Tools Reference
1. connect_s3
Connect to an S3 bucket. Call this first before using other tools.
Parameters:
Parameter | Required | Description |
| Yes (if no credentials) | Public S3 URL, e.g. |
| No | AWS access key (for private buckets) |
| No | AWS secret key (for private buckets) |
| No | AWS region (default: auto-detected or |
Example — public bucket:
{
"bucket_url": "https://my-public-bucket.s3.amazonaws.com"
}Example — private bucket:
{
"aws_access_key_id": "<access-key>",
"aws_secret_access_key": "<secret-key>",
"bucket_url": "s3://my-private-bucket",
"region": "us-east-1"
}Returns:
{
"status": "connected",
"bucket": "my-bucket",
"region": "us-east-1",
"mode": "public"
}2. list_objects
List all objects in the connected S3 bucket with filenames and presigned/public links.
Parameters: none (uses connection from connect_s3)
Example:
{}Returns:
{
"status": "success",
"bucket": "my-bucket",
"count": 3,
"objects": [
{
"key": "data/report.csv",
"size": 4096,
"last_modified": "2026-06-01T10:00:00Z",
"url": "https://my-bucket.s3.amazonaws.com/data/report.csv?..."
}
]
}3. upload_object
Upload a file to the connected S3 bucket from a local path or a URL.
Parameters:
Parameter | Required | Description |
| Yes | Destination S3 key (path in bucket), e.g. |
| No* | Absolute local file path |
| No* | Internet URL to download and upload |
*One of local_path or source_url is required.
Example — local file:
{
"key": "uploads/report.csv",
"local_path": "C:/Users/me/Downloads/report.csv"
}Example — from URL:
{
"key": "uploads/data.json",
"source_url": "https://example.com/data.json"
}Returns:
{
"status": "success",
"key": "uploads/report.csv",
"bucket": "my-bucket",
"message": "Uploaded successfully"
}4. read_object
Read and return the contents of a file stored in S3. Supports multiple file formats.
Parameters:
Parameter | Required | Description |
| Yes | S3 object key to read |
Supported formats:
Format | Extensions | Output |
Text / CSV / JSON |
| Raw text |
Excel |
| JSON rows per sheet |
Parquet |
| JSON rows |
| Extracted text | |
Images |
| Base64-encoded data URL |
Other | any | Base64-encoded content |
Example:
{
"key": "data/report.csv"
}Returns:
{
"status": "success",
"key": "data/report.csv",
"format": "text",
"content": "id,name,value\n1,Alice,100\n2,Bob,200\n"
}Prerequisites
Python 3.10+
AWS credentials (only for private buckets)
Installation
# From the workspace root (where .venv lives)
.venv\Scripts\activate # Windows
# source .venv/bin/activate # macOS / Linux
cd aws-s3-connector-tool-updated
pip install -e .Run
stdio (default — for MCP desktop clients like Claude Desktop)
aws-s3-connector-mcp --mode stdioSSE
aws-s3-connector-mcp --mode sse --host 0.0.0.0 --port 8000Endpoints:
GET /ssePOST /messages/GET /health
Streamable HTTP
aws-s3-connector-mcp --mode streamable-http --host 0.0.0.0 --port 8000Endpoints:
POST /mcpGET /healthGET /
Environment variables (alternative to CLI flags)
Variable | Default | Description |
|
|
|
|
| Bind host |
|
| Bind port |
Docker
# Build
docker build -t aws-s3-connector-mcp .
# Run (streamable-http, port 8000)
docker run -p 8000:8000 \
-e AWS_ACCESS_KEY_ID=<your-key> \
-e AWS_SECRET_ACCESS_KEY=<your-secret> \
aws-s3-connector-mcpMCP Client Configuration
See mcp.example.json for a ready-to-use client config snippet.
stdio (Claude Desktop / Cursor):
{
"mcpServers": {
"aws-s3-connector": {
"command": "aws-s3-connector-mcp",
"args": ["--mode", "stdio"],
"env": {
"AWS_ACCESS_KEY_ID": "<your-access-key>",
"AWS_SECRET_ACCESS_KEY": "<your-secret-key>",
"AWS_REGION": "us-east-1"
}
}
}
}Streamable HTTP (MCP Inspector / MCPmon):
http://localhost:8000/mcpArchitecture
MCP Client (Claude / Cursor / MCP Inspector)
|
| JSON-RPC 2.0
v
Transport Layer (stdio | SSE | Streamable HTTP) ← aws_s3_server.py
|
v
ToolHandler Registry (4 tools)
|
v
S3 Tool Handlers ← tools/s3_connector_tools.py
|
v
boto3 ──► AWS S3 APITroubleshooting
NoCredentialsError — Pass credentials via connect_s3 or set AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY env vars.
NoSuchBucket — Verify the bucket name and region in connect_s3.
connect_s3 not called — Always call connect_s3 before list_objects, upload_object, or read_object.
Port already in use — Change APP_PORT env var or use --port flag.
License
MIT License — see LICENSE for details.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/sourav-spd/aws-s3-connector-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server