3.3 KiB
Rust ile mevcut bir backend API projemin üstüne MCP Server eklemek istiyorum. Elimde çalışan bir API backend var ve bunun üzerine yeni bir MCP server katmanı kuracağız.
Önemli bilgiler:
- Proje dili: Rust
- Mevcut backend zaten çalışıyor
- MCP server, bu backend ile entegre olacak
- Aşağıdaki Cargo.toml bağımlılıklarını kullanmam gerekiyor, lütfen çözümü bunlara göre tasarla
- Ekstra gereksiz dependency ekleme, mümkün olduğunca mevcut paketlerle ilerle
- Kodun production-ready, temiz, modüler ve genişletilebilir olmasını istiyorum
Kullanılacak Cargo.toml:
[package] name = "Web" version = "0.1.0" edition = "2024"
[dependencies] async-trait = "0.1.89" axum = { version = "0.8.8", features = ["multipart"] } argon2 = "0.5.3" dotenvy = "0.15.7" image = { version = "0.25.8", default-features = false, features = ["avif", "jpeg", "png", "webp"] } jsonwebtoken = { version = "10.3.0", features = ["rust_crypto"] } sea-orm = { version = "1.1.20", features = ["sqlx-postgres", "runtime-tokio-native-tls", "macros"] } sea-orm-migration = "1.1.20" redis = { version = "1.2.0", features = ["tokio-comp"] } serde = { version = "1.0.228", features = ["derive"] } serde_json = "1.0.149" tokio = { version = "1.51.1", features = ["full"] } tower-http = { version = "0.6.8", features = ["trace"] } tracing = "0.1.44" tracing-subscriber = { version = "0.3.23", features = ["env-filter", "fmt"] } utoipa = "5.4.0" utoipa-swagger-ui = { version = "9.0.2", features = ["axum"] } uuid = { version = "1.23.0", features = ["v4", "serde"] }
[dev-dependencies] tower = { version = "0.5.3", features = ["util"] }
İstediğim şey:
- Mevcut Rust backend projemin içine MCP server mimarisi ekle.
- Axum tabanlı HTTP server ile uyumlu olsun.
- MCP tarafında tool’lar tanımlanabilsin.
- Bu tool’lar mevcut backend servislerini çağırabilsin.
- Auth gerekiyorsa JWT ile korunan endpoint’lere erişebilsin.
- Redis gerekiyorsa cache/session için kullanılabilecek bir yapı kur.
- SeaORM ile veritabanı erişimine uygun mimari oluştur.
- Kod yapısı modüler olsun:
- main.rs
- app/state
- app/routes
- app/mcp
- app/services
- app/models
- app/errors
- Bana sadece örnek kod değil, çalışır bir iskelet ver:
- gerekli dosya yapısı
- modüller arası bağlantı
- örnek MCP tool implementasyonu
- örnek request/response modeli
- örnek auth middleware entegrasyonu
- örnek backend service çağrısı
- Eğer MCP protocol tarafında HTTP/SSE/streaming yaklaşımı gerekiyorsa, bunu Axum ile nasıl yapacağımı göster.
- Kodda mümkünse:
- async/await kullan
- Result tabanlı error handling kullan
- tracing ile logging ekle
- serde ile JSON serialization yap
- uuid ile id üret
- Gerekirse eksik kalan kısımlar için TODO bırak ama mimariyi eksiksiz kur.
Benden beklediğin çıktı:
- Önce önerdiğin klasör/dosya yapısını ver
- Sonra temel main.rs ve state yapısını yaz
- Ardından MCP server integration katmanını oluştur
- Sonra örnek 1-2 MCP tool yaz
- Son olarak da backend servis katmanıyla entegrasyonu göster
Lütfen çözümleri Rust 2024 edition’a uygun yaz. Mümkün olduğunca mevcut dependency listemi kullan. Kodları birbirine bağlı, derlenebilir ve anlaşılır şekilde üret.