Vibe coding, otomasyon ve MCP
(stdy.blog)Vibe coding = işi AI'a outsource etmek
Vibe coding özünde program işini AI'a outsource etmektir.
Outsource yazılım geliştirme deneyimlerini düşününce, iyi iş verenler şunları iyi yapıyordu:
- Kendi problemimi çözmek için yapılacak işi tanımlamak
- Bunu geliştiricinin iyi anlayabileceği şekilde iletişim kurmak
- Programın iyi yapılabilmesi için kaynak sağlamak
- Ortaya çıkan programın amaçlandığı gibi işi benim yerime yapıp yapmadığını denetlemek
- Bu süreçte bilmediğim şeyleri geliştiriciden öğrenip zamanla kendim yapabilir hale gelmek
Bunu vibe coder açısından uyarlarsak:
- PRD ve user flow tanımlamak
- İyi prompt'lar ve yönergeler kullanmak (Cursor Rules vb.)
- Niyetten sapan kısımları yakalayıp otomatik testleri çalıştırmak
- Bu süreçte AI ile ping pong yaparak öğrenmek
Peki 3 ne oluyor? Bunu programın iki yönü üzerinden düşünebiliriz:
- Birincisi, program bir yerde çalıştırılmalıdır. → Çalıştırma ve dağıtım ortamını belirlemek
- İkincisi, program 'girdiyi işleyip çıktı üreten' bir kod yığınıdır. → Veri ve API sağlamak
Program çalıştırılmalıdır
- Geliştirme outsourcing'inde geliştiricinin sorumluluğu genelde kodun uygulanmasına kadardır; dağıtım ve operasyon sorumluluğu ise iş verendedir.
- Bunun yerine geliştirici, iş verenin bu programı çalıştırabilmesi için bir kılavuz sağlar
- Outsource veren biri olarak AI'a kodu hangi ortamda çalıştırıp dağıtacağını söylerseniz, bunu çok iyi yapar.
- Özellikle web tarayıcısı üzerinde çalışan kodlar için bu daha da böyledir
- Eskiden 'Markdown belgesindeki bazı sözdizimlerini regex ile kaldırmak' gibi çok basit script'leri bile geliştirici olmayan birinin çalıştırması/dağıtması kolay değildi
- Artık Claude Artifacts, Gemini Canvas gibi araçlarla kendi küçük programınızı anında yapıp çalıştırabiliyorsunuz. Başkaları da kullansın istiyorsanız Lovable üzerinde yapıp dağıtabilirsiniz; üstelik hepsi bir anda ve ücretsiz mümkün
- Vibe coding denince ille de bir 'app' yapmak gerekmez. Probleminizi çözen ve tekrar eden işleri azaltan bir programsa, bunun app, script, GPTs ya da prompt olması fark etmez
Programı daha kullanışlı hale getiren API'ler
- Ama küçük programların sınırları vardır
- Markdown remover'a ne bir DB, ne bir API, ne de bir LLM bağlıdır
- Bu yüzden metin girdisini de kullanıcı elle girer, çıktı metnini de kullanıcı elle kopyalayıp başka bir yere yapıştırır
- Diyelim ki kullanıcının amacı 'Notion'a yazdığı bir metni düzenleyip SNS'te paylaşmak' olsun?
- Girdi: Sadece Notion sayfası bağlantısını girmek
- İşleme: Alınan metni LLM'e verip SNS'e uygun şekilde özetletmek, ardından Markdown sözdizimini kaldırmak
- Çıktı: Metni gözden geçirip onaylayınca kendi SNS hesabımda otomatik paylaşılması
- Hızlı yanıt süresi ve genellikten feragat etme karşılığında, bu iş için kullanıcının harcadığı zaman ve enerjiyi ciddi biçimde azaltmış olurdu. Yani belirli bir amaç açısından daha 'kullanışlı' hale gelir
- Sonuçta bir programın kullanışlılığı, girdi/işleme/çıktı açısından kullanıcının bizzat yapmak zorunda olduğu işi ne kadar azalttığına bağlıdır
- Girdiyi otomatikleştirmek
- İşlemeyi daha karmaşık hale getirmek
- Çıktıyı otomatikleştirmek
- Genel amaçlı programlarda API üzerinden (yani başka programlara bağlanarak) girdi/çıktı otomasyonu ve daha gelişmiş işleme mümkün olur
- Girdi: Notion yetkisi alıp Notion API'sini çağırarak sayfa içeriğini getirmek
- İşleme: Notion sayfa içeriğini sistem prompt'u ile birlikte LLM API'sine verip SNS'e uygun bir yanıt almak
- Çıktı: Threads yetkisi alıp SNS API'sini çağırarak yazıyı paylaşmak
- Ancak bunu böyle kurmak, deneyimli geliştiriciler için bile çok kolay değildir. Özellikle yetkilendirme karmaşık olduğu için
- Peki bunu daha kolay yapabilir miyiz?
Zor API entegrasyonunu üstlenen otomasyon araçları ve MCP
- Zapier, Make gibi otomasyon araçlarını kullanırsanız API entegrasyonunu doğrudan kendiniz yapmak zorunda kalmazsınız
- Örnek: Notion DB'ye yeni bir öğe gelirse -> ChatGPT çalıştır -> sonra Instagram'a yükleyen bir Zap
- Normalde Instagram gönderi paylaşma API'sini çağırmak için özel bir app yapıp onay sürecinden geçmeniz gerekir
- Zapier veya Make, Instagram yükleme için gereken app'i zaten önceden hazırlamıştır; yetki alıp veri alışverişi yapan akış da tamamen uygulanmıştır. Zor izin meseleleriyle benim uğraşmam gerekmez
- Ancak bazı insanlar için böyle 'önce bu, sonra şu' akışları kurmak bile zor ve uğraştırıcı olabilir; MCP/A2A gibi şeyler, bu kişilerin tüm bunları LLM chatbot ile yapabilmesini sağlar
- Tıpkı genel bir programın API sayesinde basit mantığın ötesine geçebilmesi gibi, LLM chatbot denilen program da MCP sayesinde başka programlara bağlanarak basit(?) metin/görsel/ses çıktısının ötesinde işler yapabilir hale gelir
- Yani Claude içinde 'Notion sayfamı çek, özetle, sonra Instagram'a yükle' demek mümkün hale gelir
- Elbette bunun için uygun MCP server'larını (Notion, Instagram) MCP client'ına (Claude) bağlamak gerekir
- MCP server'ının en büyük rolü, tool aracılığıyla API'yi onun yerine çağırmaktır; Notion'un zaten resmî bir MCP server'ı var ama Instagram'ın yok
- O zaman Claude Instagram API'sini nasıl çağıracak?
- İşte burada Zapier yeniden devreye girer. Zapier veya Make'in sunduğu MCP server üzerinden Instagram'a yükleme yapılabilir
- Yani LLM chatbot'a, zaten çok sayıda entegrasyona sahip olan otomasyon araçlarını MCP ile bağlarsanız ortaya çok güçlü bir yapı çıkar
MCP'nin potansiyeli ve sınırları
- Ama buradan bakınca insan 'o zaman neden özellikle MCP kullanalım ki?' diye düşünebilir
- Çünkü bugün chatbot + MCP ile yapılabilen işlerin neredeyse tamamı otomasyon araçlarıyla da yapılabiliyor
- Buna rağmen yazar, 3 nedenden ötürü MCP'nin potansiyelinin çok büyük olduğunu düşünüyor
- Kullanışlı arayüz (her şeyi benim yerime halleden bir chatbot asistan, nihai program değil mi?)
- Hassas işlerde kullanıcı müdahalesi daha kolay
- Dosya sistemi kontrolü, tarayıcı kontrolü gibi yerel PC'de yapılması gereken işleri de otomatikleştirebilir; ayrıca resource, prompt template gibi daha fazla bilgi de sağlayabilir
- MCP kullanırken dikkat edilmesi gereken çok şey de var
- MCP'ye ne kadar çok şey devrederseniz güvenliğe de o kadar çok dikkat etmeniz gerekir. Bu yüzden yerel yerine resmî remote MCP server'ları daha güvenlidir
- LLM'e çok fazla MCP tool'u verirseniz istediğiniz tool çalışmayabilir; ayrıca tüm tool tanımları giriş token'ı olarak geçtiğinden LLM çağrısının maliyeti ve süresi de artar
- LLM'lerin doğasındaki rastlantısallığa da ticari hizmetlerde her zaman dikkat edilmelidir
- Sonuçta ister kendi programınıza API bağlayın, ister otomasyon akışı tasarlayın, ister LLM chatbot'a MCP ekleyin; yapılan iş aynıdır: 'Benim yerime bunu yap'
- Make, MCP gibi anahtar kelimeler yükseliyor diye strese girmenize gerek yok. Size rahat gelen yolla, her yaklaşımın artılarını ve eksilerini anlayarak, işinizi sizin yerinize yapacak programları kurabilirsiniz
Özet
- Vibe coding, program geliştirme işini AI'a outsource etmektir.
- İşimi iyi devraldığı sürece web app, kod snippet'i, prompt; hepsi faydalı bir program olabilir.
- Bir programın daha kullanışlı olması için girdi/çıktı otomasyonu ve gelişmiş işleme adına API bağlantısı gerekir.
- Otomasyon araçları, API bağlantısının zorluğunu sizin yerinize çözer.
- LLM chatbot denilen program da MCP bağlantısıyla daha kullanışlı hale gelebilir. Özellikle otomasyon araçlarının sunduğu MCP server'larını bağlamak güçlüdür.
- API, otomasyon, MCP'den sadece birini kullanmak zorunda değilsiniz; birlikte kullanıldıklarında daha kolay ve güçlü hale gelirler (örnek: Claude'a sadece Notion MCP bağlayıp, Zapier'de Notion to Instagram kurarak yüklemeyi otomatikleştirmek)
- Artı ve eksileri değerlendirip, size uygun yöntemle, kendi probleminizi çözen programı (AI ile birlikte) yapmayı deneyin
4 yorum
Vibe coding düzeyinde olunca buna dış kaynak kullanımı denemez. Dış kaynakta denetim proje bazında yapılır ama bugünün yapay zeka kodlama ajanlarında bundan daha küçük görev birimleri düzeyinde denetim yapmak gerekiyor.
Dış kaynak kullanımı olsaydı işi devredip benim başka işlere bakabilmem gerekirdi… ama şimdilik onlarla çok sık ilgilenmek gerekiyor. Zeki ama acemi bir junior geliştirici gibi…
Yakında… tam dış kaynak kullanımı olmasa bile küçük bir geliştirme ekibi gibi çalışabilirler mi… diye düşünüyorum. İş verip sık sık gözden geçirip düzeltmek… ama henüz o seviyede bile değiller gibi görünüyor.
Belki de bende yeterince vibe yoktur…
https://tech.kakao.com/posts/700 Bu gönderiyi gördüğümde bunun Vibe Coding için iyi bir örnek olduğunu düşünmüştüm; bağlamın benzer olduğunu düşünüyorum. Ben de yazdıklarınıza katılıyorum.
Sayenizde keyifli bir yazı okudum! Teşekkürler.
Peki ya 3? -> Bu, kaynak desteği meselesi.
Yukarıda 1, 2, 4, 5 diye numaralandırmıştım ama Markdown'da otomatik olarak 1234'e dönüştü.