Edgegap
resmiKodlama aracınızdan çok oyunculu oyun sunucuları dağıtın. Bir Unity, Unreal veya Godot özel sunucusunu konteyner imajından bağlı oyunculara taşıyan on araç.
Edgegap MCP ile neler yapabilirsiniz?
- Bir konteyner imajından oyun sunucusu dağıt — Asistanın, CPU, bellek ve port ayarlarıyla konteyner imajınızı kaydetmesini ve ardından belirli oyuncuların yakınında başlatmasını isteyin.
- Dağıtım durumunu ve bağlantı bilgilerini takip et — Asistanın, dağıtımınız hazır olana kadar yoklamasını ve bağlantı adresini döndürmesini sağlayın veya çalışan bir örnek için durumu ve günlükleri kontrol edin.
- Uygulama sürümlerini yönet — Asistandan mevcut uygulamaları ve sürümleri listelemesini isteyin veya çalışan bir sürümün ayarlarından yeni bir sürüm oluşturarak tekrarı önleyin.
- Dağıtımları sorunsuz bir şekilde durdur — Asistana, istek kimliğine göre belirli bir dağıtımı sonlandırmasını talimat verin; zorla kapatmak yerine temiz bir kapanış sinyali göndersin.
- Başıboş sunucuları bul ve temizle — Asistandan önceki oturumlardaki tüm dağıtımları listelemesini isteyin, böylece kullanılmayan örnekleri tanımlayıp durdurabilirsiniz.
Barındırılan MCP Sunucusu
npx add-mcp 'https://mcp.edgegap.dev/mcp'Claude Code, Codex, Cursor ve daha fazlasına kurulur
Dokümantasyon
edgegap-mcp
Edgegap için bir MCP sunucusu; kodlama ajanının bir geliştiriciyi "bir oyun sunucusu konteynerim var" noktasından "oyuncular ona bağlandı" noktasına, geliştiricinin API referansını okumasına gerek kalmadan taşımasını sağlar.
Özenle seçilmiş on araç. OpenAPI spesifikasyonundan üretilmedi — nedenini görmek için Kapsam bölümüne bakın.
Kurulum
Çalıştırmanın iki yolu var. Token'ınızın nereye gittiğini ne kadar önemsediğinize göre seçim yapın — bkz. Token'ınız nereye gider.
Uzak uç nokta
Edgegap tarafından bir Cloudflare Worker olarak barındırılır. Kurulacak bir şey yok.
{
"mcpServers": {
"edgegap": {
"type": "http",
"url": "https://mcp.edgegap.dev/mcp",
"headers": { "Authorization": "token YOUR_API_TOKEN" }
}
}
}
Ayrıca claude.ai'de özel bir bağlayıcı olarak da çalışır: https://mcp.edgegap.dev/mcp ekleyin ve aynı token'ı sağlayın.
Yerel
Kendi makinenizde, editörünüz tarafından başlatılarak çalışır. MCP istemci yapılandırmanızda tek satır, klonlanacak veya derlenecek bir şey yok.
{
"mcpServers": {
"edgegap": {
"command": "npx",
"args": ["-y", "@edgegap/mcp"]
}
}
}
Claude Code, Cursor, Codex ve VS Code'da çalışır. Üretimde bir sürümü sabitleyin (@edgegap/mcp@0.1.5) ve en son sürümde gezinmeyin.
Resmi MCP kayıt defterinde dev.edgegap/mcp olarak kayıtlıdır.
Node sürümü: yerel sunucu Node 18+ gerektirir. Cloudflare Worker'ın kendi kopyanızı dağıtmak Node 22+ gerektirir, çünkü
wranglerbunu gerektirir.
Token'ınız nereye gider
Bu, moda göre değişir ve fark, her iki modun da var olma nedenidir.
Yerel. Sunucu, kendi bilgisayarınızda bir işlem olarak çalışır. İlk araç çağrısı sizden bir token ister, neyi yetkilendirdiğini gösterir ve kabul etmeden önce açık bir onay gerektirir. Token'ın daha sonra nerede yaşadığı, ayrıntılı olarak:
- editör oturumunuzun ömrü boyunca o işlemin belleğindeki bir değişken
Listenin tamamı bu. Diskte değil. Yapılandırma dosyasında değil. Günlüklerde değil. Herhangi bir Edgegap sunucusunda değil — Edgegap'a gönderilen tek şey, curl çalıştırmışsınız gibi, API çağrısının kendisidir. Editörünüzü kapatmak bu sunucunun erişimini tamamen iptal eder.
Uzak. Token'ınız her istekte mcp.edgegap.dev adresine gönderilir ve oradan Edgegap API'sine iletilir. Edgegap'ın işlettiği altyapıdan geçer. Worker, token'ı isteğin ömrü boyunca tutar ve kalıcı hale getirmez, ancak bu "saklamıyoruz" iddiasıdır, "asla görmüyoruz" iddiası değildir. İkisi farklıdır ve yalnızca yerel mod ikincisini mümkün kılar.
https://app.edgegap.com/user-settings?tab=tokens adresinde bir token oluşturun.
Yerel modda, EDGEGAP_API_TOKEN ayarlamak, CI ve istemleri gösteremeyen istemciler için istemden önceliklidir. Token'ı komut satırı bağımsız değişkeni olarak iletmeyin — bağımsız değişkenler diğer işlemlere ps aracılığıyla görünür ve sunucu bir tane algılarsa uyarır.
Hangisini kullanmalı. İlk deneme, bir demo veya kurulum sürtünmesinin gözetimden daha önemli olduğu denetimli bir oturum için uzak. Gözetimsiz her şey, içinde canlı bir oyun olan bir kuruluştaki her şey ve zorunda olmadığınız güveni genişletmek istemediğiniz her şey için yerel. Aşağıda açıklanan güvenlik önlemleri yalnızca yerel modda mevcuttur.
Bir ajanı bağlamadan önce bunu okuyun
Edgegap API token'ı kapsamlandırılamaz. Tek bir token, tüm uygulamaları, tüm sürümleri, çalışan tüm dağıtımları ve tüm kuruluş genelindeki kullanımınızı yetkilendirir. Yalnızca dağıtım token'ı veya uygulama başına token yoktur.
Dikkat edilmesi gereken sonuçlar:
- Bu token'ı tutan bir ajan, yalnızca oluşturduğu test dağıtımlarını değil, üretim dağıtımlarını da durdurabilir.
- Ajana ulaşan istem sızıntısı — bir depo dosyasından, bir sorundan, getirilen bir sayfadan — token'a da ulaşır.
- Ajanın günlüğe kaydettiği, yankıladığı veya bir model sağlayıcısına gönderdiği her şey, token'ın son bulabileceği bir yerdir. Bu sunucu bunu günlüğe kaydetmez, ancak ajanın geri kalanının ne yaptığını kontrol edemez.
- Uzak uç noktada, aynı kapsamlandırılmamış token her çağrıda ayrıca Edgegap'ın worker'ı tarafından işlenir.
Önerilen kurulum, azalan dikkat sırasına göre:
| Durum | Kurulum |
|---|---|
| Gözetimsiz veya otonom ajan | Yerel mod. Ayrı üretim dışı kuruluş, artı EDGEGAP_READ_ONLY=1 |
| Denetimli ajan, kuruluşta canlı oyun | Yerel mod. Üzerinde çalışılan uygulamayla sınırlı EDGEGAP_APP_ALLOWLIST, artı EDGEGAP_MAX_DURATION_MINUTES. Önce İzin listesinin kapsamı bölümünü okuyun — zaten çalışan dağıtımlar kapsam dışıdır |
| Yalnız çalışan geliştirici, üretim iş yükü yok | Her iki mod. Varsayılanlar yeterlidir; bitince token'ı iptal edin |
İzin listesi ve salt okunur bayrağı yerel sunucuda uygulanır; bu, hata yapan bir ajana karşı koruma sağladıkları, API'yi doğrudan çağırmak için ele geçirilmiş bir ajana karşı koruma sağlamadıkları anlamına gelir. Patlama yarıçapını daraltırlar; ortadan kaldırmazlar.
İzin listesinin kapsamı
EDGEGAP_APP_ALLOWLIST, uygulama adı alan dört araç tarafından uygulanır: edgegap_create_app, edgegap_list_app_versions, edgegap_create_app_version ve edgegap_deploy.
request_id anahtarlı beş araç tarafından uygulanmaz: edgegap_get_deployment, edgegap_wait_for_deployment, edgegap_list_deployments, edgegap_stop_deployment ve edgegap_get_deployment_logs. İzin listesi ayarlanmış bir ajan, kuruluştaki her dağıtımı listeleyebilir ve ardından bunlardan herhangi birini inceleyebilir, günlüklerini okuyabilir veya durdurabilir — listedeki uygulamalara ait olmayan dağıtımlar dahil.
Dolayısıyla izin listesi, bir ajanın oluşturabileceği ve içine dağıtabileceği şeyleri kapsar, çalışırken dokunabileceği şeyleri değil. Bu, bu belgenin önceki sürümlerinin ima ettiğinden daha dardır.
Bugün daha güçlü bir garanti için, beş değiştirici aracı hiç kaydetmeyen EDGEGAP_READ_ONLY=1 kullanın veya ajanı ayrı bir üretim dışı kuruluşa yönlendirin. Her ikisi de bu boşluktan etkilenmez.
Syed Anas Mohiuddin tarafından bildirildi, Eylül 2026.
Ortam değişkenleri
Bunlar yerel sunucuyu yapılandırır. Uzak uç noktada Edgegap tarafından ayarlanırlar ve geliştirici başına değiştirilemezler — bunlardan herhangi birine ihtiyacınız varsa yerel olarak çalıştırın.
| Değişken | Varsayılan | Amaç |
|---|---|---|
EDGEGAP_API_TOKEN | (istemle sorulur) | API token'ı. İsteğe bağlı — atlayın ve geliştiriciye ilk kullanımda sorulur. token öneki sizin için eklenir. |
EDGEGAP_READ_ONLY | 0 | 1 olarak ayarlayın ve beş değiştirici araç asla kaydedilmez. Ajan bunları göremez, bu yüzden onları çağırması için ikna edilemez. |
EDGEGAP_APP_ALLOWLIST | (boş) | Virgülle ayrılmış uygulama adları. Ayarlandığında, dört uygulama anahtarlı araç başka hiçbir şeye dokunmayı reddeder. Beş request_id anahtarlı aracı kapsamaz — bkz. İzin listesinin kapsamı. |
EDGEGAP_MAX_DURATION_MINUTES | 60 | Ajanın bir sürümde ayarlayabileceği max_duration için tavan. Gözetimsiz bir ajandan kaynaklanan kontrolden çıkan maliyeti sınırlar. |
EDGEGAP_TIMEOUT_MS | 30000 | İstek başına HTTP zaman aşımı. |
Araçlar
Altın yol boyunca sıralanan on araç. Her iki modda da aynı on araç.
| Araç | Değiştirici | Ne işe yarar |
|---|---|---|
edgegap_list_apps | Bir şey yapmadan önce yön bulun. Yinelenen uygulamaları önler. | |
edgegap_create_app | ● | Sürümler için konteyneri oluşturun. |
edgegap_list_app_versions | Dağıtılabilir bir sürüm bulun veya çalışan bir sürümden ayarları kopyalayın. | |
edgegap_create_app_version | ● | CPU, bellek ve bağlantı noktalarıyla bir konteyner görüntüsü kaydedin. |
edgegap_deploy | ● | Belirtilen oyuncuların yakınında bir örnek başlatın. |
edgegap_get_deployment | Tek durum okuması. | |
edgegap_wait_for_deployment | Geri tepme ile hazır olana kadar yoklayın, ardından bağlantı adresini döndürün. | |
edgegap_list_deployments | Önceki oturumlardan kalan sahipsiz sunucuları bulun. | |
edgegap_stop_deployment | ● | Zarif SIGTERM, her seferinde bir dağıtım. |
edgegap_get_deployment_logs | Bir hatadan sonra konteyner çıktısı ve çökme çıkış kodu. |
Tasarım kararları
Küratörlü, üretilmiş değil. Edgegap API'sinin yaklaşık altmış işlemi vardır. İşlem başına bir araç otomatik olarak oluşturmak, altmış açıklamanın tamamını her turda ajanın bağlamına koyar ve araç seçimini ölçülebilir şekilde bozar. Bu on tanesi, yeni bir geliştiriciyi dönüştüren yolu kapsar.
wait_for_deployment bir araçtır, bir döngü değil. Kendi haline bırakılırsa, bir ajan durum uç noktasını sıkı bir döngüde çağırır, tur harcar ve erken pes eder. Yoklama ve geri tepmeyi tek bir çağrıya katlamak, ajan odaklı dağıtımlardaki en yaygın hatayı ortadan kaldırır.
Hatalar kendi kendini düzeltmek için yazılır. Bir 424, görüntünün çekilemediğini ve hangi alanların kontrol edileceğini söyleyerek geri gelir. Bir 422, farklı koordinatlar denemeyi veya kaynak isteğini düşürmeyi söyler. Ajan, insana geri dönmeden bunlara göre hareket edebilir.
Kabloya çıkmadan önce yerel doğrulama. Bellek-CPU oranı ve eksik oyuncu konumu, opak bir 400 olarak görünmek yerine burada yakalanır.
Toplu işlemler kasıtlı olarak yoktur. stop tek bir request_id alır. Toplu durdurma aracı yoktur, çünkü filtre ifadesi ve hatası olan bir ajan bir üretim filosunu durdurabilir.
Hem barındırılan bir uç nokta hem de yerel bir paket. Barındırılan uç nokta, bu sunucuyu bulmak ile bir aracı çağırmak arasındaki her adımı kaldırır; çoğu geliştiricinin bıraktığı yer burasıdır. Yerel paket, sunucuyu kapsamlandırılmamış bir token'ın gözetimini biz dahil üçüncü bir tarafa genişletmeden çalıştırmanın tek yoludur. Hiçbiri diğerine üstün değildir, bu yüzden ikisi de gönderilir. Daha uzun versiyon için worker/DECISION.md bölümüne bakın.
Kapsam
Kasıtlı olarak açığa çıkarılmadı: eşleştirme, röleler, özel filolar, akıllı filolar, uç nokta depolama, ACL/beyaz liste girişleri, dağıtım etiketleri, metrikler, konteyner kayıt defteri yönetimi, DNS yapılandırması.
Bunlar gerçek yeteneklerdir, ancak platformda zaten faaliyet gösteren stüdyolara aittir, ilk sunucusunu dağıtan bir geliştiriciye değil. Bunları eklemek, dönüşüm yolunu yüzey alanıyla takas ederdi.
Bilinen sınırlama: token'ı istemek
Bu, token'ın yapılandırmadan okunmak yerine aydınlatma yoluyla toplandığı yerel mod için geçerlidir.
MCP spesifikasyonu, sunucuların hassas verileri toplamak için aydınlatma kullanmaması gerektiğini söyler ve bir API token'ı hassastır. Bu sunucu yine de yapıyor, çünkü her şey çalışmadan önce bir yapılandırma dosyasında token gerektirmek, katılım hunisindeki en büyük düşüştür ve sunucunun tüm amacı kurulum sürtünmesini ortadan kaldırmaktır.
Bu, kopyalanacak bir desen değil, kasıtlı bir takastır. Bunu savunulabilir kılan şey, src/auth.ts içindeki önlemler kümesidir — yalnızca bellek depolama, düz dilde açıklama, gerekli onay, tüm çıktılardan redaksiyon ve mevcut olduğunda her zaman kazanan ortam değişkeni. Bunlardan herhangi birini kaldırmak takası bozar.
Gerçek çözüm Edgegap tarafında ve her iki modu da iyileştirir: OAuth aracılığıyla verilen, bir sır olarak yapıştırılmak yerine kapsamlandırılmış, iptal edilebilir, yalnızca dağıtım kimlik bilgileri. Bunlar var olana kadar, etkileşimli istem bir geçici çözümdür ve kodda böyle etiketlenmiştir.
Geliştirme
npm run typecheck
node smoke.mjs # handshake, tool registration, read-only mode
node guards.mjs # local validation and allowlist enforcement
node elicit.mjs # token prompt: accept, refuse acknowledgement, decline, no support
Bunların hiçbiri ağ çağrısı yapmaz. elicit.mjs, istemin kuruluş genelindeki kapsamı belirttiğini, onayın gerekli olduğunu, token'ın araç çıktısında asla görünmediğini ve reddetmenin bir yeniden deneme döngüsü yerine bir dur-ve-rapor mesajı ürettiğini doğrular.