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_namePará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:
Cliente básico : cliente simple para interacción directa con el servidor MinIO MCP
Cliente antrópico : integración con los modelos Claude de Anthropic para interacciones impulsadas por IA con MinIO
Related MCP server: MCP File Server
Instalación
Clonar el repositorio:
git clone https://github.com/yourusername/minio-mcp.git
cd minio-mcpInstalar dependencias usando pip:
pip install -r requirements.txtO usando uv:
uv pip install -r requirements.txtConfiguració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_keyUso
Ejecución del servidor
El servidor se puede ejecutar directamente:
python src/minio_mcp_server/server.pyUso del cliente básico
from src.client import main
import asyncio
asyncio.run(main())Uso del cliente antrópico
Configure los servidores en
src/client/servers_config.json:
{
"mcpServers": {
"minio_service": {
"command": "python",
"args": ["path/to/minio_mcp_server/server.py"]
}
}
}Ejecute el cliente:
python src/client/mcp_anthropic_client.pyInteractuar 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.
Salir de la sesión:
Escriba
quitoexitpara 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.txtEjecución de pruebas
pytestFormato 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.pyAl 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.