Protocole modèle-contexte MinIO (MCP)
Ce projet met en œuvre un serveur et un client Model-Context Protocol (MCP) pour le stockage d'objets MinIO. Il fournit un moyen standardisé d'interagir avec MinIO.
Caractéristiques
Serveur
Ressources
Expose les données MinIO par le biais de ressources. Le serveur peut accéder et fournir
- Des fichiers texte (détectés automatiquement en fonction de l'extension du fichier)
- Fichiers binaires (traités en tant qu'application/octet-stream)
- Le contenu des bacs (jusqu'à 1 000 objets par bac)
Outils
ListBuckets
- Renvoie une liste de tous les buckets appartenant à l'expéditeur authentifié de la demande
- Paramètres facultatifs :
start_after
(pagination),max_buckets
(limitation des résultats)
ListObjects
- Renvoie une partie ou la totalité (jusqu'à 1 000) des objets d'un seau à chaque demande
- Paramètre obligatoire :
bucket_name
- Paramètres facultatifs :
prefix
(filtre par préfixe),max_keys
(limite les résultats)
GetObject
- Récupère un objet dans MinIO
- Paramètres requis :
bucket_name
,object_name
PutObject
- Charge un fichier dans le seau MinIO à l'aide de la méthode fput
- Paramètres requis :
bucket_name
,object_name
,file_path
Client
Le projet comprend plusieurs implémentations de clients :
- Basic Client - Client simple pour une interaction directe avec le serveur MinIO MCP
- Anthropic Client - Intégration avec les modèles Claude d'Anthropic pour des interactions assistées par ordinateur avec MinIO
Installation de MinIO
- Clonez le dépôt :
git clone https://github.com/yourusername/minio-mcp.git cd minio-mcp
- Installez les dépendances à l'aide de pip :
pip install -r requirements.txt
Ou en utilisant uv :
uv pip install -r requirements.txt
Configuration de l'environnement
Créez un fichier .env
dans le répertoire racine avec la configuration suivante :
# Configuration MinIO MINIO_ENDPOINT=play.min.io MINIO_ACCESS_KEY=votre_clé_d'accès MINIO_SECRET_KEY=votre_clé_secrète MINIO_SECURE=true MINIO_MAX_BUCKETS=5 # Configuration Serveur SERVER_HOST=0.0.0.0 SERVER_PORT=8000 # Pour le client Anthropic (si utilisé) ANTHROPIC_API_KEY=votre_clé_d'api_anthropique
Utilisation
Exécuter le serveur
Le serveur peut être lancé directement :
python src/minio_mcp_server/server.py
Utilisation du client de base
from src.client import main import asyncio asyncio.run(main())
Utilisation du client anthropique
- Configurez les serveurs dans
src/client/servers_config.json
:
{ "mcpServers" : { "minio_service" : {"command" : "python", "args" : ["path/to/minio_mcp_server/server.py"] } } }
- Exécutez le client :
python src/client/mcp_anthropic_client.py
Interagir avec l'assistant :
- L'assistant détecte automatiquement les outils disponibles
- Vous pouvez poser des questions sur vos données MinIO
- L'assistant utilisera les outils appropriés pour récupérer les informations
Quitter la session :
- Tapez
quit
ouexit
pour mettre fin à la session
- Tapez
Intégration avec Claude Desktop
Vous pouvez intégrer ce serveur MCP avec Claude Desktop :
Configuration
Sur MacOS : ~/Library/Application\ Support/Claude/claude_desktop_config.json
Sous Windows : %APPDATA%/Claude/claude_desktop_config.json
{ "mcpServers" : { "minio-mcp" : {"command" : "python", "args" : ["path/to/minio-mcp/src/minio_mcp_server/server.py" ] } } }
Développement
Structure du projet
minio-mcp/ ├── src/ │ ├── client/ # Implémentations client │ │ ├── mcp_anthropic_client.py # Intégration anthropique │ │ └── servers_config.json # Configuration du serveur │ ├── minio_mcp_server/ # Implémentation du serveur MCP │ │ ├── resources/ # Implémentations des ressources │ │ │ └── minio_resource.py # MinIO resource │ │ └── server.py # Main server implementation │ ├── __init__.py │ └── client.py # Implémentation client de base ├── LICENSE ├── pyproject.toml ├── README.md └── requirements.txt
Exécution des tests
pytest
Formatage du code
black src/ isort src/ flake8 src/
Débogage
Les serveurs MCP fonctionnant sur stdio, le débogage peut s'avérer difficile. Pour une meilleure expérience de débogage, nous recommandons d'utiliser l'inspecteur MCP :
npx @modelcontextprotocol/inspector python path/to/minio-mcp/src/minio_mcp_server/server.py
Au lancement, l'inspecteur affichera une URL à laquelle vous pourrez accéder dans votre navigateur pour commencer le débogage.
Licence
Ce projet est sous licence MIT - voir le fichier LICENSE pour plus de détails.