Açık kaynak araç

coolify-mcp

Coolify kurulumlarımızdaki projeleri yapay zekâ istemcisinden okumak ve işletmek için yazdığımız MCP sunucusu. Kendi işimiz için çıktı, her gün kullanıyoruz, MIT lisansıyla açtık.

coolify-mcp — Coolify için açık kaynak MCP sunucusu

Dört ayrı Coolify kurulumumuz var, üzerlerinde onlarca uygulama, veritabanı ve servis. Bir şeyin hangi makinede olduğunu bulmak için dört panele tek tek girip aynı kelimeyi dört arama kutusuna yazmak gerekiyordu. Logu görmek için beşinci sekme, ortam değişkeni için altıncı.

Coolify’nin REST API’si zaten vardı. Eksik olan, editörde açık duran modelin o API’yi konuşabilmesiydi. coolify-mcp bunu yapıyor: bir MCP sunucusu, bütün Coolify kurulumlarınızı ve takımlarınızı tek bağlantıdan gösteriyor. Ücretsiz, MIT lisanslı, kaynak kodu açık. Coolify projesiyle bir bağımız yok.

GitHub’da aç →

Ne soruluyor, ne dönüyor

Gün içinde gerçekten sorduğumuz şeyler

“api-gateway hangi makinede?”

Tek arama bütün bağlantılara aynı anda gider ve her satır geldiği kurulumla etiketlenir: uuid, ad, tip, durum, alan adı, proje, ortam, sunucu, son güncelleme. Coolify bir kaynak için seksen civarı alan döndürüyor; tabloda dokuzu duruyor.

“son dağıtım neden patladı?”

Uygulamanın dağıtım geçmişi listelenir, sonuncusu açılır, derleme çıktısı okunur. Sunucuya girmek ya da panelde doğru sekmeyi aramak gerekmez.

“logda ne yazıyor?”

Konteyner logu doğrudan istemciye düşer. Hata mesajını modelle birlikte okuyup ne yapılacağına aynı konuşmada karar verirsiniz.

“bu serviste hangi ortam değişkenleri var?”

Ayrı bir araçta duruyor ve Coolify tarafında ayrı bir yetki istiyor. Kaynak yapılandırması okunurken kimlik bilgisi görünümlü alanlar koşulsuz maskelenir; “göster” diye bir seçenek yok.

“şunu yeniden dağıt, sonra durumunu söyle.”

Dağıtım tetiklenir, istenirse sonuçlanana kadar beklenir. Başlatma, durdurma ve yeniden başlatma da aynı yerden yapılır.

Bağlantı modeli

Neden kurulum ve takım başına bir bağlantı

Bu bir tasarım hevesi değil, Coolify’nin jeton modelinin doğrudan sonucu.

Bir bağlantı = adres + jeton

Modelin tamamı bu. Coolify API jetonu, veritabanında oluşturulduğu anda aktif olan takıma bağlanıyor ve REST API’de takım değiştirecek bir parametre yok — ne X-Team-Id başlığı var ne de ?team= sorgusu. Başka takımın uuid’si düpedüz 404 dönüyor.

İkinci takım, ikinci jeton

Yani ikinci takım, aynı adrese bakan ikinci bağlantı demek. Sunucunun içinde ayrıca “takım” diye bir kavram tutmak bu yüzden gerekmiyor: N bağlantı, N kurulumu ve M takımı aynı biçimde kapsıyor.

Yazma işlemi tahmin etmez

Birden fazla bağlantı tanımlıysa her araca bir kurulum parametresi ekleniyor. Okumalar varsayılan bağlantıya düşebilir; yazma ve silme işlemleri açık bir kurulum adı istiyor ve varsayılanı yok. Okumada yanlış tahmin bir boşa çağrı, dağıtımda yanlış tahmin canlıda bir olay.

Tek soru, bütün kutular

Arama aracı tek başına yıldız kabul ediyor: bütün bağlantıları paralel sorguluyor ve her satırı geldiği kurulumla etiketliyor. Bir kutu cevap vermezse tablo yine geliyor; erişilemeyen bağlantı sonucun hata alanına düşüyor, cevabı komple götürmüyor.

Araç yüzeyi

15 araç, 189 işlemlik katalog

01

Günlük araçlar açıkta, gerisi katalogda

Varsayılanda 15 araç kayıtlı. Sunucu salt okunur çalışıyorsa 11, silme işlemleri açıksa 16. Coolify API’sinin geri kalanına üç adımlı bir kapıdan gidiliyor: işlemi ara, şemasını oku, çalıştır. Sebebi basit — modele yüzlerce araç tanımı vermek, hiç kullanılmayacak şemalar için her konuşmada bağlam yakmak demek. Araç sayısında yarışmıyoruz.

02

Katalog sabit bir şemadan üretiliyor

Katalog, sürüm zamanında Coolify 4.2.0 şemasından üretiliyor ve 189 işlem içeriyor: 74 okuma, 86 yazma, 29 silme, üçü de ücret doğuran altyapı sağlama olarak işaretli. Kurulumunuz katalogdan yeniyse listede olmayan işlemler bulunabilir; arama hiçbir şey bulamadığında bunu söylüyor ve baktığı şema sürümünü yazıyor.

03

Genel gövde doğrulaması bilerek gevşek

Coolify’nin OpenAPI belgesi PHP niteliklerinden üretiliyor ve yer yer yanlış. Ona sıkı sıkıya bakan bir çalıştırıcı geçerli çağrıları reddeder ve elinizde bunu aşacak yol kalmaz. Bu yüzden gövde olduğu gibi geçiyor, Coolify’nin kendi alan hataları aynen size dönüyor. Yol parametreleri sıkı doğrulanıyor; onlar URL şablonundan geliyor ve yanlış olamaz.

Günlük döngü

Bul, oku, dağıt, izle

Açıkta duran araçlar bu altı adımı kapsıyor.

  1. 01

    Bul

    Coolify uuid’leri tahmin edilebilir şeyler değil ve bir şey listelenmeden görünmüyorlar. Arama; uygulamayı, veritabanını ve servisi tek istekle getiriyor.

  2. 02

    Yapılandırmayı oku

    Derleme ayarları, alan adları, portlar, sağlık kontrolleri, git kaynağı, hangi sunucuda durduğu.

  3. 03

    Logu oku

    Konteyner logu. En sık ihtiyaç duyulan şey, panele girmenin de en sık sebebi.

  4. 04

    Ortam değişkenine bak

    Ayrı araç, ayrı yetki. Yanlış bir değişken yüzünden patlayan dağıtımların çoğu burada görülüyor.

  5. 05

    Dağıt

    Dağıtım tetikleniyor. Beklemesini isterseniz sonucu yoklayarak takip ediyor.

  6. 06

    Durumu izle

    Dağıtım kaydı, derleme çıktısıyla birlikte okunuyor. Döngü kapanıyor.

Güvenlik

Bir jetonu bir modele vermek

Coolify jetonu altyapınızı işletebilen bir anahtar. Sunucunun tasarımı büyük ölçüde bu cümlenin etrafında döndü.

Kurulum önce farkı gösterir

Kurulum komutu makinedeki MCP istemcilerini buluyor, dokunacağı her dosyanın birleşik farkını basıyor ve ancak onayladıktan sonra yazıyor. Var olan MCP sunucularını bozmuyor, JSONC yorumlarınızı koruyor, ayrıştıramadığı dosyaya yazmayı reddediyor, geri alınabiliyor.

Yazdığı şey işaretçi, kimlik bilgisi değil

İstemci yapılandırmasına giren şey çalıştırılacak komut ve en fazla bir bağlantı adı. Adres ve jeton hiçbir dosyaya yazılmıyor. O dosyalar eşitleniyor, yedekleniyor, ekran paylaşımında görünüyor; jetonun orada işi yok.

Jeton her istemciye aynı yoldan gitmez

Komut satırı istemcileri kabuk ortamınızı devralıyor. Editörler kendilerini başlatan sürecin ortamını devralıyor — macOS’ta bu çoğu zaman kabuğunuz olmuyor. Claude Desktop hiç devralmıyor; orada kayıt dosyası ve jetonu getiren bir komut gerekiyor. Hangisi sizde geçerli, doctor söylüyor.

check ve doctor

check iki soruya cevap veriyor: kuruluma erişiliyor mu, jeton çalışıyor mu. doctor yapılandırma sağlığını raporluyor ve diskte duran kimlik bilgisi arıyor: Sanctum biçimli jetonlar, düz Bearer başlıkları, kimlik bilgisi görünümlü değerler, başkasının okuyabildiği dosya izinleri. Çıkış kodu 2 demek, diskte bir jeton duruyor demek. Bulgularda gizli değerin kendisi hiç geçmiyor.

Yazma bir bayrağın, silme başka bir bayrağın arkasında

Silme aracı, ilgili bayrak açılmadıkça hiç kayıtlanmıyor — listede görünüp reddetmiyor, orada olmuyor. Bayrak kapalıyken hiçbir araç “tehlikeli” işareti taşımıyor; tehlikesiz araçları otomatik onaylayan bir istemci gerçekten tehlikesiz bir şeyi onaylamış oluyor. Kapı üç yerde tutuluyor: kayıtta, çağrı dağıtımında ve soket açılmadan HTTP istemcisinde.

Salt okunur bir tavandır

Bağlantı bazında ya da süreç genelinde açılıyor. GET olmayan her istek, jetonun yetkisi ne olursa olsun daha çıkmadan reddediliyor. Bütün bağlantılar salt okunursa yazma ve silme araçları hiç kayıtlanmıyor. Hiçbir alt ayar bu tavanı genişletemiyor.

İki taşıma

stdio ve HTTP

Kurulumun varsayılanı stdio: sunucuyu istemciniz başlatır, kullandığınız her makinede bir kopyası çalışır ve Coolify jetonu o makinelerin hepsinde durur. Tek bilgisayardan çalışıyorsanız bu yeterli.

HTTP kipinde sunucu bir kere çalışır ve bütün istemcilerinize hizmet eder. Coolify jetonu yalnızca sunucuda kalır; istemciler onunla alakası olmayan bir bearer jetonu gösterir. Bir istemci kimliğinin sızması Coolify kimliğinin sızması olmaz. İstemci jetonu zorunlu ve en az 32 karakter; yoksa sunucu açılmıyor. Varsayılanda yalnızca yerel adrese bağlanıyor ve TLS’i kendisi sonlandırmıyor — önüne bir ters vekil gerekiyor ki Coolify’de o zaten duruyor.

Sunucuyu konteyner olarak Coolify’nin kendi üzerinde çalıştırabilirsiniz. Bunun açık bir bedeli var ve saklamıyoruz: o kurulum durursa MCP sunucusu da durur, yani tam ona ihtiyacınız olan anda. İkinci bir makine işletmek istemiyorsanız çoğu zaman ödenmeye değer, ama bilerek seçin.

Yapmadıkları

Şimdi öğrenin, gecenin ikisinde değil

Komut çalıştırmaz

Coolify’nin web terminali bir websocket, REST değil. Konteyner içinde komut çalıştırmanız gerekiyorsa bu araç yardımcı olmuyor; olabiliyormuş gibi bir araç da koymadık.

API’de olmayanı uydurmaz

Bildirim API’si yok. S3 depolama yönetimi yok. Ayrı sağlık kontrolü uç noktası yok — o, uygulama güncelleme çağrısındaki on beş kadar alan. Paylaşılan ortam değişkeni yok. Takım yazma yok.

Sayfalama bize ait ve kırılgan

Coolify listeleri sayfalamıyor; diziyi bütün olarak çekip süreç içinde filtreleyip dilimliyoruz. İmleç, üretildiği filtrelerin özetini taşıdığı için başka filtreyle tekrar oynatılamıyor. Ama iki sayfa arasında bir kaynak yaratılır ya da silinirse satırlar kayıyor. Bu bir anlık görüntü değil.

Hız limiti jeton başına değil

Kova Coolify kullanıcısı başına. Bir hesaba ait beş jeton aynı hakkı paylaşıyor; aynı kullanıcının bağlantılarına açılan paralel arama da aynı kovadan içiyor.

Coolify sessizce alan düşürüyor

Güncelleme çağrılarında yirmi iki kadar alan sunucu tarafında atılıyor. Hata değil, sessiz bir boş işlem. Elimizden gelen tek şey bunu söylemek.

Bekleyen dağıtım yoklamayla izleniyor

Kuyruk cevabının şekli canlı bir kurulumda tam doğrulanmadı. Dağıtım kimliği bulunamazsa uygulamanın dağıtım geçmişine düşülüyor; bu yedek yol zaman damgasına dayanıyor ve eşzamanlı dağıtımlarda yanılabiliyor.

Alternatifler

Ne zaman başka bir şey daha doğru

Tek bir Coolify ve tek bir takımla çalışıyorsanız bu araca ihtiyacınız olmayabilir.

Coolify’nin kendi MCP uç noktası

Kurulacak bir şey yok, ayarlanacak bir şey yok, verinin durduğu yerde çalışıyor. On aracın hepsi salt okunur ve jetonun takımıyla sınırlı. Tek bir Coolify ve tek bir takımla çalışıyorsanız muhtemelen bununla yetinirsiniz; biz de öyle derdik.

@masonator/coolify-mcp

Yerleşmiş üçüncü taraf sunucu. Kırk iki civarı elle şekillendirilmiş araç var ve haklı sebeplerle popüler. Modeli süreç başına tek kurulum: üç Coolify demek üç sunucu çalıştırmak demek, hepsinde birden arama yine yapılamıyor.

Düz bir dağıtım betiği

Her seferinde aynı dört adımı yapıyorsanız bunu bir modele yaptırmak, yazıp bir kere çalıştırmaktan pahalı. Tekrarlanabilir iş betiğe ait. Bu araç, cevabını henüz bilmediğiniz sorular için.

Kimin işine yarar

Bu araç kimin için

Birden fazla Coolify işletenler

Ayrıldığımız tek yer burası. Dört kutuya bakıp bir uygulamanın hangisinde olduğunu hatırlamıyorsanız arama tek soruya iniyor.

Müşteri başına ayrı takım kuran ajanslar

Aynı kuruluma bağlı birden çok takım, birden çok adlandırılmış bağlantı demek. Hepsi aynı yerden görünüyor.

Editöründen çıkmak istemeyen geliştirici

Log, ortam değişkeni ve dağıtım durumu zaten açık olan pencereye geliyor.

Nöbetteki kişi

Gece bir dağıtım patladığında logu okumak için önce doğru paneli bulmak gerekmiyor.

Platform ekipleri

doctor makine okunur rapor üretiyor; bulgu kodları sabit ve boru hattında eşlenebiliyor. Kurulum sürüm sabitleyebiliyor.

Kendi aracını yazmak isteyenler

MIT lisanslı, kaynak kodu açık. Çatallayın, kesin, ekleyin. Bize sormanız gerekmiyor.

SSS

Sık sorulanlar

Ücretli mi?

Hayır. MIT lisanslı ve ücretsiz. Arkasına bağlanmış bir kurulum ya da destek paketi satmıyoruz; kaynak kodu GitHub’da duruyor.

Coolify ile bir bağınız var mı?

Yok. Coolify kullanıyoruz ve kendimize bir istemci yazdık, o kadar. Coollabs ile ya da Coolify projesiyle bir ortaklığımız yok, onlar tarafından onaylanmış da değiliz.

Jetonum nereye yazılıyor?

Hiçbir yapılandırma dosyasına yazılmıyor. Kurulum yalnızca işaretçi yazıyor. Jeton sunucuya ortam değişkeninden, bir parola yöneticisi komutundan ya da işletim sistemi anahtarlığından ulaşıyor. Kayıt dosyası şemasında jeton diye bir alan bulunmuyor; oraya jeton yazmak önerilmeyen bir tercih değil, doğrudan doğrulama hatası.

Hangi istemcilerde çalışıyor?

Kurulum sekiz istemci adaptörü tanıyor: Claude Code, Cursor, Codex CLI, Kimi CLI, Zed, OpenCode, Claude Desktop ve MiniMax. MiniMax doğrulanmadığı için yalnızca ekrana basıyor — o dosyada yanlış bir anahtar model yapılandırmanızı bozar.

stdio mu HTTP mi seçmeliyim?

stdio’da sunucuyu istemciniz başlatır ve Coolify jetonu kullandığınız her makinede durur. HTTP’de sunucu tek yerde çalışır, jeton orada kalır, istemciler alakasız bir bearer jetonu gösterir. Bir istemci kimliğinin sızması Coolify kimliğinin sızması olmaz. Tek bilgisayardan çalışıyorsanız stdio yeterli.

Ne gerekiyor?

Node.js 20.10 ve üzeri. Yerel bağımlılık yok; komutun her yerde çalışmasını sağlayan şey de bu. HTTP kipinde ayrıca en az 32 karakterlik bir istemci jetonu zorunlu, yoksa sunucu açılmıyor.

Bir sonraki yazılım projenize hazır mısınız?

Ekibimizle 30 dakikalık ücretsiz bir keşif görüşmesi planlayın.

Sertifikalar

Ağ ve siber güvenlik işlerini, uluslararası geçerli Cisco sertifikasyonuna sahip ekiple yürütüyoruz.

Cisco CyberOps Associate rozeti

Cisco CyberOps Associate

Veren kurum: Cisco · Sahibi: Devrim Tunçer

Güvenlik operasyon merkezi (SOC) yetkinliğini belgeleyen sertifika: güvenlik izleme, olay müdahalesi ve ağ saldırılarının analizi. Sızma tespiti, log korelasyonu ve olay sonrası müdahale gerektiren işlerde dayandığımız temel budur.

Cisco CCNA Eğitimi

süresi doldu

Cisco eğitim sertifikası · Ocak 2023'te tamamlandı

Ağ temellerini kapsar: yönlendirme, anahtarlama, IP adresleme ve ağ güvenliği. Kurumsal ağ kurulumu ile segmentasyon işlerinde kullandığımız bilgi tabanı.