MinIO for object storage
MinIO's official server is the top pick for object storage here because it speaks the S3 object model directly rather than reaching it through a broader cloud surface. It lists buckets, walks their contents, and moves individual blobs, so an agent reasons about what is actually stored instead of shelling out to an SDK.
The job for this task is bucket and object work on an S3-compatible store, and MinIO's tools map onto exactly that. When you run MinIO itself, or any S3-compatible engine it can point at, this is the most native of the three options.
How MinIO fits
The tools that do the work are list_buckets and list_bucket_contents to see what exists, upload_object and download_object to move bytes between a bucket and the local filesystem, and create_bucket and delete_bucket to manage the containers themselves. For operational metadata it reads and sets versioning (get_bucket_versioning, set_bucket_versioning), inspects lifecycle and replication (get_bucket_lifecycle, get_bucket_replication), and manages bucket tags (get_bucket_tags, set_bucket_tags).
The honest limit is that upload and download go through the local filesystem, so this fits an agent that has files on disk rather than one streaming bytes between two remote systems. Against the siblings: AWS (AWS Labs) covers far more of AWS than storage, so reach for it when the same agent also touches IAM, Lambda, or other services; Cloudflare fits when your objects live in R2 at the edge. For a dedicated MinIO or S3-compatible deployment, MinIO is the closer match.
Tools you would use
| Tool | What it does |
|---|---|
| list_buckets | Lists all buckets in the object store with their basic information. |
| create_bucket | Creates a new bucket with specified configuration and optional versioning settings. |
| delete_bucket | Deletes a bucket and optionally force-removes all contained objects. |
| list_bucket_contents | Lists all objects in a bucket, including their sizes and last-modified dates. |
| get_bucket_versioning | Gets the versioning status and configuration of a bucket. |
| set_bucket_versioning | Configures versioning settings for a bucket (requires admin). |
| get_bucket_lifecycle | Gets the lifecycle (ILM) configuration of a bucket. |
| get_bucket_replication | Gets the replication configuration of a bucket. |
| get_bucket_tags | Gets the tags of a bucket. |
| set_bucket_tags | Sets the tags for a bucket. |
FAQ
- Can MinIO's MCP server generate presigned URLs?
- The tools listed here cover bucket and object operations: list_buckets, list_bucket_contents, upload_object, download_object, and bucket-level versioning, lifecycle, replication, and tags. Treat presigned-URL generation as something to confirm against your installed version rather than assume from this set.
- Does it work with non-MinIO S3 storage?
- It targets an S3-compatible object store, so it can point at MinIO or another S3-compatible engine. If your objects live in Cloudflare R2 at the edge or across the wider AWS surface, the Cloudflare or AWS (AWS Labs) servers fit better.