MinIO MCP server

OfficialMinIO41Config last verified Jun 1, 2026

MinIO's official MCP server lets agents browse buckets, read and write objects, manage tags and versioning, and ask AI questions about stored objects.

The AIStor MCP Server is MinIO's official Model Context Protocol server for its object storage. It connects an agent to a MinIO or AIStor deployment over the S3-compatible API and exposes the full object lifecycle as tools: listing buckets and their contents, creating and deleting buckets, uploading and downloading objects, copying and moving objects between buckets, generating presigned URLs, and reading detailed object metadata. It also covers the operational surface most object-store work needs — bucket and object tags, versioning configuration and object version history, lifecycle (ILM) and replication configuration, plus admin tools that report cluster status, performance metrics, and data-usage totals across buckets.

A standout is the AI-native pair: `ask_object`, which answers natural-language questions about an object's content across many file formats, and `text_to_object`, which writes generated text straight into a bucket — so an agent can summarize a stored PDF or file a report without a manual download. The server ships as a container image (`quay.io/minio/aistor/mcp-server-aistor`) run with docker or podman, authenticating with MinIO endpoint, access key, and secret key. Writes are gated by design: it starts read-only and you must opt in with the `--allow-write`, `--allow-delete`, and `--allow-admin` flags, and scope filesystem access with `--allowed-directories`. It runs over stdio by default and can switch to Streamable HTTP with `--http`.

Quick install

Copy-paste configs are provided for all 8 supported clients. Pick your client below.

Add to ~/.claude.json

~/.claude.json
json
{
  "mcpServers": {
    "minio": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "MINIO_ENDPOINT",
        "-e",
        "MINIO_ACCESS_KEY",
        "-e",
        "MINIO_SECRET_KEY",
        "-e",
        "MINIO_USE_SSL",
        "-v",
        "/path/to/local/dir:/data",
        "quay.io/minio/aistor/mcp-server-aistor:latest",
        "--allowed-directories",
        "/data"
      ],
      "env": {
        "MINIO_ENDPOINT": "<MINIO_ENDPOINT>",
        "MINIO_ACCESS_KEY": "<MINIO_ACCESS_KEY>",
        "MINIO_SECRET_KEY": "<MINIO_SECRET_KEY>",
        "MINIO_USE_SSL": "<MINIO_USE_SSL>"
      }
    }
  }
}
Or via CLI
bash
claude mcp add minio -- docker run -i --rm -e MINIO_ENDPOINT -e MINIO_ACCESS_KEY -e MINIO_SECRET_KEY -e MINIO_USE_SSL -v /path/to/local/dir:/data quay.io/minio/aistor/mcp-server-aistor:latest --allowed-directories /data

Available tools

ToolDescription
list_bucketsLists all buckets in the object store with their basic information.
create_bucketCreates a new bucket with specified configuration and optional versioning settings.
delete_bucketDeletes a bucket and optionally force-removes all contained objects.
list_bucket_contentsLists all objects in a bucket, including their sizes and last-modified dates.
get_bucket_versioningGets the versioning status and configuration of a bucket.
set_bucket_versioningConfigures versioning settings for a bucket (requires admin).
get_bucket_lifecycleGets the lifecycle (ILM) configuration of a bucket.
get_bucket_replicationGets the replication configuration of a bucket.
get_bucket_tagsGets the tags of a bucket.
set_bucket_tagsSets the tags for a bucket.
upload_objectUploads a file from the local filesystem to a bucket.
download_objectDownloads an object from a bucket to the local filesystem, preserving metadata.
copy_objectCopies an object from one bucket to another, preserving metadata and version support.
move_objectMoves an object between buckets by copying then removing the source.
delete_objectDeletes a specific object or version from a bucket, with optional soft-delete support.
get_object_metadataGets detailed metadata for an object including content type, size, and custom headers.
get_object_versionsGets all versions of an object in a bucket.
get_object_tagsGets all tags associated with an object.
set_object_tagsSets or updates tags for an object, supporting multiple key-value pairs.
get_object_presigned_urlGets a presigned URL for an object, with an optional expiration (default 7 days).
ask_objectAnswers natural-language questions about an object's content using AI, across many file formats.
text_to_objectWrites provided text directly into a bucket as an object, with configurable content type.
list_allowed_directoriesLists the local directories the server is permitted to read from and write to.
list_local_filesLists files and directories in an allowed local path with their attributes.
get_admin_infoGets technical information about the object store including status, performance metrics, and configuration.
get_data_usage_infoGets data-usage information including total data stored, object count, and usage per bucket.

Required configuration

  • MINIO_ENDPOINTRequired

    Hostname:port of your MinIO or AIStor server.

  • MINIO_ACCESS_KEYRequired

    Access key used to authenticate to the object store.

  • MINIO_SECRET_KEYRequired

    Secret key paired with the access key.

  • MINIO_USE_SSLOptional

    Whether to connect over HTTPS. Set to true for TLS endpoints.

What you can do with it

Let an agent manage object storage

Point the agent at a MinIO or AIStor deployment and have it list buckets, upload and organize objects, set tags and versioning, and generate presigned share links — keeping writes and deletes behind the opt-in flags.

Ask questions of stored files

Use ask_object to query the contents of a stored PDF, CSV, or document in natural language, then have the agent write a summary back with text_to_object, all without downloading the file by hand.

FAQ

Is it free?
The MCP server image is freely distributed on quay.io and connects to any S3-compatible MinIO or AIStor deployment. AIStor is MinIO's commercial enterprise object store, so production use is tied to your MinIO licensing and deployment costs.
Does it support remote/OAuth?
There is no OAuth flow. It runs locally as a container over stdio by default and can expose a Streamable HTTP transport with the --http flag; it authenticates to the object store with MinIO endpoint, access key, and secret key.
Can the agent delete or modify data?
Not by default. The server starts read-only; you must explicitly pass --allow-write, --allow-delete, and --allow-admin to enable mutating and administrative operations, and --allowed-directories to scope local filesystem access.
← Browse all file-storage servers