s3-mcp
Provides S3-compatible storage operations (list, get, put, delete, copy, presign) against Backblaze B2.
Provides S3-compatible storage operations against Cloudflare R2, including reading, writing, and managing objects and buckets.
Provides S3-compatible storage operations (list, get, put, delete, copy, presign, bucket management) against MinIO.
Click on "Deploy 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., "@s3-mcplist all files in the 'reports' 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.
s3-mcp
A generic S3-protocol MCP server (stdio) that works against any S3-compatible endpoint — RustFS, MinIO, Cloudflare R2, Backblaze B2, AWS S3 — not just AWS.
Single Python package, one boto3 client created at startup, configuration via
environment variables only. Built on the official mcp
SDK (high-level server API) and boto3.
Configuration (environment variables)
Variable | Required | Default | Description |
| no | (unset) | S3-compatible endpoint; omit to target real AWS |
| no |
| Region for signing and bucket creation |
| yes | — | Access key |
| yes | — | Secret key |
| no |
| Path-style addressing ( |
| no |
|
|
Booleans accept true/false/1/0/yes/no (case-insensitive). Missing credentials
or invalid booleans abort startup with a clear error.
Related MCP server: MinIO MCP Server
Tools
Tool | Read-only hint |
| yes |
| yes |
| yes |
| yes |
| yes |
| no |
| no |
| no |
| no |
| no |
| no |
Tool errors are raised as short RuntimeError messages and surfaced by MCP as
error results. Presigned URLs are capped at 7 days (604800 s), per SigV4.
Example configurations
RustFS with a self-signed certificate
{
"mcpServers": {
"s3-mcp": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "S3_ENDPOINT_URL=https://rustfs.local:9000",
"-e", "S3_TLS_INSECURE=true",
"-e", "AWS_REGION=us-east-1",
"-e", "AWS_ACCESS_KEY_ID",
"-e", "AWS_SECRET_ACCESS_KEY",
"ghcr.io/jakeperalta7/s3-mcp:latest"
]
}
}
}-e VAR without a value passes the variable through from your shell, so
credentials never appear in the config file.
MinIO
{
"mcpServers": {
"s3-mcp": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "S3_ENDPOINT_URL=http://localhost:9000",
"-e", "AWS_REGION=us-east-1",
"-e", "AWS_ACCESS_KEY_ID",
"-e", "AWS_SECRET_ACCESS_KEY",
"ghcr.io/jakeperalta7/s3-mcp:latest"
]
}
}
}AWS S3
Omit S3_ENDPOINT_URL; standard AWS credential/region resolution applies:
{
"mcpServers": {
"s3-mcp": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "AWS_REGION",
"-e", "AWS_ACCESS_KEY_ID",
"-e", "AWS_SECRET_ACCESS_KEY",
"ghcr.io/jakeperalta7/s3-mcp:latest"
]
}
}
}Without Docker (uv)
uvx --from git+https://github.com/JakePeralta7/s3-mcp s3-mcp{
"mcpServers": {
"s3-mcp": {
"command": "uvx",
"args": ["--from", "git+https://github.com/JakePeralta7/s3-mcp", "s3-mcp"],
"env": {
"S3_ENDPOINT_URL": "http://localhost:9000",
"AWS_ACCESS_KEY_ID": "...",
"AWS_SECRET_ACCESS_KEY": "..."
}
}
}
}Development
uv sync --group dev # install deps into .venv
uv run pytest -q # unit tests (boto3 mocked, no network)
docker build -t s3-mcp:dev .Entrypoint: python -m s3_mcp (stdio transport only).
Releasing
Every push to main runs tests, then publishes
ghcr.io/<owner>/<repo>:<version> + :latest, where <version> is read from
version in pyproject.toml. To release, bump the version and merge to main.
Git tags are not used.
License
This server cannot be deployed
Maintenance
Related MCP Connectors
Create a free sandbox object storage bucket; upload, download, list, inspect, and delete objects.
Governed MCP gateway: one endpoint for your tools, with credential custody and audit log.
MCP commerce surface for compute credits, API keys, GPU instances, and cloud storage.
Tigris MCP Server seamlessly connects AI agents to Tigris bucket and object management.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceEnables interaction with AWS S3 through MCP, supporting bucket and object management, lifecycle configurations, tagging, policies, CORS settings, presigned URLs, and file uploads/downloads.3MIT
- FlicenseAqualityDmaintenanceProvides tools for interacting with MinIO and S3-compatible object storage through MCP clients like Claude. It enables comprehensive bucket and object management, including listing, creating, uploading, and generating presigned URLs.132-
- AlicenseAqualityCmaintenanceEnables MCP clients to connect to AWS S3 buckets, list, upload, and read objects in various formats, supporting public and private buckets with multiple transport modes.4MIT
- AlicenseNot gradedqualityAmaintenanceProvides MCP tools for AWS S3 and S3-compatible storage, enabling file upload, download, listing, deletion, and temporary remote file staging via natural language.BSD 3-Clause