Edgegap
resmiTerapkan 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?
- Tulis Dockerfile — Minta agen Anda membuat Dockerfile untuk build server Unity, Unreal, Godot, atau lainnya, dengan flag headless dan port yang sesuai.
- Validasi sebelum membangun — Periksa Dockerfile yang sudah ada, port, sumber daya, dan tag image untuk menemukan masalah seperti image ARM atau server yang terikat ke localhost.
- Deploy server khusus — Daftarkan image sebagai versi aplikasi, pilih lokasi, deploy di dekat pemain, lalu dapatkan IP dan port server.
- Diagnosis deployment yang gagal — Baca log container, detail crash, serta metrik CPU/memori untuk mengetahui penyebab server gagal atau crash.
- Siapkan sesi relay — Buat relay untuk game host-client dan dapatkan alamat relay serta token otorisasi setiap pemain.
Server MCP Terhosting
npx add-mcp 'https://mcp.edgegap.dev/mcp'Terpasang ke Claude Code, Codex, Cursor, dan lainnya
Dokumentasi
Edgegap MCP Server
Hubungkan agen coding AI ke Edgegap melalui MCP server kami. Agen Anda dapat menangani seluruh proses, mulai dari build server headless hingga pemain terhubung: menulis atau memeriksa Dockerfile, mengunggah image ke registry Edgegap privat Anda, men-deploy dedicated server otoritatif di dekat pemain, dan membaca log saat terjadi masalah.
👉 Fitur yang Didukung
[!TIP] Menggunakan Unity, Unreal Engine, atau Godot? Panduan dan plugin Unity, Unreal Engine, dan Godot kami tetap menjadi cara tercepat untuk menggunakan engine tersebut. MCP server dapat digunakan bersama panduan dan plugin itu, atau secara mandiri untuk engine apa pun.
Gunakan MCP server kami untuk:
- Mengemas server game dalam container - agen Anda menulis Dockerfile untuk build Anda (atau meninjau Dockerfile yang sudah ada) berdasarkan praktik terbaik, mengunggah image ke container registry privat kami, dan menghapus tag image lama yang tidak digunakan untuk mengosongkan kapasitas registry.
- Men-deploy dedicated server - membuat dan memperbarui versi aplikasi, meninjau lokasi yang tersedia, men-deploy di dekat pemain, dan mendapatkan IP server beserta port untuk menguji koneksi klien.
- Membangun pipeline CI/CD - menguji deployment dan teardown dari sistem build.
- Memecahkan masalah server game - memeriksa versi aplikasi dan status deployment, membaca log container serta penggunaan CPU/memori, atau mereproduksi deployment yang gagal.
- Menjalankan game client-host dan peer-to-peer - membuat sesi relay yang menyediakan NAT punchthrough dan menghindari pemblokiran koneksi. Tinjau Model Orkestrasi dan Dedicated Server atau Relay? sebelum menentukan pilihan.
[!WARNING] Di luar cakupan / tidak didukung oleh MCP: membangun executable server Linux; membuat, memulai, atau menghentikan matchmaker (unggah konfigurasi yang dihasilkan melalui dashboard); server browser; lobi; cluster terkelola; private fleet; atau penagihan.
[!NOTE] Jika Anda membutuhkan bantuan, hubungi kami melalui Discord. Untuk dukungan game live, lihat sistem tiket kami.
⚖️ Dedicated Server atau Relay?
Edgegap dapat meng-host game multipemain Anda dengan dua cara. Kami merekomendasikan dedicated server, begitu pula MCP server kami: agen Anda akan menggunakan dedicated server secara default dan hanya menggunakan relay jika Anda memilih konfigurasi host-client.
| Dedicated server (direkomendasikan) | Relay | |
|---|---|---|
| Yang dijalankan Edgegap | Build server headless Anda, di dekat pemain | Hanya penerus lalu lintas, tanpa kode game |
| Yang menjalankan game | Server | Game salah satu pemain (host) |
| Kecurangan | Jauh lebih sulit, server memiliki otoritas | Host dapat mengubah apa pun |
| Keadilan | Setiap pemain terhubung langsung ke server | Host tidak mengalami latensi, pemain lain melewati dua hop |
| Saat host keluar | Pertandingan berlanjut | Pertandingan berakhir, kecuali game Anda mendukung migrasi host |
| Performa dibatasi oleh | CPU dan memori yang dialokasikan untuk server | PC host dan kecepatan unggah internet rumahnya |
| Yang Anda perlukan | Build server dalam container image | Netcode yang dibuat sebagai listen server (host-client) |
[!NOTE] Belum punya image server? Itu bukan alasan untuk memilih relay. Agen Anda dapat menulis Dockerfile untuk build Anda dengan
edgegap_generate_dockerfile. Pelajari lebih lanjut tentang relay di Distributed Relay.
🚀 Instalasi
Instalasi MCP server sangat mudah:
- Instal MCP server untuk Agen Populer atau dengan Integrasi Kustom.
- Buat dan lampirkan token API yang akan digunakan agen Anda dengan MCP server kami.
Buat (dan lihat) token rahasia untuk Edgegap API Anda di Dashboard - User Settings / Tokens.
Tambahkan token rahasia Anda ke setiap permintaan API sebagai header HTTP (sertakan kata token):
Authorization: token xxxxxxxx-e458-4592-b607-c2c28afd8b62
[!CAUTION] Jangan integrasikan endpoint Edgegap API ke dalam klien game, karena token API Anda memberikan akses tanpa batas ke akun Anda. Lihat Integrasi untuk endpoint dan fungsi API yang aman untuk klien.
[!TIP] Jika token rahasia Anda disusupi atau bocor, hapus dan buat ulang token tersebut dari dashboard.
Token ini berlaku untuk seluruh organisasi dan tidak dapat dibatasi hanya untuk satu aplikasi. Baca DESIGN.md sebelum memberikannya kepada agen yang berjalan tanpa pengawasan.
Agen Populer
Instal Edgegap MCP server di IDE agentic pilihan Anda menggunakan tombol Cursor atau VS Code di bagian atas halaman ini, lalu tambahkan token Anda ke header Authorization.
Claude Code
claude mcp add --transport http edgegap https://mcp.edgegap.dev/mcp \
-H "Authorization: token xxxxxxxx-e458-4592-b607-c2c28afd8b62" --scope user
ChatGPT Codex
Codex membaca token dari variabel lingkungan dan mengirimkannya sebagai Authorization: Bearer <token>, yang diterima oleh endpoint yang di-host. Di ~/.codex/config.toml:
[mcp_servers.edgegap]
url = "https://mcp.edgegap.dev/mcp"
bearer_token_env_var = "EDGEGAP_API_TOKEN"
Lalu tetapkan EDGEGAP_API_TOKEN ke token Anda di lingkungan tempat Codex dijalankan.
Claude Desktop dan claude.ai
Konektor kustom di claude.ai dan Claude Desktop tidak dapat mengirim header Authorization, sehingga endpoint yang di-host tidak pernah menerima token Anda dari keduanya: konektor akan terlihat terhubung, tetapi setiap pemanggilan tool gagal. Gunakan Local Server.
Di Claude Desktop, buka Settings → Developer → Edit Config dan tambahkan server lokal ke claude_desktop_config.json:
{
"mcpServers": {
"edgegap": {
"command": "npx",
"args": ["-y", "@edgegap/mcp"]
}
}
}
Jangan sertakan token; Anda akan diminta memasukkannya saat pertama kali digunakan. claude.ai di browser tidak dapat menjalankan server lokal, sehingga tidak dapat menggunakan Edgegap MCP sampai endpoint yang di-host mendukung OAuth.
Cursor
Tombol Cursor di bagian atas halaman ini akan menginstalnya; untuk melakukannya secara manual, tambahkan ini ke ~/.cursor/mcp.json (atau .cursor/mcp.json di dalam proyek):
{
"mcpServers": {
"edgegap": {
"url": "https://mcp.edgegap.dev/mcp",
"headers": { "Authorization": "token xxxxxxxx-e458-4592-b607-c2c28afd8b62" }
}
}
}
VS Code (mode agen Copilot)
Tombol VS Code di bagian atas halaman ini akan menginstalnya; untuk melakukannya secara manual, tambahkan ini ke .vscode/mcp.json (VS Code menggunakan servers, bukan mcpServers):
{
"servers": {
"edgegap": {
"type": "http",
"url": "https://mcp.edgegap.dev/mcp",
"headers": { "Authorization": "token xxxxxxxx-e458-4592-b607-c2c28afd8b62" }
}
}
}
Windsurf
Di ~/.codeium/windsurf/mcp_config.json, jalankan Local Server, yang berfungsi di setiap klien yang memulai MCP server sebagai perintah:
{
"mcpServers": {
"edgegap": {
"command": "npx",
"args": ["-y", "@edgegap/mcp"],
"env": { "EDGEGAP_API_TOKEN": "xxxxxxxx-e458-4592-b607-c2c28afd8b62" }
}
}
}
mcp.json
Sebagian besar IDE agentic juga mendukung integrasi dengan menempelkan konfigurasi JSON:
{
"mcpServers": {
"Edgegap": {
"type": "http",
"url": "https://mcp.edgegap.dev/mcp",
"headers": {
"Authorization": "token xxxxxxxx-e458-4592-b607-c2c28afd8b62"
}
}
}
}
Integrasi Kustom
Instal Edgegap MCP server jarak jauh di lingkungan virtual agen Anda (jangan pernah di proyek Anda!):
Node, menggunakan paket npx mcp-remote
{
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.edgegap.dev/mcp", "--transport", "http-only"]
}
Python, menggunakan paket uvx mcp-proxy
{
"command": "uvx",
"args": ["mcp-proxy", "--transport", "streamablehttp", "https://mcp.edgegap.dev/mcp"]
}
Instalasi Sekali Klik (Claude Desktop)
Unduh edgegap-mcp.mcpb lalu buka: Claude Desktop akan menginstal server lokal sebagai ekstensi dan meminta token API Anda, yang disimpan di penyimpanan aman sistem operasi. Pengaturan ekstensi juga mencakup mode hanya-baca, daftar aplikasi yang diizinkan, batas maksimum durasi, dan batas deployment (variabel di bawah). Setiap rilis menyertakan bundle yang dibuat dari kode rilis tersebut. Aplikasi lain yang menginstal bundle MCPB bekerja dengan cara yang sama.
Local Server
Untuk menyimpan token API di komputer Anda sendiri, jalankan server secara lokal. Jangan sertakan token; agen akan meminta token saat pertama kali digunakan dan hanya menyimpannya di memori selama sesi tersebut:
{
"mcpServers": {
"Edgegap": {
"command": "npx",
"args": ["-y", "@edgegap/mcp"],
"env": { "EDGEGAP_API_TOKEN": "xxxxxxxx-e458-4592-b607-c2c28afd8b62" }
}
}
}
Memerlukan Node 18+. Tetapkan versi tertentu untuk penggunaan produksi (@edgegap/mcp@0.15.4), bukan menggunakan versi latest yang terus berubah. Terdaftar di registry MCP resmi sebagai dev.edgegap/mcp.
Server lokal juga dapat membatasi tindakan yang dapat dilakukan agen. Variabel ini tidak berpengaruh pada endpoint yang di-host di mcp.edgegap.dev:
| Variabel | Default | Tujuan |
|---|---|---|
EDGEGAP_API_TOKEN | (diminta) | Token API. Opsional: jangan sertakan, dan Anda akan diminta memasukkannya saat pertama kali digunakan. Awalan token akan ditambahkan secara otomatis. Jangan pernah meneruskannya sebagai argumen baris perintah. |
EDGEGAP_READ_ONLY | 0 | Tetapkan ke 1 agar tool yang mengubah sesuatu (ditandai ● di Tools) tidak pernah didaftarkan, sehingga agen tidak dapat dibujuk untuk memanggilnya. |
EDGEGAP_APP_ALLOWLIST | (kosong) | Nama aplikasi yang dipisahkan koma. Membatasi aplikasi yang dapat dibuat dan di-deploy oleh agen. Pembacaan (mencantumkan aplikasi dan versi) tidak dibatasi, begitu pula tindakan terhadap deployment yang sedang berjalan. Lihat DESIGN.md. |
EDGEGAP_MAX_DURATION_MINUTES | 60 | Batas atas untuk max_duration yang dapat ditetapkan agen pada suatu versi. edgegap_deploy juga menolak versi yang nilai max_duration-nya melebihi batas ini, atau tidak terbatas, kecuali agen meneruskan allow_long_running: true setelah meminta persetujuan Anda. |
EDGEGAP_MAX_AGENT_DEPLOYMENTS | 5 | edgegap_deploy menolak permintaan saat jumlah deployment bertanda edgegap-mcp yang sedang berjalan mencapai angka ini. 0 menonaktifkan batas tersebut. |
EDGEGAP_MAX_DEPLOYS_PER_RUN | 20 | Jumlah proses server yang dapat dikirimkan. Termasuk proses yang gagal. Mulai ulang server untuk mengatur ulang hitungan. 0 menonaktifkannya. |
EDGEGAP_STOP_OWN_ONLY | 0 | Tetapkan ke 1 agar edgegap_stop_deployment hanya menghentikan deployment bertanda edgegap-mcp, sehingga agen tidak dapat menghentikan server yang tidak dimulainya. |
EDGEGAP_ENABLE_SKILLS_UPDATE | 0 | Tetapkan ke 1 agar edgegap_update_skills menjalankan npx skills@1.7.4 update atau claude plugin update dengan apply: true. Jika tidak, perintah tersebut akan ditampilkan untuk Anda jalankan. Skill yang disalin secara manual akan ditulis ulang dari bundle dalam kedua kondisi. Updater hanya mendapatkan pengaturan path, home, temp, locale, proxy, dan npm, tidak pernah variabel EDGEGAP_* atau apa pun yang namanya menyerupai token, secret, password, atau key. |
EDGEGAP_TIMEOUT_MS | 30000 | Batas waktu HTTP per permintaan. |
EDGEGAP_SKILLS_CHECK | on | Tetapkan ke off agar tool skill tidak pernah membaca versi skill terbaru dari GitHub. |
Windows
Server lokal berjalan di Windows dengan Node.js 18 atau yang lebih baru, dan CI menjalankan build serta pengujian stdio di Windows.
- Banyak klien MCP Windows tidak dapat memulai
npxsecara langsung karena file tersebut adalah skrip.cmd. Mulai melaluicmd /c:"command": "cmd", "args": ["/c", "npx", "-y", "@edgegap/mcp"]. Di Claude Code:claude mcp add Edgegap --env EDGEGAP_API_TOKEN=<token> -- cmd /c npx -y @edgegap/mcp. - Di PowerShell, ketik
npx.cmdalih-alihnpxuntuk menjalankannya secara manual: instalasi Windows baru memblokir skrip PowerShellnpx("running scripts is disabled on this system"). - Saat pertama kali dijalankan, paket akan diunduh dan prosesnya mungkin memerlukan waktu; proses berikutnya akan berlangsung cepat.
edgegap_update_skillsmenemukan skill yang terinstal di%USERPROFILE%, sama seperti di macOS dan Linux.
📚 Skills
Server ini menyertakan skill agen Edgegap: alur kerja langkah demi langkah yang telah diuji untuk menjalankan game multipemain secara online, lengkap dengan templat (Dockerfile, konfigurasi matchmaker, komponen siap pakai Unity C# dan Unreal C++) serta kendala yang umum terjadi. Semua agen yang terhubung ke Edgegap MCP mendapatkannya tanpa instalasi terpisah dan tanpa token, serta diarahkan untuk memuat skill yang sesuai sebelum mengerjakan proyek game.
| Skill | Untuk |
|---|---|
edgegap | Mulai di sini untuk pertanyaan tentang engine selain Unity atau Unreal Engine, atau tentang platform. Mengarahkan ke skill lainnya. |
edgegap-unity | Unity dari awal hingga akhir: build server, matchmaker, klien, pengujian menyeluruh. |
edgegap-ngo | Unity dengan Netcode for GameObjects dari awal hingga akhir: server mulai dan berhenti sendiri, panel Find Match, adapter Boss Room, matchmaker. |
edgegap-fishnet | Unity dengan FishNet dari awal hingga akhir: server headless, Bayou/WebGL, matchmaker, pengujian menyeluruh. |
edgegap-purrnet | Unity dengan PurrNet dari awal hingga akhir: dedicated server, panel koneksi, matchmaker, pengujian menyeluruh. |
edgegap-fusion | Unity dengan Photon Fusion 2 dari awal hingga akhir: server Linux IL2CPP, server yang terikat ke 0.0.0.0, deployment Edgegap, kit BR200. |
edgegap-fusion-simplefps | Sampel Simple FPS Photon di dedicated server Edgegap. |
edgegap-godot | Godot 4 dengan dedicated server Godot: ekspor headless, ENet atau WebSocket, matchmaker. |
edgegap-colyseus | Server Colyseus di Edgegap, secara langsung atau melalui matchmaker. |
edgegap-nakama | Nakama sebagai backend, yang memulai server Edgegap untuk match-nya. |
edgegap-playfab | PlayFab Matchmaking dengan server Edgegap. |
edgegap-threejs | Three.js dan game browser lainnya dengan server Node.js sendiri. |
edgegap-matchmaking | Desain matchmaking untuk engine apa pun: siapa yang mengelolanya, profil, party, pemilihan region, backfill, matchmaker pihak ketiga. |
edgegap-manus | Game browser yang dibuat dengan Manus: matchmaking backend, login Steam, token join bertanda tangan, server WebSocket Node. |
edgegap-unreal | Unreal Engine dari awal hingga akhir: engine dari source, server Linux, matchmaker, pengujian menyeluruh. |
edgegap-eos-voice | Obrolan suara untuk game Unreal di Edgegap dengan EOS Voice: token room sisi server, room match dan tim. |
edgegap-server-design | Desain server otoritatif dan siklus hidup deployment. |
edgegap-containerize | Kontrak container, Dockerfile, registry, versi aplikasi. |
edgegap-local-testing | Pengujian paritas di mesin Anda, lalu satu deployment uji asap. |
edgegap-troubleshoot | Error pull, crash loop, kehabisan memori, klien yang tidak bisa terhubung. |
edgegap-deployments-api | Kode backend yang men-deploy server: webhook, pembersihan, Nakama, PlayFab, UGS, EOS. |
edgegap-launch | Daftar periksa peluncuran, rollout, caching, pengendalian biaya. |
Skill ini disediakan melalui tiga cara agar dapat diakses oleh setiap klien MCP:
- Tools:
edgegap_list_skillsdanedgegap_get_skill, yang memuatSKILL.mdmilik sebuah skill, atau salah satu dokumen referensi maupun templatnya denganfile. - Prompts:
deploy-game-server("Deploy my game server to Edgegap") adalah titik awal: prompt ini menemukan engine dan netcode, memuat skill yang sesuai, lalu memandu Anda melalui jalur utama, termasuk pembersihan. Ada juga satu prompt untuk setiap skill, dengan nama yang sama seperti skill tersebut. Di Claude Code, prompt ini muncul sebagai perintah garis miring, misalnya/mcp__edgegap__deploy-game-server. - Resources:
SKILL.mdsetiap skill tercantum diedgegap-skill://<skill>/SKILL.md; setiap file lainnya dibaca melalui templatedgegap-skill://{skill}/{+path}, misalnyaedgegap-skill://edgegap-unity/references/deploy.md.
Setiap rilis menyertakan skill pada commit yang ditetapkan di scripts/skills-pin.txt; edgegap_context melaporkan pack yang dimuat. edgegap_list_skills juga membaca versi pack terbaru dari GitHub (satu nomor versi, di-cache selama satu jam; EDGEGAP_SKILLS_CHECK=off menonaktifkannya) dan memberi tahu jika ada versi yang lebih baru, sedangkan edgegap_get_skill menambahkan catatan yang sama di bawah header skill.
Menjaga skill yang terpasang tetap terbaru. Jika Anda juga memasang skill di agen Anda (plugin Claude Code edgegap@edgegap, npx skills add edgegap/llm-agent-skills, atau folder yang disalin ke ~/.claude/skills), edgegap_update_skills membandingkan masing-masing dengan versi terbaru di GitHub. Di server lokal, tool ini menemukan sendiri instalasi tersebut; dengan apply: true, tool ini menjalankan npx skills update (hanya skill Edgegap) atau claude plugin update, lalu menulis ulang skill yang disalin secara manual dari file yang disertakan dalam rilis ini, sambil mempertahankan file yang Anda tambahkan dan membiarkan symlink serta checkout git apa adanya. Tool ini tidak pernah mengunduh teks skill. Server yang di-host tidak dapat mengakses disk Anda: berikan versi yang telah Anda muat di installed_versions, lalu tool ini akan memberi tahu mana yang sudah usang dan cara memperbaruinya.
🧰 Tools
Agen Anda memilih tool yang tepat berdasarkan permintaan Anda. Anda tidak perlu menyebutkan namanya, tetapi mengetahui tool yang tersedia akan membantu Anda mengajukan permintaan. Tool bertanda ● mengubah sesuatu di akun Anda, memerlukan dry_run, dan disembunyikan saat EDGEGAP_READ_ONLY=1.
| Tool | Fungsinya |
|---|---|
edgegap_context | Menampilkan API yang digunakan server ini, versinya, apakah server lokal atau di-host, serta batasan yang berlaku. Tidak melakukan panggilan API; token tidak pernah ditampilkan. |
Sebelum Deployment Pertama Anda
| Tool | Fungsinya |
|---|---|
edgegap_generate_dockerfile | Menulis Dockerfile untuk build server Anda: folder build, biner server atau skrip mulai, port, dan argumen peluncuran, dengan flag headless yang tepat (Unity -batchmode -nographics, Godot --headless), pengguna non-root untuk Unreal, dan port yang sesuai. Mencantumkan hal-hal yang terpaksa diasumsikan agar agen Anda dapat mengonfirmasinya. Berfungsi untuk Unity, Unreal Engine, Godot, dan engine lainnya. |
edgegap_validate_server_config | Memeriksa Dockerfile, port, resource, dan tag image yang sudah ada sebelum Anda melakukan build. Mendeteksi image ARM atau Windows (Edgegap menjalankan linux/amd64), server Unreal yang berjalan sebagai root, -batchmode -nographics Unity yang tidak ada, server yang terikat ke localhost, port yang tidak cocok dengan transport netcode Anda, serta tag latest. |
edgegap_get_registry_credentials ● | Mengembalikan kredensial push untuk private container registry Edgegap Anda, beserta perintah docker login, build, dan push yang tepat. Edgegap hanya memberikan kredensial ini melalui token quick-start plugin Unity/Unreal; dengan token API biasa, tool ini meminta agen Anda untuk meminta login dari halaman Container Registry di dashboard. |
edgegap_list_registry_tags | Memastikan image Anda berhasil di-push sebelum Anda mendaftarkannya. Hanya memerlukan nama image, misalnya my-game-server: project diambil dari token Anda. |
edgegap_delete_registry_tag ● | Menghapus satu tag beserta image yang ditunjuknya untuk membersihkan build lama. Satu tag persis per panggilan; latest, wildcard, dan daftar ditolak. |
Dedicated Server (Direkomendasikan)
| Tool | Fungsinya |
|---|---|
edgegap_list_apps | Mencantumkan aplikasi Anda. |
edgegap_create_app ● | Membuat aplikasi. |
edgegap_update_app ● | Mengaktifkan atau menonaktifkan aplikasi untuk deployment baru. |
edgegap_list_app_versions | Mencantumkan versi beserta image, resource, port (dengan TLS Upgrade), dan informasi apakah login registry telah diatur. |
edgegap_get_app_version | Membaca detail lengkap satu versi: image, resource, port, durasi maksimum, caching image, kebijakan restart, dan nama variabel env (nilainya tidak pernah ditampilkan). |
edgegap_create_app_version ● | Mendaftarkan container image sebagai versi yang dapat di-deploy. Mendukung TLS Upgrade pada port WS dan HTTP, yang diperlukan klien browser (WebGL) untuk wss://. |
edgegap_update_app_version ● | Mengubah versi yang sudah ada: tag image baru, aktif/nonaktif, CPU dan memori (keduanya sekaligus), durasi maksimum, login registry, caching image (force_cache), masa tenggang shutdown, port, variabel env, dan Endpoint Storage tempat log disimpan. Hanya kolom yang diberikan yang berubah, tetapi ports dan env mengganti seluruh daftar. Deployment yang sedang berjalan tetap menggunakan pengaturan lama. |
edgegap_delete_app_version ● | Menghapus satu versi untuk membersihkan versi pengujian. Ditolak jika deployment versi tersebut masih berjalan. Image registry tetap disimpan. |
edgegap_delete_app ● | Menghapus aplikasi beserta versinya. Ditolak jika ada deployment-nya yang masih berjalan, atau jika jumlah versinya melebihi max_versions (default 0). |
edgegap_list_locations | Mencantumkan kota tempat Edgegap melakukan deployment, atau, untuk satu versi, hanya kota yang saat ini memiliki kapasitas. |
edgegap_list_ping_beacons | Mencantumkan beacon ping yang digunakan klien game untuk mengukur latensi ke setiap region. |
edgegap_deploy ● | Men-deploy dedicated server otoritatif di dekat pemain Anda. Selalu diberi tag edgegap-mcp, dan melaporkan kapan Edgegap akan menghentikannya. Opsional: CPU dan memori khusus untuk deployment ini, webhook yang dipanggil Edgegap saat server siap, gagal, atau berakhir, require_cached_locations untuk memulai lebih cepat, dan private_host_ids untuk menempatkannya terlebih dahulu di private fleet Anda. |
edgegap_list_fleet_hosts | Mencantumkan host di salah satu private fleet Anda, beserta status dan lokasinya, untuk men-deploy server ke sana. |
edgegap_wait_for_deployment | Menunggu hingga server siap dan mengembalikan alamat koneksi. |
edgegap_get_deployment | Membaca status deployment. |
edgegap_list_deployments | Mencantumkan deployment yang sedang berjalan, difilter berdasarkan aplikasi, versi, status, tag, dan lainnya, serta diurutkan berdasarkan usia. Menemukan server yang masih berjalan; only_agent_deployments: true mencantumkan semua server yang dimulai oleh agen. Lihat Filter Deployment. |
edgegap_get_deployment_logs | Membaca log container dan detail crash saat deployment berjalan. Setelah deployment berhenti, log hanya disimpan jika Endpoint Storage telah disiapkan. |
edgegap_get_deployment_metrics | Merangkum penggunaan CPU, throttling CPU, memori, dan jaringan (terbaru, rata-rata, puncak), untuk menentukan ukuran versi atau memeriksa crash. |
edgegap_stop_deployment ● | Menghentikan satu deployment berdasarkan request ID yang persis. Tidak ada penghentian massal. |
edgegap_tag_deployment ● | Menambahkan atau menghapus tag pada deployment yang sedang berjalan, misalnya untuk menandai match. Tag edgegap-mcp tetap ada. |
edgegap_report_deployment ● | Melaporkan deployment ke Edgegap beserta alasannya, untuk backend moderasi studio. Deployment tetap berjalan. |
Log dan File (Endpoint Storage)
Log container akan hilang bersama deployment kecuali diekspor ke bucket yang kompatibel dengan S3 milik Anda.
| Tool | Fungsinya |
|---|---|
edgegap_list_endpoint_storage | Mencantumkan bucket Endpoint Storage dan profil pull Anda. Kunci rahasia tidak pernah dikembalikan. |
edgegap_create_endpoint_storage ● | Mendaftarkan bucket (AWS S3, Cloudflare R2, DigitalOcean Spaces…) untuk ekspor log. Atur endpoint_storage pada versi untuk mengaktifkan ekspor. Kunci rahasia tidak pernah ditampilkan kembali. |
edgegap_create_pull_profile ● | Menyalin file atau folder dari bucket ke dalam container saat boot (map, konfigurasi, aset berukuran besar). |
edgegap_link_pull_profile ● | Menautkan profil pull ke versi, atau melepas tautannya. |
edgegap_delete_pull_profile ● | Menghapus satu profil pull. Bucket dan file di dalamnya tetap ada. |
edgegap_delete_endpoint_storage ● | Menghapus satu Endpoint Storage; ditolak jika masih memiliki profil pull, kecuali max_pull_profiles mengizinkannya. Bucket dan log di dalamnya tetap ada. |
Relay (Hanya untuk Game Host-Client)
Relay bukan server game: relay meneruskan lalu lintas saat game salah satu pemain menjadi host match. Lihat Dedicated Server atau Relay?.
| Tool | Fungsinya |
|---|---|
edgegap_create_relay_session ● | Membuat sesi relay untuk pemain Anda dan mengembalikan alamat relay serta token otorisasi setiap pemain. |
edgegap_get_relay_session | Membaca sesi relay. |
edgegap_list_relay_sessions | Mencantumkan sesi relay yang terbuka untuk menemukan sesi yang masih berjalan. Tidak ada token otorisasi. |
edgegap_authorize_relay_user ● | Menambahkan pemain yang bergabung belakangan. |
edgegap_revoke_relay_user ● | Menghapus satu pemain dari sesi relay. |
edgegap_delete_relay_session ● | Menutup sesi relay. |
[!WARNING] Deployment dan sesi relay dikenai biaya selama berjalan. Minta agen Anda menghentikan deployment pengujian dan menghapus sesi relay pengujian setelah selesai.
Contoh Prompt
- "Tulis Dockerfile untuk build server Unity saya, lalu push dan deploy server di dekat saya."
- "Periksa Dockerfile saya untuk Edgegap dan perbaiki masalah apa pun."
- "Deployment saya gagal. Baca log dan beri tahu penyebabnya."
- "Berapa banyak CPU dan memori yang digunakan match terakhir saya? Sesuaikan ukuran versi saya."
- "Game saya menggunakan jaringan host-client. Siapkan relay Edgegap untuk dua pemain."
🛡️ Batasan Pengamanan
Token API Anda dapat melakukan apa saja di organisasi Anda, jadi server ini menambahkan batasannya sendiri terhadap tindakan agen. Batasan ini berlaku baik di server lokal maupun endpoint yang di-host.
| Pengaman | Fungsinya |
|---|---|
| Uji coba | Setiap alat yang mengubah sesuatu menggunakan dry_run: true: alat tersebut mengembalikan metode, host, jalur, dan isi yang persis, dengan token, token registry, dan nilai env disamarkan, serta tidak mengirim apa pun. Pemeriksaan lokal tetap dijalankan. |
| Tidak ada token di dalam container | Deploy atau versi ditolak tanpa mengirim apa pun jika token API Anda muncul dalam nama atau nilai variabel env, tag, atau URL webhook. Nilai env tidak pernah ditampilkan kembali. |
| Tag agen | Setiap deployment diberi tag edgegap-mcp, bahkan saat agen meneruskan tag miliknya sendiri. edgegap_list_deployments dengan only_agent_deployments: true akan menemukan semuanya. |
| Berhenti otomatis | Setiap deploy melaporkan kapan Edgegap akan menghentikannya: nilai max_duration versi tersebut, dibatasi hingga EDGEGAP_MAX_DURATION_MINUTES (default 60) untuk versi yang dibuat agen. Edgegap tidak memiliki batas waktu per deployment, jadi deploy versi dengan max_duration di atas batas tersebut atau tanpa batas (versi yang dibuat di tempat lain memiliki default 1440 menit) akan ditolak kecuali agen meneruskan allow_long_running: true, yang hanya akan diperintahkan untuk dilakukan setelah bertanya kepada Anda. |
| Deploy per proses | Server lokal mengirim paling banyak EDGEGAP_MAX_DEPLOYS_PER_RUN (default 20) deploy per proses, termasuk yang gagal, karena deploy yang ditolak tetap dapat membuat deployment. Jika API menolak deploy tetapi tetap membuat deployment, kesalahan akan menyebutkan namanya agar agen dapat menghentikannya. |
| Tidak menggunakan tag image yang berubah-ubah | edgegap_create_app_version menolak latest (huruf besar/kecil apa pun), tag kosong, atau tag yang akan ditolak Docker, tanpa mengirim apa pun: Edgegap menyimpan image dalam cache berdasarkan tag, sehingga tag yang di-push ulang dapat men-deploy build yang sudah usang. Deploy versi yang sudah ada di latest juga ditolak, begitu pula permintaan perintah push registry untuk latest. |
| Pemeriksaan referensi image | docker_image yang juga memuat host registry, tag, atau digest (misalnya registry.edgegap.com/proj/server:v2) akan ditolak, dan kesalahan akan memberikan pemisahan docker_repository / docker_image / docker_tag yang benar. edgegap_validate_server_config menandai hal yang sama. |
| Batas deployment | edgegap_deploy ditolak saat EDGEGAP_MAX_AGENT_DEPLOYMENTS (default 5) deployment bertag edgegap-mcp sudah berjalan, sehingga agen yang terus mengulang tidak dapat menumpuk server yang menimbulkan biaya. Penolakan tersebut menjelaskan cara mencantumkan dan menghentikannya. |
| Variabel env rahasia tersembunyi | Variabel env dengan nama yang tampak seperti rahasia (TOKEN, SECRET, PASSWORD, API_KEY, CREDENTIAL, AUTH…) dikirim dengan is_hidden, sehingga dashboard tidak menampilkan nilainya dalam teks biasa. |
| Penghentian ketat | edgegap_stop_deployment menghentikan satu deployment berdasarkan ID permintaan yang persis. ID kosong, wildcard, dan daftar akan ditolak. Tidak ada penghentian massal. Dengan EDGEGAP_STOP_OWN_ONLY=1, hanya deployment bertag edgegap-mcp yang dihentikan. |
| Penghapusan yang cermat | edgegap_delete_app_version dan edgegap_delete_app menerima satu nama persis, dan akan ditolak jika deployment untuk nama tersebut sedang berjalan. Aplikasi yang memiliki versi hanya dihapus jika max_versions mencakup versi-versi tersebut. |
| URL webhook dan bucket | Webhook deploy dan endpoint Endpoint Storage harus berupa URL https tanpa kredensial, dan akan ditolak jika memuat token API Anda. |
| Host pada setiap hasil | Setiap hasil diawali dengan host API, misalnya [api.edgegap.com], atau [custom · host] saat EDGEGAP_BASE_URL mengarah ke tempat lain. URL dasar yang menyebut api.edgegap.com harus persis https://api.edgegap.com, atau server akan menolak untuk dimulai. |
| Penyensoran | Token dihapus dari setiap kesalahan sebelum diteruskan ke agen. |
Server mengidentifikasi dirinya dengan User-Agent: edgegap-mcp/<version> (<MCP client name>) pada setiap panggilan API.
Analitik penggunaan. Server lokal dan image Docker yang di-host sendiri tidak mengirim apa pun selain panggilan API itu sendiri. Endpoint yang di-host di mcp.edgegap.dev menggunakan PostHog MCP Analytics (@posthog/mcp) dan mengirim peristiwa penggunaan ke PostHog Edgegap: klien MCP yang terhubung, alat, prompt, atau sumber daya skill yang digunakan, nama (bukan nilai) argumen yang diteruskan, apakah panggilan berhasil, kode kesalahannya, tahap kegagalannya dan status API Edgegap, durasi prosesnya, apakah itu uji coba, beberapa fakta tentang panggilan tersebut (hasil penantian deployment, hasil validasi, skill yang dimuat), langkah golden path yang dicapai, serta versi server dan kode negara Cloudflare. Jika panggilan gagal, pesan kesalahan juga dikirim setelah token Anda, nilai argumen yang Anda teruskan, dan apa pun yang menyerupai kredensial, alamat IP, atau ID dihapus; pesan dipotong hingga 300 karakter. ID deployment hanya dikirim sebagai hash berkunci. Hanya properti metadata bernama yang diizinkan. Token, nilai argumen alat (alamat IP, variabel env, nama aplikasi atau image), maupun hasil tidak pernah dikirim, dan GeoIP dinonaktifkan. Tidak ada parameter yang ditambahkan ke alat. Peristiwa dari satu token dikelompokkan berdasarkan hash token berkunci yang tidak dapat dibalik. Daftar lengkapnya ada di docs/analytics.md. Untuk memilih keluar, kirim header X-Edgegap-Telemetry: off (atau DNT: 1), atau gunakan server lokal.
🚨 Pemecahan Masalah
Tinjau kode kesalahan umum dan pelajari cara membuka akses integrasi Anda.
401 Unauthorized
Kemungkinan besar integrasi MCP Anda tidak menyertakan header Authorization dengan benar.
Tool Call Failed
Klien Anda tidak memiliki token Edgegap. Hal ini terjadi pada claude.ai dan konektor khusus Claude Desktop, yang tidak dapat mengirim header Authorization. Lihat Claude Desktop dan claude.ai untuk alternatifnya.
[!WARNING] Ini adalah batasan yang sudah diketahui dan akan segera diatasi. Nantikan pembaruan!
403 Forbidden
Kemungkinan integrasi MCP Anda menggunakan token templat atau token yang telah dihapus. Pastikan nilai token yang digunakan integrasi Anda sama persis dengan token yang ditampilkan di dashboard.
424 Image Could Not Be Pulled
Edgegap tidak dapat menarik image container Anda. Periksa repositori, nama image, dan tag, serta pastikan tag tersebut sudah di-push (minta agen Anda mencantumkan tag registry). Untuk image di registry Edgegap, nama image harus menyertakan proyek Anda, misalnya my-project/my-game-server.
Registry Credentials Unavailable
Edgegap hanya memberikan kredensial registry kepada token quick-start yang digunakan plugin Unity dan Unreal. Karena itu, dengan token API biasa, agen Anda tidak dapat mengambilnya dan akan memintanya kepada Anda. Salin Project, Username, dan Token dari dashboard di bagian Container Registry, atau push ke registry lain yang dapat diakses Edgegap (Docker Hub, GitHub, AWS ECR, GCP, GitLab). Lihat Registry Eksternal.
"status": "empty" atau "not_configured"
Ini bukan kesalahan. Daftar yang kosong (belum ada aplikasi, tidak ada deployment yang berjalan, image belum pernah di-push) atau fitur yang belum disiapkan organisasi ini (relay, registry yang tidak dapat dibaca token ini) akan dikembalikan sebagai hasil normal dengan status dan next_step. Agen Anda seharusnya melanjutkan ke langkah berikutnya, bukan mencoba lagi.
Belum Ada Token
Skill (edgegap_list_skills, edgegap_get_skill), edgegap_context, edgegap_generate_dockerfile, dan edgegap_validate_server_config dapat digunakan tanpa token, sehingga agen dapat menyiapkan build server terlebih dahulu. Buat akun di app.edgegap.com dan token di User Settings → Tokens. edgegap_context dengan check_token: true menunjukkan apakah token sesi tersedia dan diterima, serta menampilkan empat karakter terakhirnya agar Anda dapat menemukannya di halaman tersebut.
Berjalan Secara Lokal tetapi Tidak di Edgegap
Minta agen Anda memvalidasi konfigurasi server atau membuat Dockerfile baru. Penyebab yang paling umum adalah image yang dibuat di Apple Silicon tanpa docker build --platform linux/amd64, server yang mendengarkan port berbeda dari yang diekspos versi tersebut, atau transport UDP yang dikonfigurasi sebagai TCP.
Kesalahan API Lainnya
Silakan lihat Referensi API untuk kemungkinan respons kesalahan pada setiap endpoint API.
[!NOTE] Jika Anda memerlukan bantuan, silakan hubungi kami melalui Discord. Untuk dukungan game live, lihat sistem tiket kami.
🛠️ Hosting Mandiri
Endpoint yang di-host di mcp.edgegap.dev berjalan sebagai Cloudflare Worker (lihat worker/INSTALL.md). Untuk menjalankan server HTTP stateless yang sama di infrastruktur Anda sendiri, gunakan image Docker:
docker build -t edgegap-mcp .
docker run --rm -p 8080:8080 edgegap-mcp
Klien terhubung ke http://<host>:8080/mcp dengan header Authorization milik mereka sendiri, sama seperti saat terhubung ke endpoint yang di-host. Image ini tidak menyimpan kredensial, dan /health merespons tanpa kredensial. PORT, HOST, EDGEGAP_READ_ONLY, EDGEGAP_APP_ALLOWLIST, EDGEGAP_MAX_DURATION_MINUTES, EDGEGAP_MAX_AGENT_DEPLOYMENTS, dan EDGEGAP_STOP_OWN_ONLY berlaku; teruskan masing-masing dengan -e NAME=value. Jangan pernah meneruskan token API ke container: setiap klien mengirim tokennya sendiri pada setiap permintaan. Baca worker/DECISION.md sebelum mengeksposnya di luar jaringan privat.
Image siap pakai untuk linux/amd64 dan linux/arm64 dipublikasikan ke ghcr.io/edgegap/llm-mcp-server (dan, untuk konfigurasi yang sudah ada, nama lama ghcr.io/edgegap/edgegap-mcp), dengan tag main dan sha-<commit> pada setiap push ke main, serta versi pada tag v*:
docker run --rm -p 8080:8080 ghcr.io/edgegap/llm-mcp-server:main
Pengembangan
Lihat CONTRIBUTING.md untuk pemeriksaan yang harus dilalui suatu perubahan, CHANGELOG.md untuk perubahan pada setiap versi, dan SECURITY.md untuk melaporkan kerentanan.
npm ci
npm run build
npm test # mock-API tests; none reach Edgegap
npm run typecheck:worker
Untuk memperbarui skill yang disertakan ke commit terbaru llm-agent-skills, lalu merilis seperti biasa:
npm run sync-skills -- --ref main
npm run check-skills # exit 1 if src/skills.generated.ts differs from the pin
| Pengujian | Cakupan |
|---|---|
test/unit.test.mjs | Pengujian unit untuk aturan tag, image, nama rahasia, URL, dan penyensoran |
test/package.mjs | Pengemasan: satu bin, dependensi runtime, versi dalam step |
test/skills.mjs | Skill melalui MCP: alat, prompt, sumber daya, keamanan jalur, bundle sesuai dengan pin |
test/smoke.mjs | Handshake, pendaftaran alat, mode hanya-baca |
test/guards.mjs | Validasi lokal dan penerapan allowlist |
test/elicit.mjs | Prompt token: menerima, menolak pengakuan, menolak, tidak didukung |
test/newtools.mjs | Validator, generator Dockerfile, registry, deployment, alat relay dan matchmaker terhadap API mock lokal |
test/http.mjs | Server HTTP yang di-host sendiri: discovery tanpa token, token per permintaan, kredensial asing |
test/spec.mjs | Setiap endpoint dan kolom isi permintaan yang dikirim server tercantum di spec/ (alat tulis diperiksa dengan uji coba) |
test/snapshot.mjs | Nama, deskripsi, skema alat, dan instruksi sesuai dengan test/tools.snapshot.json; npm run snapshot:update setelah perubahan yang disengaja |
test/live-check.mjs | Tidak ada di npm test. Dijalankan terhadap API sungguhan dengan token dari organisasi nonproduksi |
Keputusan desain, model keamanan, dan hal-hal yang sengaja tidak dicakup dijelaskan di DESIGN.md.