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 :

  1. Basic Client - Client simple pour une interaction directe avec le serveur MinIO MCP
  2. Anthropic Client - Intégration avec les modèles Claude d'Anthropic pour des interactions assistées par ordinateur avec MinIO

Installation de MinIO

  1. Clonez le dépôt :
git clone https://github.com/yourusername/minio-mcp.git cd minio-mcp
  1. 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

  1. Configurez les serveurs dans src/client/servers_config.json:
{ "mcpServers" : { "minio_service" : {"command" : "python", "args" : ["path/to/minio_mcp_server/server.py"] } } }
  1. Exécutez le client :
python src/client/mcp_anthropic_client.py
  1. 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
  2. Quitter la session :

    • Tapez quit ou exit pour mettre fin à la session

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.

Liés dans Stockage en nuage - MCP Servers sécurisés

ServeurRésuméActions
Apache OpenDAL™Une mise en œuvre du serveur Model Context Protocol (MCP) qui fournit un accès à divers services de...Voir
Dropbox MCPUn serveur Model Context Protocol (MCP) qui s'intègre à Dropbox, permettant aux clients compatibles...Voir
Google DriveCe serveur MCP s'intègre à Google Drive pour permettre de lister, lire et rechercher des fichiers, a...Voir
Serveur OSS MCP中文版 | AnglaisVoir
BoîteLe serveur Box MCP est un projet Python qui s'intègre à l'API Box pour effectuer diverses opérations...Voir
Tencent Cloud COS MCP中文 | AnglaisVoir