Bosphorus

← Bilgi bankası

Kendi GitHub anahtarınız: tek araç sunucusundan özel depolarınıza

GitHub'ın barındırdığı MCP sunucusunu kendi anahtarı olmadan bir kez kaydedin; herkes kendi özel depolarına kendi belirteciyle ulaşsın.

AraçlarKimlikGitHubÜrün üzerinde doğrulandığı tarih:

Animasyonlu şema: bir kişinin kendi değişkenini taşıyan isteğin ağ geçidinden araç sunucusuna geçişiMehmetmühendislikAyşemühendislikZeynepoperasyonaimosohbet + ajanlarAğ geçidi/api/mcp/githubanahtarekipizindeğişkenkişiye ait değer yokyalnızca bu istek için okunurMCP sunucusugithubGitHub APItek kimlik görürKASAOpenBao ya da mühürlü · kişi, sunucukayıtlı değer yokDENETİM KAYDI
  1. Adım 01

    Önce: herkes için tek anahtar

    • Ağ geçidi her çağrıya yöneticinin sunucuya kaydettiği tek kimlik bilgisini ekliyordu.
    • Ayşe, Mehmet ve Zeynep karşı tarafa aynı kimlikle ulaşıyordu.
    • Oradaki kotalar, yetkiler ve denetim kayıtları kişileri birbirinden ayırt edemiyordu.
  2. Adım 02

    Yönetici, sunucunun kabul ettiği değişkenleri tanımlar

    • Konsolun /mcp sayfasındaki Variables sekmesinde: ad, gizli mi, zorunlu mu ve nasıl iletileceği.
    • Yalnızca adlar. Yönetici burada hiç kimsenin değerini yazmaz.
    • Tanımlanmamış bir ad ne saklanır ne gönderilir. Alanlar, MCP Registry'nin server.json şemasındaki ortam değişkeni biçimini izler.
    Hat üzerindeGITHUB_API_KEY gizli · zorunlu başlık Authorization: Bearer ${value}
  3. Adım 03

    Ayşe soruyor. Ağ geçidi durduruyor.

    • Anahtar, ekip kapsamı ve izni geçiyor. Ardından zorunlu değişkenin eksik olduğu görülüyor.
    • Araç sunucusuna hiçbir istek çıkmıyor. GitHub'a hiçbir şey ulaşmıyor.
    • Araç yanıtı kişisel sayfasının bağlantısını taşıyor; MCP bağlantı istemini destekleyen bir istemci onu bir istem olarak gösteriyor. Değer sohbette hiç istenmiyor: MCP şartnamesi gizli bilgilerin bu yolla toplanmasını yasaklıyor.
    Hat üzerindeisError: true "This tool needs your own GITHUB_API_KEY … Set it once at /vault?server=github"
  4. Adım 04

    Ayşe değeri bir kez, kendi sayfasında giriyor

    • My variables (/vault), konsolla aynı girişin arkasında. Yalnızca kendi satırlarını görüyor.
    • Kurulum OpenBao çalıştırıyorsa değer kendi klasörüne, kv/users/<e-postası>/mcp/github yoluna yazılır; Ayşe onu orada kendisi açabilir. Aksi halde (kişi, sunucu, ad) üçlüsüne bağlanmış şifreli metin olarak saklanır; bir satır başka bir kişiye taşınamaz.
    • Burada bir daha gösterilmez. Sayfa bunun yerine kısa bir parmak izi gösterir; yöneticiler ve model değeri hiçbir zaman görmez. Değeri yalnızca Ayşe, yalnızca kendi OpenBao klasöründe geri okuyabilir.
    Hat üzerindekv/users/ayse.demir@corp.example/mcp/github GITHUB_API_KEY = ••••••••
  5. Adım 05

    Artık çağrı ona ait

    • Ağ geçidi değerini yalnızca bu istek için okuyor: OpenBao klasöründen ya da mühürlü satırını çözerek. Ardından yöneticinin şablonunu bir başlığa yazıyor.
    • Önbelleğe alınmıyor, modelin bağlamına hiç girmiyor.
    • Denetim satırı değişkenin adını kaydediyor. Araç değeri geri yansıtırsa yanıtın kaydedilen kopyası maskeleniyor.
    Hat üzerinderequestContext.userVars = { injected: ["GITHUB_API_KEY"] }
  6. Adım 06

    Herkes kendi anahtarıyla

    • Ayşe ve Mehmet GitHub'a kendi kimlikleriyle ulaşıyor. Zeynep hiçbir şey girmediği için kendi sayfasının bağlantısını alıyor.
    • Yönetici kaç kişinin değer girdiğini görür. Hangi değeri girdiğini asla.
    • İşten ayrılış, Variables sekmesinde tek bir silme işlemi. Yönetici bir kişinin değerlerini silebilir ama asla okuyamaz.
    Hat üzerindegithub · 3 kişiden 2'si GITHUB_API_KEY girdi
  7. Adım 07

    Üç yol, tek kasa

    • Başlık şablonu, canlı: size ait olmayan üçüncü taraf sunucular için. Onların tarafında hiçbir şey değişmiyor.
    • Mühürlü paket, canlı: kendi çalıştırdığınız sunucular için. O sunucunun adına bağlı, 60 saniye geçerli tek bir şifreli başlık.
    • Ortam köprüsü, canlı: yalnızca ortam değişkeni okuyan araçlar için. Kişi başına bir alt süreç, ortamı kasadan doldurulur.
  8. Adım 08

    Neyi korur, neyi korumaz

    • Kasanın bugün neyi koruduğu ve kalan güvenin nerede durduğu.

    Değeri asla görmeyenler

    Sohbet, modelin bağlamı, denetim kaydı, günlük akışı, metrikler, konsol yöneticileri, diğer kişiler ve değişkenin tanımlanmadığı her araç sunucusu.

    Yine de değeri okuyabilecek olan

    Platformun kendisi: değerleri gözetimsiz okur; böylece gece 03:00'teki zamanlanmış ajan çalışması da çalışır. OpenBao ile kendi hizmet hesabıyla oturum açar, saklanmış hiçbir kimlik bilgisi tutmaz ve yalnızca kişilerin mcp/ klasörlerini okuyabilir; OpenBao'nun kendi yöneticileri ise her klasöre ulaşabilir. OpenBao yoksa kasa anahtarını ve veritabanını birlikte elinde tutan. Yedek arşivleri kasayı da taşır; onları kasa gibi koruyun.

Başlıkla iletim, mühürlü paketler ve ortam köprüsü canlı; herkesin değerleri kendi OpenBao klasöründe durabilir.

Bu makale, GitHub’ın barındırdığı MCP sunucusunu kendi anahtarı olmadan, bir kez kaydeder ve herkesin kendi özel depolarına, kendi GitHub belirteciyle ulaşmasını sağlar. Aynı yöntem, her çalışanın kendi kimlik bilgisine sahip olduğu her servise uyar: bir kod barındırma servisi, bir destek talebi sistemi, bir SaaS API’si.

Çalışan ürün üzerinde 25 Eylül 2026’da uçtan uca doğrulandı. Bir kişi sohbet çalışma alanından kendi özel depolarını listeledi ve içlerindeki dosyaları okudu; denetim izi her çağrıda değişkenin adını kaydetti, belirteci ise hiçbir yerde.

Ne elde edersiniz

Başlamadan önce

Adım 1: sunucuyu kaydedin (yönetici)

Konsolun /mcp sayfasında Register a server bölümünü açın ve şunları girin:

Alan Değer
Name GitHub
URL (streamable HTTP endpoint) https://api.githubcopilot.com/mcp/x/repos/readonly
Description Your own GitHub repositories, read-only
Auth none; Secret boş bırakılır
Identity require user (signed assertion) işaretli

Ardından Register & sync düğmesine basın.

Bu adres, GitHub’ın depo araçlarını salt okunur kipte seçer. Aynı sunucu başka seçenekler de sunar:

Adres sonu Modelin elde ettiği
…/mcp/x/repos/readonly yalnızca depolar, salt okunur (burada kullanılan yalın seçim)
…/mcp/readonly GitHub’ın varsayılan araç takımları (profil, depolar, kayıtlar, çekme istekleri, kullanıcılar), salt okunur
…/mcp/x/all/readonly tüm araç takımları, salt okunur; büyüktür ve etkin her araç her turda istem tokeni harcar

/readonly ekini yalnızca kişilerin kendi belirteçleriyle yazabilmesini istiyorsanız kaldırın.

Bu ilk eşitlemenin başarısız olmasını bekleyin. GitHub, belirteç olmadan MCP el sıkışmasını bile reddeder ve bu sunucunun henüz belirteci yoktur; satır error durumunu şu iletiyle gösterir:

mcp http 401 on initialize — this server has no shared key: declare a per-person variable on the Variables tab, set your own value on /vault, then Sync tools

Bu aşamada beklenen durum budur.

Adım 2: değişkeni tanımlayın (yönetici)

/mcp sayfasının Variables sekmesinde şunu tanımlayın:

Alan Değer
Server GitHub (github)
Variable GITHUB_API_KEY
Delivery header (third-party server)
Header Authorization
Template Bearer ${value}
Required işaretli
Secret işaretli
Description Your GitHub personal access token (read-only is enough)

Tek satırda, ağ geçidinin her kişinin çağrılarında yapacağı şey:

GITHUB_API_KEY  ->  Authorization: Bearer ${value}

Required, belirtecini girmemiş bir kişinin başarısız bir çağrı yerine kendi sayfasına bağlantı veren açık bir ileti alması ve GitHub’a hiçbir şey gönderilmemesi demektir.

Adım 3: bir GitHub belirteci oluşturun (herkes)

GitHub’da Settings → Developer settings → Personal access tokens → Fine-grained tokens → Generate new token yolunu izleyin (GitHub’ın kendi yönergeleri):

İnce ayarlı bir belirteç tek bir kaynak sahibine aittir. Hem kendi özel depolarınıza hem de bir kuruluşunkilere ulaşmak için belirteci ihtiyacınız olan sahip adına oluşturun ya da repo kapsamlı klasik bir belirteç kullanın. Klasik belirteç yazabilir de; /readonly sunucu adresi yazmayı yine engeller, ama ince ayarlı salt okunur bir belirteç daha güvenli seçimdir. Bir kuruluş, ince ayarlı belirteçlerin çalışmadan önce yöneticilerince onaylanmasını şart koşabilir.

Adım 4: My variables sayfasına kaydedin (herkes)

Konsolda oturum açın ve My variables (/vault) sayfasını açın. GitHub başlığı altında belirteci GITHUB_API_KEY alanına yapıştırıp Save düğmesine basın. Sayfa kısa bir parmak iziyle onaylar. Değer bir daha hiçbir zaman gösterilmez, size bile.

Belirteci kaydetmeden araçtan bir şey isterseniz, yanıtı bu sayfaya doğrudan bir bağlantı içerir.

Adım 5: araç listesini eşitleyin (yönetici)

Adım 4’te kendi belirtecinizi kaydettikten sonra /mcp sayfasına dönün ve GitHub satırında Sync tools düğmesine basın. Keşif artık sizin belirtecinizle çalışır: durum ok olur ve araç listesi düzenleyici eklentisi ile ajanlar için önbelleğe alınır. Önbellekteki liste sizin belirtecinizin gördüğüdür; diğer herkesin çağrıları yine kendi belirtecini kullanır. Sohbet çalışma alanı bu adıma bağlı değildir, çünkü araçları her kişi adına canlı listeler.

Adım 6: kullanın

Sohbet çalışma alanında bir sohbette GitHub aracını etkinleştirin ve örneğin şunu sorun:

VS Code için aimo düzenleyici eklentisinde model GitHub araçlarını ihtiyaç duyduğunda kendisi bulur. github sunucusunu AIMO: Choose Tool Servers ile sabitlerseniz araçlar doğrudan mcp__github__<tool> adıyla yüklenir.

Bir şey eksik olduğunda

Durum Ne olur
Belirteç kaydetmediniz Araç This tool needs your own GITHUB_API_KEY … Set it once at …/vault?server=github yanıtını verir ve GitHub’a hiçbir şey ulaşmaz. MCP bağlantı istemini destekleyen bir istemci bağlantıyı bir istem olarak gösterir.
Belirtecinizin süresi doldu ya da iptal edildi GitHub Bad credentials yanıtını verir. Yeni bir belirteç oluşturup My variables sayfasındaki değeri değiştirin.
Bir depo “yok” görünüyor Belirtecinize o depo için izin verilmemiş ya da kuruluşunuz belirteci henüz onaylamamıştır.
Düzenleyici eklentisi hiç GitHub aracı göstermiyor Önbellekteki liste hiç keşfedilmemiştir. Bir yönetici kendi belirtecini kaydeder ve Sync tools düğmesine basar (adım 5).
Biri ayrılıyor Kişinin kendisi ya da Variables sekmesinde bir yönetici değerlerini siler. Yöneticiler bir kişinin değerlerini silebilir ama asla okuyamaz. Belirteci GitHub’da da iptal edin.

Tek ortak sunucu burada neden güvenli

Bu makalenin başındaki anlatım ve alındığı araç kataloğu, aynı akışı adım adım gösterir.