RustFS MCP
RustFS MCP sunucusu, AI/LLM araçlarına S3 uyumlu nesne depolama işlemlerine kesintisiz erişim sağlayan, yüksek performanslı bir Model Context Protocol (MCP) sunucusudur. Sunucu, en yüksek performans ve güvenlik için Rust ile geliştirilmiştir ve Claude Desktop gibi yapay zeka asistanlarının standartlaştırılmış bir protokol üzerinden bulut depolama ile etkileşim kurmasını mümkün kılar.
MCP nedir?
Model Context Protocol, AI uygulamalarının harici sistemlerle güvenli ve kontrollü bağlantılar kurmasını sağlayan açık bir standarttır. Bu sunucu, AI araçları ile S3 uyumlu depolama servisleri arasında bir köprü görevi görür; dosya işlemlerine yapılandırılmış erişim sunarken güvenlik ve gözlemlenebilirliği korur.
✨ Özellikler
Desteklenen S3 işlemleri
- Kovaları listeleme: Erişilebilir tüm S3 kovalarını listeler
- Nesneleri listeleme: İsteğe bağlı önek (prefix) filtresiyle kova içeriğini gezme
- Dosya yükleme: Yerel dosyayı yükler, MIME türünü ve cache-control’ü otomatik algılar
- Nesne alma: S3’ten nesne getirir; okuma veya indirme kiplerini destekler
🔧 Kurulum
Önkoşullar
- Rust 1.88+ (kaynak koddan derleme için)
- Yapılandırılmış AWS kimlik bilgileri (ortam değişkenleri, AWS CLI veya IAM rolü)
- S3 uyumlu depolama hizmetine erişim
Kaynaktan derleme
# Depoyu klonlayın
git clone https://github.com/rustfs/rustfs.git
cd rustfs
# MCP sunucusunu derleyin
cargo build --release -p rustfs-mcp
# İkili dosya şu konumda hazır olur
./target/release/rustfs-mcp
⚙️ Yapılandırma
Ortam değişkenleri
# AWS kimlik bilgileri (zorunlu)
export AWS_ACCESS_KEY_ID=erişim_anahtarınız
export AWS_SECRET_ACCESS_KEY=gizli_anahtarınız
export AWS_REGION=us-east-1 # İsteğe bağlı, varsayılan us-east-1
# İsteğe bağlı: Özel S3 uç noktası (MinIO vb. için)
export AWS_ENDPOINT_URL=http://localhost:9000
# Günlük seviyesi (isteğe bağlı)
export RUST_LOG=info
Komut satırı seçenekleri
rustfs-mcp --help
Sunucu davranışını özelleştirmek için çeşitli seçenekler destekler:
--access-key-id
: S3 kimlik doğrulaması için AWS erişim anahtarı ID’si--secret-access-key
: S3 kimlik doğrulaması için AWS gizli anahtarı--region
: S3 işlemleri için AWS bölgesi (varsayılan: us-east-1)--endpoint-url
: Özel S3 uç noktası URL’si (MinIO, LocalStack vb.)--log-level
: Günlük seviyesi (varsayılan: rustfs_mcp_server=info)
🚀 Kullanım
Sunucuyu başlatma
# MCP sunucusunu başlatın
rustfs-mcp
# veya özel seçeneklerle
rustfs-mcp --log-level debug --region us-west-2
Sohbet istemcisi ile entegrasyon
Seçenek 1: Komut satırı argümanlarıyla
{
"mcpServers": {
"rustfs-mcp": {
"command": "/path/to/rustfs-mcp",
"args": [
"--access-key-id", "erişim_anahtarınız",
"--secret-access-key", "gizli_anahtarınız",
"--region", "us-west-2",
"--log-level", "info"
]
}
}
}
Seçenek 2: Ortam değişkenleriyle
{
"mcpServers": {
"rustfs-mcp": {
"command": "/path/to/rustfs-mcp",
"env": {
"AWS_ACCESS_KEY_ID": "erişim_anahtarınız",
"AWS_SECRET_ACCESS_KEY": "gizli_anahtarınız",
"AWS_REGION": "us-east-1"
}
}
}
}
🛠️ Kullanılabilir araçlar
MCP sunucusu, AI asistanlarının kullanabileceği aşağıdaki araçları sunar:
list_buckets
Yapılandırılmış kimlik bilgileriyle erişilebilen tüm S3 kovalarını listeler.
Parametreler: Yok
list_objects
S3 kovasındaki nesneleri listeler; isteğe bağlı önek filtresi desteklenir.
Parametreler:
bucket_name
(string): S3 kova adıprefix
(string, isteğe bağlı): Nesneleri filtrelemek için önek
upload_file
Yerel dosyayı S3’e yükler ve MIME türünü otomatik algılar.
Parametreler:
local_file_path
(string): Yerel dosya yolubucket_name
(string): Hedef S3 kovasıobject_key
(string): S3 nesne anahtarı (hedef yol)content_type
(string, isteğe bağlı): İçerik türü (sağlanmazsa otomatik)storage_class
(string, isteğe bağlı): S3 depolama sınıfıcache_control
(string, isteğe bağlı): Önbellek kontrol başlığı
get_object
S3’ten nesne getirir; iki kip vardır: içeriği doğrudan okumak veya dosyaya indirmek.
Parametreler:
bucket_name
(string): Kaynak S3 kovasıobject_key
(string): S3 nesne anahtarıversion_id
(string, isteğe bağlı): Sürümlemeli nesnenin sürüm ID’simode
(string, isteğe bağlı): İşlem kipi — "read" (varsayılan) doğrudan içerik; "download" yerel dosyaya kaydetmelocal_path
(string, isteğe bağlı): Yerel dosya yolu (kip "download" iken zorunlu)max_content_size
(number, isteğe bağlı): Okuma kipinde maksimum içerik boyutu (bayt) (varsayılan: 1MB)
Mimari
MCP sunucusu modüler bir mimari ile inşa edilmiştir:
rustfs-mcp/
├── src/
│ ├── main.rs # Giriş noktası, CLI ayrıştırma, sunucu başlatma
│ ├── server.rs # MCP sunucu uygulaması ve araç işleyicileri
│ ├── s3_client.rs # Asenkron işlemlerle S3 istemci sarmalayıcı
│ ├── config.rs # Yapılandırma yönetimi ve CLI seçenekleri
│ └── lib.rs # Kütüphane dışa aktarımları ve genel API
└── Cargo.toml # Bağımlılıklar, meta veriler ve ikili yapılandırma