RustFS MCP
Connectez des assistants d’IA au stockage objet RustFS avec le serveur MCP RustFS.
Le RustFS MCP Server est un serveur Model Context Protocol (MCP) qui donne aux assistants d’IA, tels que Claude Desktop, un accès à un stockage objet compatible avec S3.
Qu’est-ce que MCP ?
Le Model Context Protocol est une norme ouverte qui permet aux applications d’IA d’établir des connexions sécurisées et contrôlées avec des systèmes externes. Ce serveur fait le lien entre les outils d’IA et les services de stockage compatibles avec S3 : il offre un accès structuré aux opérations sur les fichiers, tout en conservant la sécurité et l’observabilité.
Fonctionnalités
Opérations S3 prises en charge
- Lister les compartiments : liste tous les compartiments (buckets) S3 accessibles.
- Lister les objets : parcourt le contenu d’un compartiment, avec un filtrage facultatif par préfixe.
- Charger des fichiers : charge (upload) des fichiers locaux, avec détection automatique du type MIME et contrôle de cache.
- Obtenir des objets : récupère des objets du stockage S3, en lecture ou en téléchargement.
Installation
Les instructions de compilation peuvent être obsolètes
La crate rustfs-mcp ne fait plus partie de la branche principale actuelle de rustfs/rustfs. Les commandes de compilation ci-dessous peuvent donc échouer sur un clone récent. Consultez l’organisation GitHub RustFS pour connaître l’emplacement actuel du serveur MCP avant de compiler depuis les sources.
Prérequis
- Rust 1.75+ (pour une compilation depuis les sources)
- Identifiants AWS configurés (via des variables d’environnement, l’AWS CLI ou des rôles IAM)
- Accès à des services de stockage compatibles avec S3
Compilation depuis les sources
# Clone the repository
git clone https://github.com/rustfs/rustfs.git
cd rustfs
# Build the MCP server
cargo build --release -p rustfs-mcp
# Binary will be available at
./target/release/rustfs-mcpConfiguration
Variables d’environnement
# AWS credentials (required)
export AWS_ACCESS_KEY_ID=your_access_key
export AWS_SECRET_ACCESS_KEY=your_secret_key
export AWS_REGION=us-east-1 # optional, defaults to us-east-1
# Optional: Custom S3 endpoint (for MinIO, etc.)
export AWS_ENDPOINT_URL=http://localhost:9000
# Log level (optional)
export RUST_LOG=infoOptions de ligne de commande
rustfs-mcp --helpLe serveur propose plusieurs options de ligne de commande pour adapter son comportement :
--access-key-id: ID de clé d’accès AWS pour l’authentification S3--secret-access-key: clé secrète AWS pour l’authentification S3--region: région AWS pour les opérations S3 (valeur par défaut : us-east-1)--endpoint-url: URL de point de terminaison S3 personnalisée (pour MinIO, LocalStack, etc.)--log-level: niveau de journalisation (valeur par défaut : rustfs_mcp_server=info)
Utilisation
Démarrage du serveur
# Start the MCP server
rustfs-mcp
# Or with custom options
rustfs-mcp --log-level debug --region us-west-2Intégration avec les clients de discussion
Option 1 : arguments de ligne de commande
{
"mcpServers": {
"rustfs-mcp": {
"command": "/path/to/rustfs-mcp",
"args": [
"--access-key-id", "your_access_key",
"--secret-access-key", "your_secret_key",
"--region", "us-west-2",
"--log-level", "info"
]
}
}
}Option 2 : variables d’environnement
{
"mcpServers": {
"rustfs-mcp": {
"command": "/path/to/rustfs-mcp",
"env": {
"AWS_ACCESS_KEY_ID": "your_access_key",
"AWS_SECRET_ACCESS_KEY": "your_secret_key",
"AWS_REGION": "us-east-1"
}
}
}
}Utilisation avec Docker
RustFS MCP fournit un Dockerfile officiel que vous pouvez utiliser pour construire une image de conteneur.
# Clone RustFS repository code
git clone https://github.com/rustfs/rustfs.git
# Build Docker image
docker build -f crates/mcp/Dockerfile -t rustfs/rustfs-mcp .Une fois la construction réussie, ajoutez le serveur à la configuration MCP de votre IDE.
Configuration de MCP dans les IDE d’IA
De nombreux IDE d’IA, tels que Cursor, Windsurf et Trae, prennent en charge MCP. Dans Trae, par exemple, ajoutez le contenu suivant à la configuration MCP (MCP --> Add) :
{
"mcpServers": {
"rustfs-mcp": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"AWS_ACCESS_KEY_ID",
"-e",
"AWS_SECRET_ACCESS_KEY",
"-e",
"AWS_REGION",
"-e",
"AWS_ENDPOINT_URL",
"rustfs/rustfs-mcp"
],
"env": {
"AWS_ACCESS_KEY_ID": "rustfs_access_key",
"AWS_SECRET_ACCESS_KEY": "rustfs_secret_key",
"AWS_REGION": "us-east-1",
"AWS_ENDPOINT_URL": "rustfs_instance_url"
}
}
}
}
AWS_ACCESS_KEY_IDetAWS_SECRET_ACCESS_KEYsont des clés d’accès RustFS. Pour les créer, consultez la gestion des clés d’accès.
Si le serveur est ajouté avec succès, la page de configuration MCP liste ses outils disponibles.

Pour invoquer un outil MCP dans Trae, saisissez une invite dans la discussion. Par exemple :
Please help me list the buckets in the current rustfs instance, thank you!Trae renvoie la réponse suivante :

Trae utilise le mode Builder with MCP (générateur avec MCP) et appelle l’outil list_buckets pour lister tous les compartiments de l’instance RustFS configurée. Les autres outils fonctionnent de la même manière.
Outils disponibles
Le serveur MCP expose les outils suivants, que les assistants d’IA peuvent utiliser :
list_buckets
Liste tous les compartiments S3 accessibles avec les identifiants configurés.
Paramètres : aucun
list_objects
Liste les objets d’un compartiment S3, avec un filtrage facultatif par préfixe.
Paramètres :
bucket_name(chaîne) : nom du compartiment S3prefix(chaîne, facultatif) : préfixe pour filtrer les objets
upload_file
Charge un fichier local vers S3, avec détection automatique du type MIME.
Paramètres :
local_file_path(chaîne) : chemin du fichier localbucket_name(chaîne) : compartiment S3 cibleobject_key(chaîne) : clé d’objet S3 (chemin cible)content_type(chaîne, facultatif) : type de contenu (détecté automatiquement s’il n’est pas fourni)storage_class(chaîne, facultatif) : classe de stockage S3cache_control(chaîne, facultatif) : en-tête de contrôle de cache
get_object
Récupère des objets depuis S3 selon deux modes : lecture directe du contenu, ou téléchargement vers un fichier.
Paramètres :
bucket_name(chaîne) : compartiment S3 sourceobject_key(chaîne) : clé d’objet S3version_id(chaîne, facultatif) : ID de version pour les objets versionnésmode(chaîne, facultatif) : mode d’opération. « read » (valeur par défaut) renvoie le contenu directement ; « download » l’enregistre dans un fichier locallocal_path(chaîne, facultatif) : chemin du fichier local (obligatoire lorsque le mode est « download »)max_content_size(nombre, facultatif) : taille maximale du contenu en mode lecture, en octets (valeur par défaut : 1MB)
create_bucket
Crée un nouveau compartiment RustFS.
Paramètres :
bucket_name(chaîne) : nom du compartiment à créer.
delete_bucket
Supprime le compartiment RustFS indiqué.
Paramètres :
bucket_name(chaîne) : nom du compartiment à supprimer.
Architecture
Le serveur MCP repose sur une architecture modulaire :
rustfs-mcp/
├── src/
│ ├── main.rs # Entry point, CLI parsing and server initialization
│ ├── server.rs # MCP server implementation and tool handlers
│ ├── s3_client.rs # S3 client wrapper with async operations
│ ├── config.rs # Configuration management and CLI options
│ └── lib.rs # Library exports and public API
└── Cargo.toml # Dependencies, metadata and binary configuration