Skip to main content
Glama
ucesys

MinIO Model-Context Protocol (MCP) Server

by ucesys

Protocolo de modelo-contexto MinIO (MCP)

Este proyecto implementa un servidor y un cliente de Protocolo Modelo-Contexto (MCP) para el almacenamiento de objetos MinIO. Proporciona una forma estandarizada de interactuar con MinIO.

Características

Servidor

Recursos

Expone datos de MinIO mediante Recursos . El servidor puede acceder y proporcionar:

  • Archivos de texto (detectados automáticamente según la extensión del archivo)

  • Archivos binarios (gestionados como aplicación/octet-stream)

  • Contenido del depósito (hasta 1000 objetos por depósito)

Herramientas

  • Lista de cubos

    • Devuelve una lista de todos los depósitos propiedad del remitente autenticado de la solicitud

    • Parámetros opcionales: start_after (paginación), max_buckets (limitar resultados)

  • Lista de objetos

    • Devuelve algunos o todos (hasta 1000) los objetos en un depósito con cada solicitud

    • Parámetro obligatorio: bucket_name

    • Parámetros opcionales: prefix (filtrar por prefijo), max_keys (limitar resultados)

  • Obtener objeto

    • Recupera un objeto de MinIO

    • Parámetros obligatorios: bucket_name , object_name

  • PonerObjeto

    • Sube un archivo al depósito MinIO usando el método fput

    • Parámetros obligatorios: bucket_name , object_name , file_path

Cliente

El proyecto incluye múltiples implementaciones de cliente:

  1. Cliente básico : cliente simple para interacción directa con el servidor MinIO MCP

  2. Cliente antrópico : integración con los modelos Claude de Anthropic para interacciones impulsadas por IA con MinIO

Related MCP server: S3 MCP Server

Instalación

  1. Clonar el repositorio:

git clone https://github.com/yourusername/minio-mcp.git
cd minio-mcp
  1. Instalar dependencias usando pip:

pip install -r requirements.txt

O usando uv:

uv pip install -r requirements.txt

Configuración del entorno

Cree un archivo .env en el directorio raíz con la siguiente configuración:

# MinIO Configuration
MINIO_ENDPOINT=play.min.io
MINIO_ACCESS_KEY=your_access_key
MINIO_SECRET_KEY=your_secret_key
MINIO_SECURE=true
MINIO_MAX_BUCKETS=5

# Server Configuration
SERVER_HOST=0.0.0.0
SERVER_PORT=8000

# For Anthropic Client (if using)
ANTHROPIC_API_KEY=your_anthropic_api_key

Uso

Ejecución del servidor

El servidor se puede ejecutar directamente:

python src/minio_mcp_server/server.py

Uso del cliente básico

from src.client import main
import asyncio

asyncio.run(main())

Uso del cliente antrópico

  1. Configure los servidores en src/client/servers_config.json :

{
  "mcpServers": {
    "minio_service": {
      "command": "python",
      "args": ["path/to/minio_mcp_server/server.py"]
    }
  }
}
  1. Ejecute el cliente:

python src/client/mcp_anthropic_client.py
  1. Interactuar con el asistente:

    • El asistente detectará automáticamente las herramientas disponibles.

    • Puedes hacer preguntas sobre tus datos de MinIO

    • El asistente utilizará las herramientas adecuadas para recuperar la información.

  2. Salir de la sesión:

    • Escriba quit o exit para finalizar la sesión

Integración con Claude Desktop

Puede integrar este servidor MCP con Claude Desktop:

Configuración

En MacOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json
En Windows: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "minio-mcp": {
      "command": "python",
      "args": [
        "path/to/minio-mcp/src/minio_mcp_server/server.py"
      ]
    }
  }
}

Desarrollo

Estructura del proyecto

minio-mcp/
├── src/
│   ├── client/                  # Client implementations
│   │   ├── mcp_anthropic_client.py  # Anthropic integration
│   │   └── servers_config.json  # Server configuration
│   ├── minio_mcp_server/        # MCP server implementation
│   │   ├── resources/           # Resource implementations
│   │   │   └── minio_resource.py  # MinIO resource
│   │   └── server.py            # Main server implementation
│   ├── __init__.py
│   └── client.py                # Basic client implementation
├── LICENSE
├── pyproject.toml
├── README.md
└── requirements.txt

Ejecución de pruebas

pytest

Formato de código

black src/
isort src/
flake8 src/

Depuración

Dado que los servidores MCP se ejecutan en stdio, la depuración puede ser complicada. Para una mejor experiencia de depuración, recomendamos usar el Inspector MCP:

npx @modelcontextprotocol/inspector python path/to/minio-mcp/src/minio_mcp_server/server.py

Al iniciarse, el Inspector mostrará una URL a la que podrá acceder en su navegador para comenzar a depurar.

Licencia

Este proyecto está licenciado bajo la licencia MIT: consulte el archivo de LICENCIA para obtener más detalles.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    Enables AI assistants to manage MinIO object storage through comprehensive bucket operations, file uploads/downloads, batch processing, permissions management, and URL generation. Supports both automatic and manual connection modes with flexible authentication options.
    19
    8 npm
    2
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables interaction with S3-compatible storage services like AWS S3 and Cloudflare R2, supporting bucket management, object listing, reading, uploading, and deletion operations.
    5
    8 npm
    ISC
  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables interaction with MinIO object storage through a standardized Model-Context Protocol interface. Supports listing buckets and objects, retrieving files, and uploading data to MinIO storage.
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    Provides 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.
    13
    2
    -