Cloud Platforms Rust ★ 369

nwiizo/tfmcp

Terraform MCP sunucusu, yapay zeka asistanlarına Terraform ortamlarını yönetmek için güç vererek konfigürasyonları okumak, planları analiz etmek, konfigürasyonları uygulamak ve Terraform state'ini yönetmek imkanı tanır.

Claude Desktop config.json'a ekle

{
  "mcpServers": {
    "nwiizo-tfmcp": {
      "command": "node",
      "args": [
        "~/.mcp/tfmcp/index.js"
      ]
    }
  }
}

tfmcp: Terraform Model Context Protocol Aracı

Trust Score

⚠️ Bu proje üretim ortamına hazır güvenlik özelliklerini içermesine rağmen hala aktif geliştirme aşamasındadır. Güvenlik sistemi güçlü koruma sağlamasına rağmen, lütfen üretim ortamlarında tüm işlemleri dikkatli bir şekilde inceleyin. ⚠️

tfmcp, Terraform'u Model Context Protocol (MCP) aracılığıyla yönetmenize yardımcı olan bir komut satırı aracıdır. LLM'lerin Terraform ortamlarınızı yönetmesine ve işletmesine olanak tanır; buna şunlar dahildir:

🎮 Demo

tfmcp'yi Claude Desktop ile çalışırken görün:

tfmcp Demo with Claude Desktop

  • Terraform konfigürasyon dosyalarını okuma
  • Terraform plan çıktılarını analiz etme
  • Terraform konfigürasyonlarını uygulama
  • Terraform state'ini yönetme
  • Terraform konfigürasyonları oluşturma ve değiştirme

🎉 En Son Yayın

tfmcp'nin en yeni sürümü (v0.1.9) artık Crates.io'da kullanılabilir! Cargo kullanarak kolayca yükleyebilirsiniz:

cargo install tfmcp

🆕 v0.1.9'daki Yenilikler

  • 📊 Plan Analizi: Risk puanlaması ve öneriler ile yapılandırılmış plan analizi
  • 🔍 State Analizi: Drift tespiti ile derin state incelemesi
  • 📁 Workspace Yönetimi: Tam terraform workspace desteği (list, show, new, select, delete)
  • 📥 İçe Aktarma Yardımcısı: Konfigürasyon oluşturma ile rehberli kaynak içe aktarma
  • ✨ Kod Biçimlendirme: terraform fmt entegrasyonu
  • 🔗 Bağımlılık Grafiği: DOT çıktısı ile terraform graph görselleştirmesi
  • 📤 Çıktı Yönetimi: terraform output erişimi
  • 🏷️ Taint/Untaint: Kaynak taint yönetimi (1.5+ için kullanımdan kaldırma uyarıları ile)
  • 🔄 State Yenileme: Açık state yenileme işlemleri
  • 📦 Provider Bilgisi: Lock dosyası ayrıştırması ile ayrıntılı sağlayıcı bilgileri
  • 🦀 Rust Edition 2024: Rust Edition 2024'e geçiş yapıldı (Rust 1.85.0+ gereklidir)

Özellikler

  • 🚀 Terraform Entegrasyonu Terraform CLI ile derin entegrasyon; işlemleri analiz etmek ve yürütmek için.

  • 📄 MCP Server Özellikleri Model Context Protocol sunucusu olarak çalışır ve AI asistanlarının Terraform'a erişmesine ve yönetmesine olanak tanır.

  • 🔬 Modül Sağlık Analizi Infrastructure as Code'a whitebox yaklaşımı; cohesion/coupling analizi, sağlık puanlaması ve yazılım mühendisliği ilkelerine dayanan yeniden düzenleme önerileri.

  • 📊 Kaynak Bağımlılık Grafiği Açık depends_on ve örtük referans bağımlılıkları dahil olmak üzere kaynak ilişkilerini görselleştirin.

  • 📦 Module Registry Entegrasyonu Terraform modüllerini kayıt defterinden arayın ve keşfedin; modül ayrıntılarını ve sürümlerini alın.

  • 🔐 Kurumsal Güvenlik Üretim ortamına hazır güvenlik kontrolleri; konfigüre edilebilir ilkeler, denetim günlüğü ve erişim kısıtlamaları.

  • 📊 Gelişmiş Analiz En iyi uygulama önerileri ve güvenlik kontrolleri ile ayrıntılı Terraform konfigürasyonu analizi.

  • 📋 Kılavuz Uygunluğu (v0.1.8) Future Architect Terraform yönergeleri entegrasyonu; uygunluk puanlaması, gizli tespiti ve değişken kalitesi kontrolleri.

  • ⚡️ Yıldırım Hızı Rust ekosistemi tarafından desteklenen yüksek hızlı işleme; optimize edilmiş ayrıştırma ve önbelleğe alma.

  • 🛠️ Otomatik Kurulum Gerektiğinde otomatik olarak örnek Terraform projeleri oluşturur; yeni kullanıcılar için bile sorunsuz işlemi sağlar.

  • 🐳 Docker Desteği Tüm bağımlılıkları önceden yüklenmiş containerize ortamda tfmcp'yi çalıştırın.

Kurulum

Kaynaktan

# Depoyu klonlayın
git clone https://github.com/nwiizo/tfmcp
cd tfmcp

# İnşa edin ve kurun
cargo install --path .

Crates.io'dan

cargo install tfmcp

Docker Kullanarak

# Depoyu klonlayın
git clone https://github.com/nwiizo/tfmcp
cd tfmcp

# Docker imajını oluşturun
docker build -t tfmcp .

# Konteyneri çalıştırın
docker run -it tfmcp

Gereksinimler

  • Rust (edition 2021)
  • PATH'de kurulu ve erişilebilir Terraform CLI
  • AI asistan entegrasyonu için Claude Desktop
  • Containerized dağıtım için Docker (isteğe bağlı)

Kullanım

$ tfmcp --help
✨ A CLI tool to manage Terraform configurations and operate Terraform through the Model Context Protocol (MCP).

Usage: tfmcp [OPTIONS] [COMMAND]

Commands:
  mcp       Launch tfmcp as an MCP server
  analyze   Analyze Terraform configurations
  help      Print this message or the help of the given subcommand(s)

Options:
  -c, --config <PATH>    Path to the configuration file
  -d, --dir <PATH>       Terraform project directory
  -V, --version          Print version
  -h, --help             Print help

Docker Kullanarak

Docker kullanırken tfmcp komutlarını şu şekilde çalıştırabilirsiniz:

# MCP sunucusu olarak çalıştırın (varsayılan)
docker run -it tfmcp

# Belirli komut ve seçenekler ile çalıştırın
docker run -it tfmcp analyze --dir /app/example

# Terraform proje dizininizi monte edin
docker run -it -v /path/to/your/terraform:/app/terraform tfmcp --dir /app/terraform

# Ortam değişkenlerini ayarlayın
docker run -it -e TFMCP_LOG_LEVEL=debug tfmcp

Claude Desktop ile Entegrasyon

tfmcp'yi Claude Desktop ile kullanmak için:

  1. Henüz yapmadıysanız, tfmcp'yi kurun:

    cargo install tfmcp
    

    Alternatif olarak, Docker'ı kullanabilirsiniz:

    docker build -t tfmcp .
    
  2. Kurulu tfmcp yürütülebilir dosyasının yolunu bulun:

    which tfmcp
    
  3. ~/Library/Application\ Support/Claude/claude_desktop_config.json dosyasına aşağıdaki konfigürasyonu ekleyin:

{
  "mcpServers": {
    "tfmcp": {
      "command": "/path/to/your/tfmcp",
      "args": ["mcp"],
      "env": {
        "HOME": "/Users/yourusername",
        "PATH": "/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin",
        "TERRAFORM_DIR": "/path/to/your/terraform/project"
      }
    }
  }
}

Claude Desktop ile Docker kullanıyorsanız, konfigürasyonu şu şekilde ayarlayabilirsiniz:

{
  "mcpServers": {
    "tfmcp": {
      "command": "docker",
      "args": ["run", "--rm", "-v", "/path/to/your/terraform:/app/terraform", "tfmcp", "mcp"],
      "env": {
        "TERRAFORM_DIR": "/app/terraform"
      }
    }
  }
}
  1. Claude Desktop'ı yeniden başlatın ve tfmcp aracını etkinleştirin.

  2. tfmcp, bir proje bulunamazsa ~/terraform dizininde otomatik olarak örnek bir Terraform projesi oluşturur; bu da Claude'un hemen Terraform ile çalışmaya başlamasını sağlar. Örnek proje, bu deponun example/demo dizinine dahil edilen örneklere dayalıdır.

MCP Tools

tfmcp, AI asistanları için 31 MCP aracı sağlar:

Temel Terraform İşlemleri

Tool Açıklama
init_terraform Terraform çalışma dizinini başlat
get_terraform_plan Execution plan oluştur ve göster
analyze_plan YENİ Risk puanlaması ve öneriler ile plan analizi
apply_terraform Terraform konfigürasyonunu uygula
destroy_terraform Terraform tarafından yönetilen altyapıyı yok et
validate_terraform Konfigürasyon söz dizimini doğrula
validate_terraform_detailed Yönergeleri ile ayrıntılı doğrulama
get_terraform_state Geçerli state'i göster
analyze_state YENİ Drift tespiti ile state analizi
list_terraform_resources Yönetilen tüm kaynakları listele
set_terraform_directory Etkin proje dizinini değiştir

Workspace & State (v0.1.9)

Tool Açıklama
terraform_workspace YENİ Workspaces'i yönet (list, show, new, select, delete)
terraform_import YENİ Mevcut kaynakları içe aktar
terraform_taint YENİ Kaynakları taint/untaint et
terraform_refresh YENİ State'i yenile

Kod & Çıktı (v0.1.9)

Tool Açıklama
terraform_fmt YENİ Kodu biçimlendir
terraform_graph YENİ Bağımlılık grafiği oluştur
terraform_output YENİ Çıktı değerlerini al
terraform_providers YENİ Lock dosyası ile sağlayıcı bilgisi al

Analiz & Güvenlik

Tool Açıklama
analyze_terraform Konfigürasyonu analiz et
analyze_module_health Cohesion/coupling metrikleri ile modül sağlığı
get_resource_dependency_graph Kaynak bağımlılıkları görselleştirmesi
suggest_module_refactoring Yeniden düzenleme önerileri
get_security_status Gizli tespiti ile güvenlik taraması

Registry

Tool Açıklama
search_terraform_providers Sağlayıcıları ara
get_provider_info Sağlayıcı ayrıntıları
get_provider_docs Sağlayıcı belgeleri
search_terraform_modules Modülleri ara
get_module_details Modül ayrıntıları
get_latest_module_version En son modül sürümü
get_latest_provider_version En son sağlayıcı sürümü

Günlükler ve Sorun Giderme

tfmcp server günlükleri şu adreste bulunur:

~/Library/Logs/Claude/mcp-server-tfmcp.log

Sık karşılaşılan sorunlar ve çözümleri:

  • Claude sunucuya bağlanamıyor: Yapılandırmanızda tfmcp yürütülebilir dosyasının yolunun doğru olduğundan emin olun
  • Terraform proje sorunları: tfmcp, hiçbiri bulunamazsa otomatik olarak örnek bir Terraform projesi oluşturur
  • Method not found hataları: MCP protokolü desteği resources/list ve prompts/list yöntemlerini içerir
  • Docker sorunları: Docker kullanıyorsanız, konteynerinizin uygun volume mount'ları ve izinleri olduğundan emin olun

Ortam Değişkenleri

Temel Konfigürasyon

  • TERRAFORM_DIR: Özel bir Terraform proje dizini belirtmek için bunu ayarlayın. Ayarlanmamışsa, tfmcp komut satırı bağımsız değişkenleri, konfigürasyon dosyaları tarafından sağlanan dizini kullanır veya ~/terraform dizinine geri döner. set_terraform_directory aracını kullanarak proje dizinini runtime'da da değiştirebilirsiniz.
  • TFMCP_LOG_LEVEL: Günlük ayrıntılığını kontrol etmek için debug, info, warn veya error olarak ayarlayın.
  • TFMCP_DEMO_MODE: Ek güvenlik özellikleri ile demo modunu etkinleştirmek için true olarak ayarlayın.

Güvenlik Konfigürasyonu

  • TFMCP_ALLOW_DANGEROUS_OPS: Apply/destroy işlemlerini etkinleştirmek için true olarak ayarlayın (varsayılan: false)
  • TFMCP_ALLOW_AUTO_APPROVE: Tehlikeli işlemler için otomatik onayla etkinleştirmek için true olarak ayarlayın (varsayılan: false)
  • TFMCP_MAX_RESOURCES: Yönetilebilecek kaynakların maksimum sayısını ayarlayın (varsayılan: 50)
  • TFMCP_AUDIT_ENABLED: Denetim günlüğünü devre dışı bırakmak için false olarak ayarlayın (varsayılan: true)
  • TFMCP_AUDIT_LOG_FILE: Denetim günlük dosyası için özel yol (varsayılan: ~/.tfmcp/audit.log)
  • TFMCP_AUDIT_LOG_SENSITIVE: Denetim günlüklerine hassas bilgileri dahil etmek için true olarak ayarlayın (varsayılan: false)

Güvenlik Konuları

tfmcp, üretim kullanımı için tasarlanan kapsamlı güvenlik özelliklerini içerir:

🔒 Yerleşik Güvenlik Özellikleri

  • Erişim Kontrolleri: Üretim/hassas dosya desenleri otomatik olarak engellenir
  • İşlem Kısıtlamaları: Tehlikeli işlemler (apply/destroy) varsayılan olarak devre dışı bırakılmıştır
  • Kaynak Sınırlamaları: Konfigüre edilebilir maksimum kaynak sayısı koruması
  • Denetim Günlüğü: Zaman damgaları ve kullanıcı tanımlaması ile eksiksiz işlem izleme
  • Dizin Doğrulaması: Proje dizinleri için güvenlik ilkesi uygulanması

🛡️ Güvenlik En İyi Uygulamaları

  • Varsayılan Güvenlik: Apply/destroy işlemleri varsayılan olarak devre dışı bırakılmıştır - gerektiğinde açıkça etkinleştirin
  • Planları Gözden Geçirin: Özellikle AI tarafından oluşturulan Terraform planlarını uygulamadan önce her zaman gözden geçirin
  • IAM Sınırları: Bulut ortamlarında uygun IAM izinlerini ve rol sınırlarını kullanın
  • Denetim Monotorü: ~/.tfmcp/audit.log konumunda denetim günlüklerini düzenli olarak gözden geçirin
  • Dosya Desenleri: prod*, production* ve secret* desenleri erişimine karşı yerleşik koruma
  • Docker Güvenliği: Konteynerleri kullanırken, volume mount'ları ve maruz kalan verileri dikkatle değerlendirin

⚙️ Üretim Konfigürasyonu

# Önerilen üretim ayarları
export TFMCP_ALLOW_DANGEROUS_OPS=false    # Güvenlik için devre dışı tutun
export TFMCP_ALLOW_AUTO_APPROVE=false     # Manual onay iste
export TFMCP_MAX_RESOURCES=10             # Kaynak kapsamını sınırla
export TFMCP_AUDIT_ENABLED=true           # Denetim günlüğünü etkinleştir
export TFMCP_AUDIT_LOG_SENSITIVE=false    # Hassas verileri günlüğe yazma

Katkı Sağlamak

Katkılar memnuniyetle karşılanır! Lütfen bir Pull Request göndermekten çekinmeyin.

  1. Depoyu fork edin
  2. Özellik dalınızı oluşturun (git checkout -b feature/amazing-feature)
  3. Commit etmeden önce kalite kontrolleri çalıştırın:
    cargo fmt --all
    cargo clippy --all-targets --all-features
    cargo test --all-features
    
  4. Değişikliklerinizi commit edin (git commit -m 'Add some amazing feature')
  5. Dalına push edin (git push origin feature/amazing-feature)
  6. Bir Pull Request açın

Yayın Süreci

Yayınlar el ile yapılır (otomatik CI yayını devre dışı bırakılmıştır):

  1. Cargo.toml dosyasında sürümü güncelleyin
  2. GitHub yayını oluşturun: gh release create v0.1.x --title "v0.1.x - Title" --notes "Release notes"
  3. crates.io'ye yayınlayın: cargo publish

Yol Haritası

tfmcp'nin planlanmış iyileştirmeleri ve gelecek özellikleri:

Tamamlanan

  • [x] Temel Terraform Entegrasyonu
    Terraform CLI ile işlemleri analiz etmek ve yürütmek için temel entegrasyon.

  • [x] MCP Server Uygulaması
    AI asistanlarının Terraform'a erişmesi ve yönetmesi için Model Context Protocol sunucusunun ilk uygulanması.

  • [x] Otomatik Proje Oluşturma
    Gerektiğinde otomatik olarak örnek Terraform projeleri oluşturma işlevi eklendi.

  • [x] Claude Desktop Entegrasyonu
    Claude Desktop ile sorunsuz entegrasyon desteği.

  • [x] Temel MCP Yöntemleri
    resources/list ve prompts/list dahil olmak üzere temel MCP yöntemlerinin uygulanması.

  • [x] Hata İşleme İyileştirmeleri
    Güçlü işlem için daha iyi hata işleme ve kurtarma mekanizmaları.

  • [x] Dinamik Proje Dizini Değiştirme
    Hizmeti yeniden başlatmadan etkin Terraform proje dizinini değiştirme yeteneği eklendi.

  • [x] Crates.io Yayını
    Cargo aracılığıyla kolay kurulum için paket Crates.io'ya yayınlandı.

  • [x] Docker Desteği
    Daha kolay dağıtım ve platformlar arası uyumluluk için containerization desteği eklendi.

  • [x] Güvenlik Geliştirmeleri Konfigüre edilebilir ilkeler, denetim günlüğü, erişim kontrolleri ve üretim ortamına hazır güvenlik özellikleri ile kapsamlı güvenlik sistemi.

  • [x] Modül Sağlık Analizi (v0.1.6) Cohesion/coupling metrikleri, sağlık puanlaması ve yeniden düzenleme önerileri ile IaC'ye whitebox yaklaşımı.

  • [x] Kaynak Bağımlılık Grafiği (v0.1.6) Açık ve örtük bağımlılıklar dahil olmak üzere kaynak ilişkilerinin görselleştirmesi.

  • [x] Module Registry Entegrasyonu (v0.1.6) Terraform modüllerini kayıt defterinden arayın ve keşfedin.

  • [x] Kapsamlı Test Çerçevesi Gerçek Terraform konfigürasyonları ile entegrasyon testleri dahil olmak üzere 85+ test.

  • [x] RMCP SDK Geçişi (v0.1.8) Daha iyi MCP uyumluluğu için resmi RMCP SDK'ya ve uygun tool ek açıklamalarına geçiş yapılmıştır.

  • [x] Future Architect Yönergeleri (v0.1.8) Terraform kodlama standartları uygunluk kontrolleri; gizli tespiti ve değişken kalitesi doğrulaması.

Devam Ediyor

  • [ ] Çok Ortam Desteği Birden fazla Terraform ortamı, workspace'i ve modülünü yönetme desteği ekleyin.

Planlanmış

  • [ ] Genişletilmiş MCP Protokolü Desteği AI asistanları ile daha zengin entegrasyon için ek MCP yöntemleri ve yeteneklerini uygulayın.

  • [ ] Performans Optimizasyonu
    Büyük Terraform projeleri için kaynak kullanımını ve yanıt sürelerini optimize edin.

  • [ ] Maliyet Tahmini
    Terraform planları için maliyet tahminleri sağlamak üzere bulut sağlayıcı fiyatlandırma API'lerini entegre edin.

  • [ ] İnteraktif TUI
    Yerel kullanım ve hata ayıklama için daha kolay terminal tabanlı bir kullanıcı arayüzü geliştirin.

  • [ ] Diğer AI Platformları ile Entegrasyon
    Claude'un ötesinde diğer AI asistanları ve platformlarını destekleyin.

  • [ ] Plugin Sistemi
    Temel işlevselliğin genişletilmesine izin vermek için bir plugin mimarisi geliştirin.

Lisans

Bu proje MIT Lisansı altında lisanslanmıştır - ayrıntılar için LICENSE dosyasına bakın.

Benzer MCP sunucuları

Daha fazla: Cloud Platforms →