Files
rust_imgapi/MCP.md
Beyhan Oğur dd72c6220d first commit
2026-04-26 22:32:52 +03:00

3.3 KiB
Raw Blame History

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:

  1. Mevcut Rust backend projemin içine MCP server mimarisi ekle.
  2. Axum tabanlı HTTP server ile uyumlu olsun.
  3. MCP tarafında toollar tanımlanabilsin.
  4. Bu toollar mevcut backend servislerini çağırabilsin.
  5. Auth gerekiyorsa JWT ile korunan endpointlere erişebilsin.
  6. Redis gerekiyorsa cache/session için kullanılabilecek bir yapı kur.
  7. SeaORM ile veritabanı erişimine uygun mimari oluştur.
  8. Kod yapısı modüler olsun:
    • main.rs
    • app/state
    • app/routes
    • app/mcp
    • app/services
    • app/models
    • app/errors
  9. 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ı
  10. Eğer MCP protocol tarafında HTTP/SSE/streaming yaklaşımı gerekiyorsa, bunu Axum ile nasıl yapacağımı göster.
  11. 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
  1. 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 editiona uygun yaz. Mümkün olduğunca mevcut dependency listemi kullan. Kodları birbirine bağlı, derlenebilir ve anlaşılır şekilde üret.