bucket-helper-mcp
Provides tools for interacting with AWS S3, including upload, download, delete, listing, and temporary file management with automatic cleanup.
Provides tools for interacting with Backblaze B2 via its S3-compatible API, including upload, download, delete, listing, and temporary file management.
Provides tools for interacting with Cloudflare R2 via its S3-compatible API, including upload, download, delete, listing, and temporary file management.
Provides tools for interacting with DigitalOcean Spaces via its S3-compatible API, including upload, download, delete, listing, and temporary file management.
Provides tools for interacting with MinIO via its S3-compatible API, including upload, download, delete, listing, bucket creation, and temporary file management.
Provides tools for interacting with Wasabi via its S3-compatible API, including upload, download, delete, listing, and temporary file management.
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., "@bucket-helper-mcplist files in my S3 bucket named 'my-data-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.
Bucket Helper
Bucket Helper belongs to a collection of libraries called AI Helpers developed for building Artificial Intelligence.
Utility functions for AWS S3 and any S3-compatible object storage β MinIO, Backblaze B2 S3 API, DigitalOcean Spaces, Cloudflare R2, Wasabi, and friends. Built on boto3. Same shape as sftp-helper: a credentials() loader, the usual CRUD (upload / download / delete / exists / list_prefix), and a remote_tempfile context manager for stage-and-share flows.

Documentation
π― Triggers Β· π§© Agent skill
Related MCP server: S3 MCP Server
Installation
Prerequisites β Python 3.10β3.13 and git, cross-platform:
π macOS (Homebrew):
brew install python gitπ§ Ubuntu/Debian:
sudo apt update && sudo apt install -y python3 python3-pip gitπͺ Windows (PowerShell):
winget install Python.Python.3.12 Git.Git
We recommend using Python environments. Check this link if you're unfamiliar with setting one up: π₯Έ Tech tips.
From PyPI (recommended)
# Core library (credentials loader + CRUD + remote_tempfile)
pip install bucket-helper
# Optional surfaces
pip install "bucket-helper[cli]" # click-based CLI twin
pip install "bucket-helper[api]" # FastAPI HTTP surface
pip install "bucket-helper[api,mcp]" # MCP tools over FastAPIFrom source (no PyPI)
# Core library
pip install "git+https://github.com/warith-harchaoui/bucket-helper.git@v0.3.0"
# Optional surfaces
pip install "bucket-helper[cli] @ git+https://github.com/warith-harchaoui/bucket-helper.git@v0.3.0"
pip install "bucket-helper[api] @ git+https://github.com/warith-harchaoui/bucket-helper.git@v0.3.0"
pip install "bucket-helper[api,mcp] @ git+https://github.com/warith-harchaoui/bucket-helper.git@v0.3.0"The argparse CLI is always available. The [cli] extra adds the click twin.
Configuration
A ready-to-fill template is committed at s3_config.json.example. Copy it to s3_config.json and edit in place β real *config.json files are gitignored so you cannot accidentally commit secrets:
cp s3_config.json.example s3_config.json
# then edit s3_config.json with your AWS / MinIO / R2 / B2 credentialsYou may also write a s3_config.yaml, use a .env, or set environment variables β bucket-helper falls back in that order via os_helper.get_config. Required keys:
{
"s3_access_key": "AKIA...",
"s3_secret_key": "...",
"s3_bucket": "my-bucket",
"s3_https": "https://my-bucket.s3.eu-west-3.amazonaws.com"
}Optional keys:
Key | Default | Notes |
|
| AWS region; mostly cosmetic for MinIO / R2 |
| empty (= AWS S3) | Set this for S3-compatible backends β see table below |
| empty | Default key prefix added by |
|
| Force path-style addressing ( |
|
| Disable only for dev MinIO with self-signed certs |
Endpoint URLs for common S3-compatible storage
Set s3_endpoint_url to:
Provider | Endpoint |
AWS S3 | leave empty / unset |
MinIO |
|
DigitalOcean Spaces |
|
Cloudflare R2 |
|
Backblaze B2 (S3 API) |
|
Wasabi |
|
Usage
For the full catalog of recipes (uploads / downloads / listings, S3-compatible endpoints β MinIO / R2 / B2 / Spaces / Wasabi, temporary remote keys with auto-cleanup, mirroring with sftp-helper), see π EXAMPLES.md.
import bucket_helper as bh
# Load creds β JSON / YAML / env / .env (auto-fallback in that order)
cred = bh.credentials("path/to/s3_config.json")
# Upload a local file
uri = bh.upload("local.txt", cred, "folder/uploaded.txt")
# uri == "s3://my-bucket/folder/uploaded.txt"
assert bh.exists(uri, cred)
# Download
bh.download(uri, "downloaded.txt", cred)
# List
for key in bh.list_prefix("folder/", cred):
print(key)
# Delete
bh.delete(uri, cred)MinIO example
cred = {
"s3_access_key": "minioadmin",
"s3_secret_key": "minioadmin",
"s3_bucket": "uploads",
"s3_https": "http://minio.example.com:9000/uploads",
"s3_endpoint_url": "http://minio.example.com:9000",
"s3_use_path_style": "true",
"s3_region": "us-east-1", # MinIO accepts any region string
}
bh.make_bucket("uploads", cred)
bh.upload("file.bin", cred, "file.bin")Stage-and-share with remote_tempfile
Drop a generated file at a unique random key, hand the public URL to a downstream worker / webhook, and the object is deleted on block exit (even if the body raises):
import bucket_helper as bh
import requests
cred = bh.credentials("path/to/s3_config.json")
with bh.remote_tempfile(cred, ext="json", prefix="runs") as (s3_addr, public_url):
bh.upload("payload.json", cred, s3_addr, content_type="application/json")
# Hand the URL to something that fetches it once.
requests.post("https://hook.example.com/process", json={"input_url": public_url}).raise_for_status()
# Object is gone here, no manual cleanup.Multi-surface exposure
Every public function in the library is also exposed as:
argparse CLI β
bucket-helper <subcommand>(installed by default).click CLI β
bucket-helper-click <subcommand>(install[cli]extra).FastAPI HTTP β
uvicorn bucket_helper.api:app --host 0.0.0.0 --port 8000(install[api]extra).MCP tools β
bucket-helper-mcp(install[api,mcp]extras).
Both CLIs share the same subcommand names and flags β pick your favourite.
Agent skill (Claude / OpenCode)
bucket-helper ships as a discoverable Claude Skill and OpenCode skill
under skills/bucket-helper/,
so an AI agent can run object-storage operations for you without you opening a
terminal. Install it by symlinking:
ln -sfn "$PWD/skills/bucket-helper" ~/.claude/skills/bucket-helper # Claude Code / Desktop
ln -sfn "$PWD/skills/bucket-helper" ~/.opencode/skills/bucket-helper # OpenCodeThe exhaustive catalogue of what triggers the toolkit β natural-language
phrasings, commands, functions, address cues, and explicit SKIP rules β lives in
TRIGGERS.md
(mirrored in the skill's references/triggers.md). See
skills/README.md
for install details.
CLI examples
# argparse CLI (always available)
bucket-helper upload --config s3_config.json --input local.txt --key folder/uploaded.txt
bucket-helper exists --config s3_config.json --key folder/uploaded.txt
bucket-helper download --config s3_config.json --key folder/uploaded.txt --output back.txt
bucket-helper list --config s3_config.json --prefix folder/
bucket-helper delete --config s3_config.json --key folder/uploaded.txt
bucket-helper make-bucket --config s3_config.json --bucket new-bucket
bucket-helper tempfile --config s3_config.json --ext json --prefix runs
bucket-helper strip-path --config s3_config.json --address s3://my-bucket/path/to/obj
# click CLI β same verbs, same flags
bucket-helper-click upload --config s3_config.json --input local.txt --key folder/uploaded.txtHTTP + MCP server
# Serve HTTP + MCP (default credentials picked up from BUCKET_HELPER_CONFIG)
BUCKET_HELPER_CONFIG=$PWD/s3_config.json bucket-helper-mcp
# Or run only FastAPI directly:
uvicorn bucket_helper.api:app --host 0.0.0.0 --port 8000
# β Swagger UI at http://localhost:8000/docsPer-request credentials can also be sent as multipart form fields
(s3_access_key / s3_secret_key / s3_bucket / s3_https / β¦).
Docker
docker build -t bucket-helper .
docker run --rm -p 8000:8000 \
-e BUCKET_HELPER_CONFIG=/config/s3_config.json \
-v $PWD/s3_config.json:/config/s3_config.json:ro \
bucket-helperSee also: TRIGGERS.md (what invokes the toolkit), skills/README.md (agent skill install) and GUI.md (visual product design plan β no GUI ships; bucket-helper is remote object-storage plumbing).
Author
Acknowledgements
Special thanks to Mohamed Chelali and Bachir Zerroug for fruitful discussions.
License
This project is licensed under the BSD-3-Clause License β see the LICENSE file for details.
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.Last updated5317ISC
- Alicense-qualityFmaintenanceEnables interaction with AWS S3 through MCP, supporting bucket and object management, lifecycle configurations, tagging, policies, CORS settings, presigned URLs, and file uploads/downloads.Last updated3MIT
- Alicense-qualityDmaintenanceEnables interaction with AWS S3 storage through bucket operations (create, delete, list), object management (upload, download, delete, list), and bucket policy configuration using AWS credentials.Last updated152MIT
- 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.Last updated132
Related MCP Connectors
OCR, transcription, file extraction, and image generation for AI agents via MCP.
User-owned memory for AI agents, Copilot, Claude, IDEs, CLIs, and chat apps over remote MCP.
Manage SRG+ hubs, channels, content, assets, users, and workspaces from any MCP-aware AI agent.
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/warith-harchaoui/bucket-helper'
If you have feedback or need assistance with the MCP directory API, please join our Discord server