Edgegap

resmi

Terapkan server game multipemain dari agen pengkodean Anda. Sepuluh alat yang membawa server khusus Unity, Unreal, atau Godot dari citra kontainer ke pemain yang terhubung.

Apa yang bisa Anda lakukan dengan Edgegap MCP?

  • Menyebarkan server game dari image container — Minta asisten untuk mendaftarkan image container Anda dengan pengaturan CPU, memori, dan port, lalu meluncurkannya di dekat pemain tertentu.
  • Melacak status penyebaran dan detail koneksi — Minta asisten untuk melakukan polling hingga penyebaran Anda siap dan mengembalikan alamat koneksi, atau memeriksa status dan log untuk instance yang sedang berjalan.
  • Mengelola versi aplikasi — Minta asisten untuk membuat daftar aplikasi dan versi yang ada, atau membuat versi baru dari pengaturan versi yang berfungsi untuk menghindari duplikasi.
  • Menghentikan penyebaran dengan baik — Instruksikan asisten untuk menghentikan penyebaran tertentu berdasarkan ID permintaan, mengirim sinyal penghentian yang bersih daripada memaksa mematikan.
  • Menemukan dan membersihkan server yatim — Minta asisten untuk membuat daftar semua penyebaran dari sesi sebelumnya sehingga Anda dapat mengidentifikasi dan menghentikan instance yang tidak digunakan.

Server MCP Terhosting

npx add-mcp 'https://mcp.edgegap.dev/mcp'

Terpasang ke Claude Code, Codex, Cursor, dan lainnya

Dokumentasi

edgegap-mcp

Server MCP untuk Edgegap yang memungkinkan agen pengkodean membawa pengembang dari "Saya memiliki kontainer game server" hingga "pemain terhubung ke sana" tanpa pengembang membaca referensi API.

Sepuluh alat, dipilih secara khusus. Tidak dibuat dari spesifikasi OpenAPI — lihat Lingkup untuk alasannya.

Instalasi

Dua cara untuk menjalankannya. Pilih berdasarkan seberapa peduli Anda terhadap ke mana token Anda pergi — lihat Ke mana token Anda pergi.

Endpoint jarak jauh

Dihosting oleh Edgegap sebagai Cloudflare Worker. Tidak ada yang perlu diinstal.

{
  "mcpServers": {
    "edgegap": {
      "type": "http",
      "url": "https://mcp.edgegap.dev/mcp",
      "headers": { "Authorization": "token YOUR_API_TOKEN" }
    }
  }
}

Juga berfungsi sebagai konektor khusus di claude.ai: tambahkan https://mcp.edgegap.dev/mcp dan berikan token yang sama.

Lokal

Berjalan di mesin Anda sendiri, dipicu oleh editor Anda. Satu baris di konfigurasi klien MCP Anda, tidak ada yang perlu dikloning, tidak ada yang perlu dibangun.

{
  "mcpServers": {
    "edgegap": {
      "command": "npx",
      "args": ["-y", "@edgegap/mcp"]
    }
  }
}

Berfungsi di Claude Code, Cursor, Codex, dan VS Code. Tetapkan versi di produksi (@edgegap/mcp@0.1.5) daripada mengambang di versi terbaru.

Terdaftar di registry MCP resmi sebagai dev.edgegap/mcp.

Versi Node: server lokal membutuhkan Node 18+. Menyebarkan salinan Anda sendiri dari Cloudflare Worker membutuhkan Node 22+, karena wrangler memerlukannya.

Ke mana token Anda pergi

Ini berbeda berdasarkan mode, dan perbedaannya adalah alasan kedua mode ada.

Lokal. Server berjalan sebagai proses di komputer Anda sendiri. Panggilan alat pertama meminta token kepada Anda, menampilkan apa yang diotorisasinya, dan memerlukan pengakuan eksplisit sebelum menerimanya. Di mana token itu kemudian berada, secara lengkap:

  • satu variabel dalam memori proses tersebut, selama sesi editor Anda berlangsung

Itu adalah seluruh daftarnya. Tidak di disk. Tidak di file konfigurasi. Tidak di log. Tidak di server Edgegap mana pun — satu-satunya hal yang dikirim ke Edgegap adalah panggilan API itu sendiri, persis seperti jika Anda menjalankan curl. Menutup editor Anda mencabut akses server ini sepenuhnya.

Jarak jauh. Token Anda dikirim ke mcp.edgegap.dev pada setiap permintaan dan diteruskan dari sana ke API Edgegap. Token tersebut transit melalui infrastruktur yang dioperasikan Edgegap. Worker menyimpannya selama permintaan berlangsung dan tidak menyimpannya secara persisten, tetapi itu adalah klaim "kami tidak menyimpannya" daripada klaim "kami tidak pernah melihatnya". Keduanya berbeda, dan hanya mode lokal yang membuat yang kedua.

Buat token di https://app.edgegap.com/user-settings?tab=tokens.

Dalam mode lokal, mengatur EDGEGAP_API_TOKEN lebih diutamakan daripada prompt, untuk CI dan untuk klien yang tidak dapat menampilkan prompt. Jangan berikan token sebagai argumen baris perintah — argumen terlihat oleh proses lain melalui ps, dan server akan memperingatkan jika mendeteksinya.

Yang mana yang digunakan. Jarak jauh untuk percobaan pertama, demo, atau sesi yang diawasi di mana gesekan pengaturan lebih penting daripada penjagaan. Lokal untuk apa pun yang tidak diawasi, apa pun di organisasi dengan game yang sedang berjalan, dan apa pun yang Anda lebih suka tidak memperluas kepercayaan yang tidak perlu Anda berikan. Pagar pengaman yang dijelaskan di bawah hanya ada dalam mode lokal.

Baca ini sebelum menghubungkan agen

Token API Edgegap tidak dapat dibatasi cakupannya. Satu token mengotorisasi setiap aplikasi, setiap versi, setiap deployment yang berjalan, dan penggunaan Anda di seluruh organisasi. Tidak ada token khusus-deploy dan tidak ada token per-aplikasi.

Konsekuensi yang perlu dipertimbangkan dengan sengaja:

  • Agen yang memegang token ini dapat menghentikan deployment produksi, bukan hanya deployment uji yang dibuatnya.
  • Injeksi prompt yang mencapai agen — dari file repo, masalah, halaman yang diambil — juga mencapai token.
  • Apa pun yang dicatat, digaungkan, atau dikirim agen ke penyedia model adalah tempat token bisa berakhir. Server ini tidak mencatatnya, tetapi tidak dapat mengontrol apa yang dilakukan agen lainnya.
  • Di endpoint jarak jauh, token tanpa cakupan yang sama juga ditangani oleh worker Edgegap pada setiap panggilan.

Pengaturan yang direkomendasikan, dalam urutan kewaspadaan menurun:

SituasiPengaturan
Agen tidak diawasi atau otonomMode lokal. Organisasi non-produksi terpisah, plus EDGEGAP_READ_ONLY=1
Agen yang diawasi, game langsung di organisasiMode lokal. EDGEGAP_APP_ALLOWLIST dibatasi ke aplikasi yang sedang dikerjakan, plus EDGEGAP_MAX_DURATION_MINUTES. Baca Lingkup daftar izin terlebih dahulu — deployment yang sudah berjalan tidak tercakup
Pengembang solo, tanpa beban kerja produksiMode mana pun. Default sudah cukup; cabut token saat selesai

Daftar izin dan flag hanya-baca diberlakukan di server lokal, yang berarti mereka melindungi terhadap agen yang membuat kesalahan, bukan terhadap agen yang telah dikompromikan untuk memanggil API secara langsung. Mereka mempersempit radius ledakan; mereka tidak menghilangkannya.

Lingkup daftar izin

EDGEGAP_APP_ALLOWLIST diberlakukan oleh empat alat yang menggunakan nama aplikasi: edgegap_create_app, edgegap_list_app_versions, edgegap_create_app_version, dan edgegap_deploy.

Ini tidak diberlakukan oleh lima alat yang dikunci pada request_id: edgegap_get_deployment, edgegap_wait_for_deployment, edgegap_list_deployments, edgegap_stop_deployment, dan edgegap_get_deployment_logs. Agen yang berjalan dengan daftar izin yang ditetapkan dapat membuat daftar setiap deployment di organisasi dan kemudian memeriksa, membaca log dari, atau menghentikan salah satu dari mereka — termasuk deployment milik aplikasi di luar daftar.

Jadi daftar izin membatasi apa yang dapat dibuat dan di-deploy oleh agen, bukan apa yang dapat disentuh setelah berjalan. Itu lebih sempit dari yang tersirat oleh versi sebelumnya dari dokumen ini.

Untuk jaminan yang lebih kuat hari ini, gunakan EDGEGAP_READ_ONLY=1, yang tidak pernah mendaftarkan lima alat yang bermutasi sama sekali, atau arahkan agen ke organisasi non-produksi terpisah. Keduanya tidak terpengaruh oleh celah ini.

Dilaporkan oleh Syed Anas Mohiuddin, September 2026.

Variabel lingkungan

Ini mengonfigurasi server lokal. Di endpoint jarak jauh, ini diatur oleh Edgegap dan tidak dapat diubah per pengembang — jika Anda membutuhkan salah satunya, jalankan secara lokal.

VariabelDefaultTujuan
EDGEGAP_API_TOKEN(diminta)Token API. Opsional — abaikan dan pengembang akan diminta saat penggunaan pertama. Awalan token ditambahkan untuk Anda.
EDGEGAP_READ_ONLY0Atur ke 1 dan lima alat yang bermutasi tidak pernah didaftarkan. Agen tidak dapat melihatnya, jadi tidak dapat dibujuk untuk memanggilnya.
EDGEGAP_APP_ALLOWLIST(kosong)Nama aplikasi yang dipisahkan koma. Saat diatur, empat alat yang dikunci aplikasi menolak untuk menyentuh yang lain. Tidak membatasi lima alat yang dikunci request_id — lihat Lingkup daftar izin.
EDGEGAP_MAX_DURATION_MINUTES60Batas atas max_duration yang dapat diatur agen pada versi. Membatasi biaya yang tidak terkendali dari agen yang tidak diawasi.
EDGEGAP_TIMEOUT_MS30000Batas waktu HTTP per-permintaan.

Alat

Sepuluh alat, tercantum dalam urutan yang mereka ikuti di sepanjang jalur emas. Sepuluh yang sama di kedua mode.

AlatBermutasiUntuk apa
edgegap_list_appsOrientasi sebelum melakukan apa pun. Mencegah aplikasi duplikat.
edgegap_create_appBuat kontainer untuk versi.
edgegap_list_app_versionsTemukan versi yang dapat di-deploy, atau salin pengaturan dari yang berfungsi.
edgegap_create_app_versionDaftarkan gambar kontainer dengan CPU, memori, dan port.
edgegap_deployMulai satu instance di dekat pemain yang ditentukan.
edgegap_get_deploymentPembacaan status tunggal.
edgegap_wait_for_deploymentPolling hingga siap dengan backoff, lalu kembalikan alamat koneksi.
edgegap_list_deploymentsTemukan server yatim dari sesi sebelumnya.
edgegap_stop_deploymentSIGTERM yang anggun, satu deployment pada satu waktu.
edgegap_get_deployment_logsOutput kontainer dan kode keluar crash setelah kegagalan.

Keputusan desain

Dikurasi, bukan dibuat. API Edgegap memiliki sekitar enam puluh operasi. Membuat satu alat per operasi secara otomatis menempatkan semua enam puluh deskripsi ke dalam konteks agen pada setiap giliran dan secara terukur menurunkan pemilihan alat. Sepuluh ini mencakup jalur yang mengonversi pengembang baru.

wait_for_deployment adalah alat, bukan loop. Jika dibiarkan sendiri, agen akan memanggil endpoint status dalam loop yang ketat, menghabiskan giliran, dan menyerah lebih awal. Melipat polling dan backoff ke dalam satu panggilan menghilangkan kegagalan paling umum dalam deploy yang digerakkan agen.

Kesalahan ditulis untuk koreksi diri. 424 kembali dengan mengatakan gambar tidak dapat ditarik dan bidang mana yang harus diperiksa. 422 mengatakan untuk mencoba koordinat berbeda atau menurunkan permintaan sumber daya. Agen dapat bertindak berdasarkan ini tanpa perjalanan bolak-balik ke manusia.

Validasi lokal sebelum kabel. Rasio memori-ke-CPU dan lokasi pemain yang hilang ditangkap di sini daripada muncul sebagai 400 yang tidak jelas.

Operasi massal sengaja tidak ada. stop mengambil satu request_id. Tidak ada alat penghentian massal, karena agen dengan ekspresi filter dan bug dapat menghentikan armada produksi.

Baik endpoint yang dihosting dan paket lokal. Endpoint yang dihosting menghilangkan setiap langkah antara menemukan server ini dan memanggil alat, yang merupakan tempat sebagian besar pengembang berhenti. Paket lokal adalah satu-satunya cara untuk menjalankan server tanpa memperluas penjagaan token tanpa cakupan ke pihak ketiga, termasuk kami. Tidak ada yang mendominasi yang lain, jadi keduanya dikirim. Lihat worker/DECISION.md untuk versi yang lebih panjang.

Lingkup

Tidak diekspos, dengan sengaja: matchmaking, relay, armada pribadi, armada pintar, penyimpanan endpoint, entri ACL/daftar putih, tag deployment, metrik, manajemen registry kontainer, konfigurasi DNS.

Ini adalah kemampuan nyata, tetapi milik studio yang sudah beroperasi di platform, bukan untuk pengembang yang menyebarkan server pertama mereka. Menambahkannya akan menukar jalur konversi dengan luas permukaan.

Keterbatasan yang diketahui: meminta token sama sekali

Ini berlaku untuk mode lokal, di mana token dikumpulkan melalui elisitasi daripada dibaca dari konfigurasi.

Spesifikasi MCP mengatakan server tidak boleh menggunakan elisitasi untuk mengumpulkan data sensitif, dan token API adalah sensitif. Server ini melakukannya tetap, karena mengharuskan token dalam file konfigurasi sebelum apa pun berfungsi adalah penurunan terbesar dalam corong onboarding, dan inti dari server ini adalah untuk menghilangkan gesekan pengaturan.

Itu adalah trade yang disengaja daripada pola untuk ditiru. Yang membuatnya dapat dipertahankan adalah serangkaian mitigasi di src/auth.ts — penyimpanan hanya-memori, pengungkapan bahasa sederhana, pengakuan yang diperlukan, redaksi dari semua output, dan variabel lingkungan yang selalu menang saat ada. Menghapus salah satunya merusak trade.

Perbaikan yang sebenarnya ada di sisi Edgegap dan akan meningkatkan kedua mode: kredensial yang dibatasi, dapat dicabut, khusus-deploy, diterbitkan melalui OAuth daripada ditempel sebagai rahasia. Sampai itu ada, prompt interaktif adalah solusi sementara dan dilabeli seperti itu dalam kode.

Pengembangan

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

Tidak ada dari ini yang melakukan panggilan jaringan. elicit.mjs menegaskan bahwa prompt menyatakan cakupan seluruh organisasi, bahwa pengakuan diperlukan, bahwa token tidak pernah muncul dalam output alat, dan bahwa penolakan menghasilkan pesan berhenti-dan-laporkan daripada loop percobaan ulang.