Protocolo Modelo-Contexto (MCP) de MinIO
Este proyecto implementa un servidor y un cliente del Protocolo Modelo-Contexto (MCP) para el almacenamiento de objetos MinIO. Proporciona una forma estandarizada de interactuar con MinIO.
Características
Servidor
Recursos
Expone datos MinIO a través de Recursos. El servidor puede acceder y proporcionar
- Archivos de texto (detectados automáticamente basándose en la extensión del archivo)
- Archivos binarios (manejados como application/octet-stream)
- Contenido de cubos (hasta 1000 objetos por cubo)
Herramientas
ListBuckets
- Devuelve una lista de todos los buckets propiedad del remitente autenticado de la solicitud
- Parámetros opcionales:
start_after
(paginación),max_buckets
(limitar resultados)
ListObjects
- Devuelve algunos o todos (hasta 1.000) los objetos de un bucket con cada solicitud
- Parámetro obligatorio:
bucket_name
- Parámetros opcionales:
prefix
(filtrar por prefijo),max_keys
(limitar resultados)
GetObject
- Recupera un objeto de MinIO
- Parámetros obligatorios:
bucket_name
,object_name
PutObject
- Sube un archivo al cubo MinIO usando el método fput
- Parámetros obligatorios:
bucket_name
,object_name
,file_path
Cliente
El proyecto incluye múltiples implementaciones de cliente:
- Basic Client - Cliente simple para la interacción directa con el servidor MCP de MinIO
- Cliente Anth ropic - Integración con los modelos Claude de Anthropic para interacciones potenciadas por IA con MinIO
Instalación
- Clone el repositorio:
git clone https://github.com/yourusername/minio-mcp.git cd minio-mcp
- Instala las 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:
# Configuración de MinIO MINIO_ENDPOINT=play.min.io MINIO_ACCESS_KEY=tu_clave_de_acceso MINIO_SECRET_KEY=tu_clave_secreta MINIO_SECURE=true MINIO_MAX_BUCKETS=5 # Configuración del servidor SERVER_HOST=0.0.0.0 SERVER_PORT=8000 # Para el cliente antrópico (si se utiliza) ANTHROPIC_API_KEY=tu_clave_antrópica_api_key
Uso
Ejecutar el servidor
El servidor puede ejecutarse 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
- Configura los servidores en
src/client/servers_config.json
:
{ "mcpServers": { "minio_service": { "command": "python", "args": ["path/to/minio_mcp_server/server.py"] } }
- Ejecutar el cliente:
python src/client/mcp_anthropic_client.py
Interactúa con el asistente:
- El asistente detectará automáticamente las herramientas disponibles
- Puede hacer preguntas sobre sus datos MinIO
- El asistente utilizará las herramientas adecuadas para recuperar la información
Salir de la sesión:
- Escriba
quit
oexit
para finalizar la sesión
- Escriba
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/ # Implementaciones cliente │ │ ├── mcp_anthropic_client.py # Integración antrópica │ │ └── servers_config.json # Server configuration │ ├── minio_mcp_server/ # MCP server implementation │ │ ├── resources/ # Resource implementations │ │ │ └── minio_resource.py # MinIO resource │ │ └── server.py # Implementación principal del servidor │ ├── __init__.py │ └── client.py # Implementación básica del cliente ├── LICENSE ├── pyproject.toml ├── README.md └── requirements.txt
Ejecución de las pruebas
pytest
Formateo de código
black src/ isort src/ flake8 src/
Depuración
Dado que los servidores MCP se ejecutan a través de stdio, la depuración puede resultar complicada. Para obtener la mejor experiencia de depuración, recomendamos utilizar 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 la depuración.
Licencia
Este proyecto está licenciado bajo la Licencia MIT - vea el archivo LICENSE para más detalles.