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 "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., "@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: S3 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 installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables interaction with S3-compatible storage services like AWS S3 and Cloudflare R2, supporting bucket management, object listing, reading, uploading, and deletion operations.5295ISC
- 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
Related MCP Connectors
Manage SRG+ hubs, channels, content, assets, users, and workspaces from any MCP-aware AI agent.
34 production API tools over one hosted MCP endpoint.
Official Sevalla MCP — full PaaS API access through just 2 tools.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- 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/JakePeralta7/s3-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server