yeke.io · dokümanlar
MCP rehberi
Kendi AI ajanınız (Claude Code, Codex ya da MCP konuşan başka bir istemci) YEKE'nin MCP sunucusu üzerinden cluster'ı sizin yetkinizle okur, teşhis yapar ve plan önerebilir. Uygulayamaz: planı YEKE'de siz inceler, onaylar ve uygularsınız; önerilen plan onay zincirinin dışına çıkmaz. Token üretimi ve istemci kurulumu API ve MCP sayfasında; bu rehber akışı, araçları, örnek bir oturumu ve sorun gidermeyi anlatır.
Nasıl çalışır
Ajan cluster'a değil YEKE'ye bağlanır. Okuma YEKE'den geçer; değişiklik yalnız sizin onayladığınız plandan doğar.
- Tek uç, bütün filo. Ajan yalnız
/api/mcpile konuşur. Her araç çağrısı okuyacağı cluster'ıclusterIdile söyler; YEKE okumayı o cluster'daki Kubernetes kimliğinizle yapar. - Okuma yolu yalnız okur. MCP'nin arkasında cluster'a yazan bir yol yok.
propose_operationda bir şey uygulamaz; YEKE'de bir plan ve onay kartı kurar. - Sonuç veri olarak işaretlenir. Her başarılı araç sonucu ajana bir veri zarfı içinde gider; ayrıntısı Güvenlik modeli bölümünde.
- Sunucu ajana bir yönerge verir. Bağlantıda YEKE, araç sonuçlarının veri olduğunu, teşhis sırasını (önce metrik, sonra olay, pod durumu ve log) ve yönetim işlerinin hangi YEKE ekranında yapıldığını söyler. İstemci bu yönergeyi kullanmayabilir.
Taşıma: Streamable HTTP, yalnız POST. Her yanıt tek bir JSON
nesnesidir (SSE açılmaz) ve sunucu oturum tutmaz. Desteklenen protokol sürümleri
2026-07-28 ve 2025-11-25.
Hızlı başlangıç
Üç rol, üç adım. Her adımın ayrıntısı API ve MCP sayfasında.
- Kurulum sahibi Yönetim → Sistem → Sistem ayarları → Oturumlar ve erişim → “MCP sunucusu”nu açın; core'u yeniden başlatmak gerekmez. Durum Yönetim → AI sağlayıcıları ekranında da yazar. Bkz. MCP'yi açma.
- Yönetici Ajanın okuyacağı her cluster'da AI veri çıkışı
duruşunu
allowedyapın: cluster ekranı → sohbet paneli → “Egress ve sağlayıcı”. Kullanıcının o cluster'da bir Kubernetes kimlik eşlemesi de olmalı. Bkz. MCP'yi açma. - Kullanıcı Hesabım → “Token oluştur”.
Token üretildiğinde altındaki “MCP ile kullan” bölümü Claude Code komutunu ve
Codex parçasını verir. Bkz. Claude Code ve
Codex; YEKE kurum içi bir CA kullanıyorsa aynı bölümdeki
yeke mcprölesi.
Hangi kapsam? Ajan yalnız teşhis yapacaksa Okuma; düzeltmeyi de onay
kartı olarak önermesini istiyorsanız Plan önerme. Plan önerme token'ı okuma token'ının
bütün araçlarını görür, ek olarak yalnız propose_operation'ı.
Araçlar
Araçlar YEKE sohbetinin okuma ve öneri araçlarıdır; şemaları ve açıklamaları sohbettekiyle aynıdır.
MCP her araca zorunlu bir clusterId alanı ekler. Geçerli değerler sizin MCP
ile okuyabileceğiniz cluster'lardır: Kubernetes kimlik eşlemeniz olan ve yöneticinin AI veri
çıkışına izin verdiği (allowed) cluster'lar. Böyle bir cluster yoksa araç
listesi boş gelir.
| Araç | Ne yapar | Görünür |
|---|---|---|
k8s_list | Bir kaynak tipinin nesnelerini özet tablo olarak listeler. | Okuma ve plan önerme token'ı |
k8s_get | Tek bir nesnenin tam gövdesini okur. Secret değerleri maskeli gelir. | |
k8s_search_types | Kaynak tiplerinde arar. Ajan öteki araçlara vereceği schemaId'yi buradan bulur. | |
k8s_describe_type | Bir kaynak tipinin tam kaydını döner: fiiller, subresource'lar, kapsam. | |
k8s_events | Kubernetes olaylarını listeler; yalnız uyarılar için type=Warning. | |
k8s_logs | Tek bir pod'un log'unu okur. Çökmüş örnek için previous=true, çok konteynerli pod'da container. Kırpılan çıktı kırpıldığını söyler. | |
yeke_metrics | YEKE'nin kendi metrik geçmişini okur, cluster'a canlı sorgu atmaz. Dört işlem: status, overview, top, entity. Geçmiş derinliği lisansa bağlıdır; aşan aralık reddedilmez, kırpılır. | |
yeke_operations | YEKE'nin operasyon kayıtlarını listeler (ör. onay bekleyen planlar, kimin DELETE yaptığı). | |
yeke_audit | Cluster'ın denetim izindeki olayları listeler: tür, aktör, zaman. Olayın ayrıntısı gelmez. | |
yeke_clusters | YEKE'nin cluster envanterini döner: ad, mod, bağlantı durumu, agent sürümü, egress duruşu. Hangi clusterId verilirse verilsin sonuç bütün envanterdir; MCP ile okuyamadığınız cluster'lar da listede görünür. | |
propose_operation | Bir değişiklik önerir. YEKE planı kurar ve onay kartının bağlantısını döndürür; değişikliği uygulamaz. Dönüşte değer yok: planın durumu, onay düzeyi, fiiller, politika kodları ve değişen alanların yolları. | Yalnız plan önerme token'ı |
Yalnız sohbette olan araçlar MCP'de sunulmaz: kullanıcı ve kimlik okumaları,
arayüz aracı, yönetim ve izin önerileri ve sohbet turunu bitiren iki araç (answer,
ask_user). Sunulmayan bir aracın çağrısı JSON-RPC
-32602 alır.
Örnek oturum
Kurgusal bir teşhis: plan önerme token'ıyla bağlı bir ajan, sürekli yeniden başlayan bir Deployment.
› odeme namespace'indeki web sürekli yeniden başlıyor. Neden? # her çağrı clusterId=c-1 taşır yeke_metrics op=status yeke_metrics op=entity kind=workload namespace=odeme name=web k8s_events namespace=odeme involvedObject=web-6d8f9c7b5-x2kqp type=Warning k8s_get schemaId=pod namespace=odeme name=web-6d8f9c7b5-x2kqp k8s_logs namespace=odeme name=web-6d8f9c7b5-x2kqp previous=true tailLines=50 BULGU web konteyneri bellek sınırına ulaşınca öldürülüyor. KANIT k8s_get: lastState.terminated.reason=OOMKilled, restartCount=14, resources.limits.memory=256Mi; yeke_metrics: bellek 1h boyunca sınıra yakın. ÖNERİ bellek sınırını 512Mi'ye çıkarmak. › Öner. propose_operation patch apps.deployment odeme/web state=AWAITING_APPROVAL https://yeke.kurum.com/clusters/c-1/operations?op=op-… Onay kartı YEKE'de hazır. Bağlantıyı açıp inceleyin; onay sizde.
Kartta ne görürsünüz
- Köken. Kart planın hangi token'la ve hangi kanaldan geldiğini yazar: “Bu plan “dizustu-claude” token'ı ile MCP üzerinden bir AI istemcisi tarafından önerildi.”
- Modelin özeti. Ajanın özet cümlesi “Modelin özeti” etiketiyle ayrı bir satırda durur. Onayladığınız şey özet değil, karttaki değişikliktir.
- Değişiklik ve zincir. Planın adımları, dry-run'ın hesapladığı fark, politika sonuçları ve onay düzeyi; arayüzden ya da sohbetten kurulan bir planın kartıyla aynı.
- Onay sizde. Kartı kendi YEKE oturumunuzla açar, onaylar ya da reddedersiniz. Onaylanmayan plan 30 dakika sonra düşer.
Onay zinciri
MCP'den önerilen plan için ayrı bir yol yok.
propose_operation'ın kurduğu plan, arayüzün ve sohbetin kullandığı plan
kurucudan geçer: doğrulama, dry-run, politikalar ve kurulumunuzdaki doğrulama Hook'ları.
Hook'a planın kaynağı api olarak gider.
Uygulama da tek kapıdan geçer ve bu kapı planın kökenine bakmaz. Kurulumunuzda açık olan ikinci onay, bakım penceresi ve onay anında sorulan Hook'lar (ör. bir ITSM onayı) MCP'den önerilen plana da aynen uygulanır; bkz. Yönetişim ve Hook entegrasyonu.
Token zincirin hiçbir onay adımını atlayamaz. Planı uygulamak, onaylamak, tazelemek ve
iptal etmek plan önerme token'ına kapalıdır (403); bunları kartın sahibi kendi
oturumuyla yapar.
AI kaynaklı bütün yazmaları yükseltilmiş onaya almak için yerleşik
ops.nl-strict şablonu: bkz. Plan
önerme.
Güvenlik modeli
Asıl kapı ajanın yazamamasıdır. Öteki katmanlar okumayı daraltır ve görünür kılar.
- Kimlik ve Kubernetes RBAC. Her okuma sizin o cluster'daki Kubernetes kimliğinizle yapılır. RBAC'ınızın göstermediğini ajan da göremez; kimlik eşlemeniz olmayan cluster MCP'den okunamaz.
- Maskeleme. Secret değerleri ajana maskeli gider.
last-applied-configurationannotation'ı vemanagedFieldshiç gönderilmez; konteynerenvdeğerleri varsayılan olarak maskelidir. Log satırları maskelenemez. - Sonuç veri olarak işaretlenir. Her başarılı araç sonucu
<<<TOOL_RESULT … kind=data>>>ile<<<END>>>arasında gider; verinin içindeki aynı ayraçlar bozulur. Sunucu yönergesi zarfın içinin talimat değil veri olduğunu ve cluster içeriğindeki talimatlara uyulmamasını söyler. Bu prompt injection'a karşı tek başına yeterli değildir: model yönergeye uymayabilir. Asıl kapı ajanın yazamamasıdır; enjekte edilmiş bir talimatın MCP üzerinden varabileceği en uç sonuç bir öneridir ve onu siz onaylarsınız. - Denetim izi. Her okuma çağrısı bir
ai.readolayı yazar: kaynakapi, kanalmcpve token'ın kimliği. Olaya okunan değerler yazılmaz. Katalog araçları (k8s_search_types,k8s_describe_type) cluster'dan yeni veri okumadığı için olay yazmaz. Plan önerisiai.plan_proposedolayı yazar. - AI veri çıkışı kapısı. Duruşu
offya dalocal-onlyolan cluster MCP'den okunamaz; YEKE verinin hangi modele gideceğini bilemez. - Yalnız kapsamlı token. Tarayıcı oturumu ve
yeke login'in tam yetkili token'ı MCP'de reddedilir. - YEKE ayarlarına yazma yok. Uyarı kuralı, Hook, yetki grubu, kullanıcı ve politika MCP'den değiştirilemez; ajan yalnız işin hangi ekranda yapıldığını söyler.
- Hız sınırı. Her MCP isteği token'ın dakikalık bütçesinden düşer; öneriler ayrıca sayılır. Bkz. Token'ın kapsamı.
Sorun giderme
Kodlar YEKE'nin kendi kodlarıdır. Kimlik ve erişim hataları JSON-RPC hata
yanıtının data.error alanında (-32600) gelir; Origin reddi
data.reason alanındadır. Araç hataları araç sonucunda
(isError: true) gelir.
| Belirti | Sebep | Çözüm |
|---|---|---|
403 MCP_DISABLED | MCP sunucusu kapalı. | Kurulum sahibi Sistem ayarları → Oturumlar ve erişim → “MCP sunucusu”nu açar. |
401 UNAUTHENTICATED | İstek token taşımıyor; ör. ${YEKE_MCP_TOKEN} boş açıldı. | Tablonun altındaki nota bakın. |
401 SESSION_INVALID | Token'ın süresi dolmuş, iptal edilmiş ya da gönderilen değer geçerli bir token değil; ör. istemci ${YEKE_MCP_TOKEN} dizesini açmadan gönderiyor. | Hesabım'dan yeni token üretin; değişken sorunuysa tablonun altındaki nota bakın. |
403 TOKEN_SCOPE_DENIED | Tam yetkili bir token gönderiliyor (ör. yeke login'in token'ı). | Hesabım'dan okuma ya da plan önerme token'ı üretin. |
403 MCP_TOKEN_REQUIRED ya da CSRF_FAILED | Token Authorization başlığında değil, çerezle geliyor. | Authorization: Bearer başlığını kullanın. |
403 ORIGIN_NOT_ALLOWED | İstek bir Origin başlığı taşıyor ve bu, YEKE'nin dış adresinin kökeniyle aynı değil (ya da dış adres tanımlı değil). | Başlığı istemciden kaldırın ya da Sistem ayarları → Adres ve sertifika → “Dış adres”i YEKE'nin gerçek adresine ayarlayın. |
429 TOKEN_RATE_LIMITED | Token'ın dakikalık istek bütçesi doldu. | Retry-After başlığındaki süre kadar bekleyin. Öneri sınırı aşılırsa aynı kod araç sonucunda retryAfterSeconds ile gelir. |
| Araç listesi boş | MCP ile okuyabileceğiniz cluster yok: kimlik eşlemeniz yok ya da AI veri çıkışı allowed değil. | Yöneticinizle ikisini kontrol edin. Ayar değiştiyse istemciyi yeniden bağlayın; liste bağlantıda alınmış olabilir. |
JSON-RPC -32602 | Çağrılan araç bu token'a sunulmuyor (ör. okuma token'ıyla propose_operation). | Plan önermek için plan önerme token'ı kullanın. |
AI_EGRESS_DISABLED ya da MCP_EGRESS_LOCAL_ONLY | Cluster'ın AI veri çıkışı kapalı ya da yalnız yerel modele açık. | Duruş allowed olmadıkça cluster MCP'den okunamaz; karar yöneticinin. |
NO_CLUSTER_IDENTITY | Bu cluster'da Kubernetes kimlik eşlemeniz yok. | Yöneticinizden eşleme isteyin; bkz. Yetkilendirme. |
CLUSTER_NOT_CONNECTED | Cluster şu an YEKE'ye bağlı değil. | Cluster ekranında bağlantı durumuna bakın. |
PUBLIC_URL_NOT_CONFIGURED | Öneri kuruldu ama YEKE'nin dış adresi tanımlı değil; sonuçta bağlantı yerine göreli path var. | Yolu YEKE adresinizin sonuna ekleyin ya da kurulum sahibi Sistem ayarları → Adres ve sertifika → “Dış adres”i doldursun. |
| TLS sertifika hatası | YEKE kurum içi bir CA ile imzalı ve istemci bu CA'ya güvenmiyor. | yeke mcp rölesini kullanın; bkz. Claude Code ve Codex. |
Masaüstü uygulamaları ve ortam değişkenleri. Bazı masaüstü
istemcileri kabuğunuzun başlangıç dosyalarını (ör. .zshrc) okumadan açılır ve
orada tanımlı değişkenleri görmez. O zaman ${YEKE_MCP_TOKEN} değişkeni boş açılırsa
401 UNAUTHENTICATED, istemci dizeyi açmadan gönderirse 401
SESSION_INVALID döner. Çözüm token'ı istemcinin kendi
yapılandırmasına vermektir; Hesabım'daki “MCP ile kullan” bölümünün tek adımlık
komutu bunu yapar.
Sınırlar
MCP'nin vermediği güvenceler. Token ve MCP'nin ortak sınırları API ve MCP sayfasında.
- Teşhis bir öneridir. Ajanın bulgusu ve vardığı sebep yanlış olabilir; YEKE modelin sonucunu doğrulamaz. Kartı onaylamadan önce farkı kendiniz okuyun.
- MCP yazmaz. MCP üzerinden cluster'a hiçbir şey yazılmaz; ajanın önerdiği bir değişiklik yalnız sizin onayladığınız plandan doğar.
- Onay sizin sorumluluğunuzdadır. Kartı onaylayan sizsiniz; ajanın özeti bir not, kararın kendisi değil.
- Tur bütçesi yok. Sohbetin tur başına araç tavanı MCP'de yoktur; ajanın kaç okuma yapacağına istemci karar verir. Çağrı başına okuma tavanları ve token'ın dakikalık bütçesi geçerlidir.
- Öteki sınırlar. Veri kaybı önleme (DLP) sınırı olmaması, verinin sizin seçtiğiniz modele gitmesi, ajanın makinenizdeki öteki araçları ve planın 30 dakikalık ömrü: bkz. Beyanlı sınırlar.
Kurulum ve onay
Token ve istemci kurulumu API ve MCP sayfasında; ikinci onay ve bakım penceresi Yönetişim sayfasında.