MCP server for MinIO object storage
## MinIO MCP Server: S3-Compatible Object Storage The **MinIO MCP Server** integrates MinIO object storage into Google Antigravity, enabling S3-compatible storage operations on self-hosted or cloud MinIO deployments directly from your development environment. ### Why MinIO MCP? - **S3 Compatible**: Use existing S3 tools and SDKs with MinIO - **Self-Hosted**: Run on-premises for data sovereignty and compliance - **High Performance**: Industry-leading throughput for AI/ML workloads - **Multi-Cloud**: Deploy consistently across any cloud or bare metal - **Open Source**: No vendor lock-in with Apache 2.0 licensed software ### Key Features #### 1. Object Operations ```python # Upload an object await mcp.put_object( bucket="data-lake", key="raw/events/2024-01-15.parquet", file_path="./events.parquet" ) # Download an object await mcp.get_object( bucket="data-lake", key="raw/events/2024-01-15.parquet", destination="./downloaded.parquet" ) # Get object as bytes data = await mcp.get_object_bytes( bucket="configs", key="app/settings.json" ) config = json.loads(data) ``` #### 2. Bucket Management ```python # Create bucket await mcp.make_bucket( bucket="ml-models", region="us-east-1" ) # List buckets buckets = await mcp.list_buckets() for bucket in buckets: print(f"Bucket: {bucket['name']}") # List objects with prefix objects = await mcp.list_objects( bucket="data-lake", prefix="raw/events/", recursive=True ) for obj in objects: print(f"{obj['key']}: {obj['size']} bytes") ``` #### 3. Presigned Operations ```python # Generate presigned GET URL url = await mcp.presigned_get_object( bucket="reports", key="monthly/january.pdf", expires=timedelta(hours=24) ) # Generate presigned PUT URL upload_url = await mcp.presigned_put_object( bucket="uploads", key="user-files/document.pdf", expires=timedelta(hours=1) ) ``` #### 4. Copy and Lifecycle ```python # Copy object between buckets await mcp.copy_object( source_bucket="staging", source_key="data.csv", dest_bucket="production", dest_key="imports/data.csv" ) # Delete objects await mcp.remove_object(bucket="temp", key="cache/old-file.tmp") # Bulk delete await mcp.remove_objects( bucket="temp", keys=["cache/file1.tmp", "cache/file2.tmp"] ) ``` ### Configuration ```json { "mcpServers": { "minio": { "command": "npx", "args": ["-y", "@anthropic/mcp-minio"], "env": { "MINIO_ENDPOINT": "minio.example.com", "MINIO_ACCESS_KEY": "your-access-key", "MINIO_SECRET_KEY": "your-secret-key", "MINIO_SECURE": "true" } } } } ``` ### Use Cases **ML Model Storage**: Store and version machine learning models with S3-compatible tools and frameworks. **Data Lake**: Build on-premises data lakes with Spark, Presto, and other analytics engines. **Development Environment**: Run local S3-compatible storage for development and testing. **Kubernetes Storage**: Provide object storage for cloud-native applications running on Kubernetes. The MinIO MCP enables S3-compatible object storage management within your development environment.
{
"mcpServers": {
"minio": {
"mcpServers": {
"minio": {
"env": {
"MINIO_ENDPOINT": "http://localhost:9000",
"MINIO_ACCESS_KEY": "YOUR_ACCESS_KEY",
"MINIO_SECRET_KEY": "YOUR_SECRET_KEY"
},
"args": [
"-y",
"minio-mcp-server"
],
"command": "npx"
}
}
}
}
}