Neye erişebilir
Dürüst sınır.
Hangi araçların var olduğuna rolünüz karar verir
Sunucu sizin adınıza, etkin duruma getirdiğiniz bağlantı üzerinde çalışır. Ayrı bir servis hesabı yoktur ve kendi erişiminizden daha genişi de yoktur. Roller geldiğinden beri ROLÜNÜZDEN daha geniş bir erişim de yok. Bir istemciye verilen araç listesi, etkin çalışma alanında sahip olduğunuz izinlerden kurulur; bu yüzden Viewer rolündeki birinin istemcisi sendEmail, createRule veya sendWithTemplate araçlarını hiç listelemez.
Bu, çağrıyı reddetmekten daha güçlü bir şeydir. Listede olmayan bir araç, modelin üzerine akıl yürüttüğü bir araç değildir, bağlam yemez ve birinin adına denenip sonra özrü dilenemez. Ayrıca boş görünen bir istemcinin çoğunlukla bu sunucunun eksik bir özelliği değil, sizde olmayan bir izin olduğu anlamına gelir; whoAmI tam da bunu söylemek için vardır.
Kayıt ve çağrı iki ayrı kapıdır ve yalnızca ikincisi tutar. Liste bir kez, oturum açıldığında kurulur ve setActiveConnection o oturumu daha azını yapabileceğiniz bir posta kutusuna taşıyabilir; dolayısıyla liste yapısı gereği bayattır ve protokolün oturum ortasında bir aracı geri çekmenin bir yolu yoktur. Bu yüzden izne tabi her araç, çalışmadan önce rolünüzü GEÇERLİ bağlantıya karşı yeniden çözümler. Kayıt nezakettir; çağrı sınırdır.
Bir ret her iki yarıyı da adlandırır, örneğin Refused (missing_permission): your role in this mailbox is Viewer, which does not include “Send email”; böylece bir aracı bunu çalıştığı kişiye açıklayıp denemeyi bırakabilir, anlaşılmaz bir hatayı biri pes edene kadar yeniden denemek yerine. Bir oturum açıkken bir yönetici tarafından değiştirilen rol de aynı şekilde, hemen bir sonraki çağrıda yerini bulur.
Adresler diğer eksendir ve bunların hiçbirinden etkilenmez. Rol ne yapabileceğinizi söyler; size verilen adresler ise bunu hangi posta kutularına yapabileceğinizi söyler ve bir mesajın çıkması için ikisinin de uyuşması gerekir.
Belirtecin kendisi hâlâ kapsamsız
DEĞİŞMEYEN şey izin akışının kendisi. Bir uygulamanın aldığı belirteç, onaylarken seçtiğiniz bir alt kümeye değil, rolünüzün izin verdiği her şeye ulaşır; dolayısıyla bir istemciyi onaylamak, onu o çalışma alanında yapabildiğiniz her şey için onaylamaktır. Herhangi bir şey verilmeden önce size kimin istediği gösterilir ve Account → Connected apps sonradan onu kaldırır, tuttuğu her belirteci ve arkasındaki onayı silerek; ama “yalnızca okuma, bu uygulama için” demek yapılmadı.
Yani bir MCP istemcisinin tavanı SİZİN tavanınızdır. Bir uygulamanın yapabileceklerini daraltmak, onu bağlayan kişinin rolünü daraltmak demektir; bu da o kişinin uygulamada yapabileceklerini de daraltır. Bugünkü dürüst hâli bu ve izin başına bir kapsamın hâlâ yapılmaya değer olmasının nedeni de bu.
Sözcük dağarcığı zaten ortak: bir rolün izinleri ile bir API anahtarının kapsamları tek bir alfabeden türetilir; bir anahtarın yetkisini ikisinin kesişimi olarak hesaplanabilir kılan da budur. İzin başına bir MCP kapsamı geldiğinde aynı sözcüklerle ifade edilecek.