Provides tools for interacting with MinIO/S3-compatible object storage, enabling operations such as managing buckets (listing, creating, and removing) and performing object operations including uploading, downloading, copying, and generating presigned URLs.
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., "@MinIO MCP Serverlist the files in my 'backups' 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.
MinIO MCP Server
MCP (Model Context Protocol) server for MinIO object storage operations. This server provides tools for interacting with MinIO/S3-compatible storage through Claude and other MCP clients.
Features
Bucket Operations
minio_list_buckets- List all bucketsminio_make_bucket- Create a new bucketminio_remove_bucket- Remove an empty bucketminio_bucket_exists- Check if a bucket exists
Object Operations
minio_list_objects- List objects in a bucketminio_get_object- Get object contentminio_put_object- Upload content as an objectminio_upload_file- Upload a local fileminio_download_file- Download object to local fileminio_remove_object- Remove an objectminio_stat_object- Get object metadataminio_presigned_url- Generate presigned download URLminio_copy_object- Copy object to another location
Installation
Using pip
pip install minio-mcpUsing uv (recommended)
uv pip install minio-mcpFrom source
git clone <repository-url>
cd minio-mcp
pip install -e .Configuration
Set the following environment variables:
export MINIO_ENDPOINT="localhost:9000"
export MINIO_ACCESS_KEY="your-access-key"
export MINIO_SECRET_KEY="your-secret-key"
export MINIO_SECURE="false" # Set to "true" for HTTPSOr create a .env file:
MINIO_ENDPOINT=localhost:9000
MINIO_ACCESS_KEY=your-access-key
MINIO_SECRET_KEY=your-secret-key
MINIO_SECURE=falseUsage with Claude Desktop
Add to your Claude Desktop configuration (~/AppData/Roaming/Claude/claude_desktop_config.json on Windows or ~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"minio": {
"command": "uv",
"args": ["--directory", "D:\\Documents\\minio-mcp", "run", "minio-mcp"],
"env": {
"MINIO_ENDPOINT": "localhost:9000",
"MINIO_ACCESS_KEY": "your-access-key",
"MINIO_SECRET_KEY": "your-secret-key",
"MINIO_SECURE": "false"
}
}
}
}Or using Python directly:
{
"mcpServers": {
"minio": {
"command": "python",
"args": ["-m", "minio_mcp.server"],
"env": {
"MINIO_ENDPOINT": "localhost:9000",
"MINIO_ACCESS_KEY": "your-access-key",
"MINIO_SECRET_KEY": "your-secret-key",
"MINIO_SECURE": "false"
}
}
}
}Tool Reference
Bucket Operations
minio_list_buckets
List all buckets in MinIO storage.
{}minio_make_bucket
Create a new bucket.
{
"bucket_name": "my-new-bucket"
}minio_remove_bucket
Remove an empty bucket.
{
"bucket_name": "my-bucket"
}minio_bucket_exists
Check if a bucket exists.
{
"bucket_name": "my-bucket"
}Object Operations
minio_list_objects
List objects in a bucket.
{
"bucket_name": "my-bucket",
"prefix": "folder/",
"recursive": true
}minio_get_object
Get object content.
{
"bucket_name": "my-bucket",
"object_name": "path/to/file.txt"
}minio_put_object
Upload content as an object.
{
"bucket_name": "my-bucket",
"object_name": "new-file.txt",
"content": "Hello, MinIO!",
"content_type": "text/plain"
}minio_upload_file
Upload a local file.
{
"bucket_name": "my-bucket",
"object_name": "uploaded-file.txt",
"file_path": "/path/to/local/file.txt"
}minio_download_file
Download object to local file.
{
"bucket_name": "my-bucket",
"object_name": "file.txt",
"file_path": "/path/to/save/file.txt"
}minio_remove_object
Remove an object.
{
"bucket_name": "my-bucket",
"object_name": "file-to-delete.txt"
}minio_stat_object
Get object metadata.
{
"bucket_name": "my-bucket",
"object_name": "file.txt"
}minio_presigned_url
Generate a presigned URL for downloading.
{
"bucket_name": "my-bucket",
"object_name": "file.txt",
"expires": 3600
}minio_copy_object
Copy an object.
{
"source_bucket": "source-bucket",
"source_object": "file.txt",
"dest_bucket": "dest-bucket",
"dest_object": "copied-file.txt"
}Development
Setup Development Environment
# Clone the repository
git clone <repository-url>
cd minio-mcp
# Create virtual environment
python -m venv .venv
source .venv/bin/activate # Linux/macOS
# or
.venv\Scripts\activate # Windows
# Install with dev dependencies
pip install -e ".[dev]"Running Tests
pytestQuick Start with MinIO
If you don't have MinIO running, you can start it with Docker:
docker run -d \
--name minio \
-p 9000:9000 \
-p 9001:9001 \
-e MINIO_ROOT_USER=minioadmin \
-e MINIO_ROOT_PASSWORD=minioadmin \
minio/minio server /data --console-address ":9001"Then configure the MCP server with:
MINIO_ENDPOINT=localhost:9000MINIO_ACCESS_KEY=minioadminMINIO_SECRET_KEY=minioadminMINIO_SECURE=false
The MinIO Console will be available at http://localhost:9001
License
MIT License
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.