Edgegap

ทางการ

ปรับใช้เซิร์ฟเวอร์เกมแบบผู้เล่นหลายคนจากเอเจนต์เขียนโค้ดของคุณ เครื่องมือสิบรายการที่นำเซิร์ฟเวอร์เฉพาะของ Unity, Unreal หรือ Godot จากอิมเมจคอนเทนเนอร์ไปสู่ผู้เล่นที่เชื่อมต่อได้

GitHub
1
ลองใช้ MCP นี้ผู้สนับสนุน

คุณทำอะไรได้บ้างด้วย Edgegap MCP?

  • Deploy a game server from a container image — ขอให้ผู้ช่วยลงทะเบียนคอนเทนเนอร์อิมเมจของคุณพร้อมการตั้งค่า CPU หน่วยความจำ และพอร์ต จากนั้นเปิดใช้งานใกล้กับผู้เล่นที่ระบุ
  • Track deployment status and connection details — ให้ผู้ช่วยตรวจสอบสถานะจนกว่าการปรับใช้ของคุณจะพร้อมและส่งคืนที่อยู่การเชื่อมต่อ หรือตรวจสอบสถานะและบันทึกสำหรับอินสแตนซ์ที่กำลังทำงานอยู่
  • Manage application versions — ขอให้ผู้ช่วยแสดงรายการแอปและเวอร์ชันที่มีอยู่ หรือสร้างเวอร์ชันใหม่จากการตั้งค่าของเวอร์ชันที่ใช้งานได้เพื่อหลีกเลี่ยงการทำซ้ำ
  • Stop deployments gracefully — สั่งให้ผู้ช่วยยุติการปรับใช้เฉพาะตามรหัสคำขอ โดยส่งสัญญาณปิดระบบอย่างสะอาดแทนการบังคับหยุด
  • Find and clean up orphaned servers — ขอให้ผู้ช่วยแสดงรายการการปรับใช้ทั้งหมดจากเซสชันก่อนหน้า เพื่อให้คุณสามารถระบุและหยุดอินสแตนซ์ที่ไม่ได้ใช้งาน

เซิร์ฟเวอร์ MCP แบบโฮสต์

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

ติดตั้งลง Claude Code, Codex, Cursor และอื่นๆ

เอกสาร

edgegap-mcp

เซิร์ฟเวอร์ MCP สำหรับ Edgegap ที่ช่วยให้เอเจนต์เขียนโค้ดพานักพัฒนาจาก "ฉันมีคอนเทนเนอร์เกมเซิร์ฟเวอร์" ไปสู่ "ผู้เล่นเชื่อมต่อกับมันแล้ว" โดยที่นักพัฒนาไม่ต้องอ่านเอกสารอ้างอิง API

เครื่องมือสิบตัว คัดสรรมาอย่างดี ไม่ได้สร้างจาก OpenAPI spec — ดู ขอบเขต ว่าทำไม

การติดตั้ง

มีสองวิธีให้รัน เลือกตามความสำคัญที่คุณมีต่อตำแหน่งของโทเค็น — ดู โทเค็นของคุณไปอยู่ที่ไหน

เอ็นด์พอยต์ระยะไกล

โฮสต์โดย Edgegap ในรูปแบบ Cloudflare Worker ไม่ต้องติดตั้งอะไร

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

ยังใช้เป็นคอนเนกเตอร์แบบกำหนดเองใน claude.ai ได้ด้วย: เพิ่ม https://mcp.edgegap.dev/mcp และระบุโทเค็นเดียวกัน

ท้องถิ่น

รันบนเครื่องของคุณเอง เริ่มโดยโปรแกรมแก้ไขของคุณ หนึ่งบรรทัดในคอนฟิก MCP ไคลเอนต์ของคุณ ไม่ต้องโคลน ไม่ต้องคอมไพล์

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

ใช้งานได้ใน Claude Code, Cursor, Codex และ VS Code ปักหมุดเวอร์ชันในโปรดักชัน (@edgegap/mcp@0.1.5) แทนที่จะลอยตามเวอร์ชันล่าสุด

ลงทะเบียนในรีจิสทรี MCP อย่างเป็นทางการในชื่อ dev.edgegap/mcp

เวอร์ชัน Node: เซิร์ฟเวอร์ท้องถิ่นต้องใช้ Node 18+ การดีพลอย Cloudflare Worker ด้วยตัวเองต้องใช้ Node 22+ เพราะ wrangler ต้องการมัน

โทเค็นของคุณไปอยู่ที่ไหน

สิ่งนี้แตกต่างกันตามโหมด และความแตกต่างคือเหตุผลที่ทั้งสองโหมดมีอยู่

ท้องถิ่น. เซิร์ฟเวอร์รันเป็นโพรเซสบนคอมพิวเตอร์ของคุณเอง การเรียกเครื่องมือครั้งแรกจะถามโทเค็นจากคุณ แสดงสิ่งที่โทเค็นอนุญาต และต้องมีการยอมรับอย่างชัดแจ้งก่อนที่จะยอมรับมัน จากนั้นโทเค็นจะอยู่ที่ไหน อย่างละเอียด:

  • หนึ่งตัวแปรในหน่วยความจำของโพรเซสนั้น ตลอดอายุเซสชันโปรแกรมแก้ไขของคุณ

นั่นคือรายการทั้งหมด ไม่ได้อยู่บนดิสก์ ไม่ได้อยู่ในไฟล์คอนฟิก ไม่ได้อยู่ในล็อก ไม่ได้อยู่บนเซิร์ฟเวอร์ Edgegap ใดๆ — สิ่งเดียวที่ส่งไปยัง Edgegap คือการเรียก API เอง เหมือนกับที่คุณรัน curl การปิดโปรแกรมแก้ไขของคุณจะเพิกถอนการเข้าถึงของเซิร์ฟเวอร์นี้โดยสิ้นเชิง

ระยะไกล. โทเค็นของคุณถูกส่งไปยัง mcp.edgegap.dev ในการร้องขอทุกครั้งและส่งต่อไปยัง Edgegap API จากที่นั่น มันผ่านโครงสร้างพื้นฐานที่ Edgegap ดำเนินการ วอร์กเกอร์ถือมันไว้ตลอดอายุการร้องขอและไม่เก็บมันไว้ แต่นั่นคือคำกล่าวอ้าง "เราไม่เก็บมัน" มากกว่า "เราไม่เห็นมัน" ทั้งสองต่างกัน และมีเพียงโหมดท้องถิ่นเท่านั้นที่ทำให้ข้อที่สองเป็นจริง

สร้างโทเค็นที่ https://app.edgegap.com/user-settings?tab=tokens

ในโหมดท้องถิ่น การตั้งค่า EDGEGAP_API_TOKEN มีความสำคัญเหนือพรอมต์ สำหรับ CI และสำหรับไคลเอนต์ที่ไม่สามารถแสดงพรอมต์ได้ อย่าส่งโทเค็นเป็นอาร์กิวเมนต์บรรทัดคำสั่ง — อาร์กิวเมนต์มองเห็นได้โดยโพรเซสอื่นผ่าน ps และเซิร์ฟเวอร์จะเตือนหากตรวจพบ

ควรใช้อันไหน. ระยะไกลสำหรับการลองครั้งแรก การสาธิต หรือเซสชันที่มีผู้ดูแลซึ่งความยุ่งยากในการตั้งค่าสำคัญกว่าการถือครอง ท้องถิ่นสำหรับสิ่งที่ไม่มีการดูแล สิ่งใดก็ตามในองค์กรที่มีเกมที่ใช้งานจริง และสิ่งใดก็ตามที่คุณไม่อยากขยายความไว้วางใจที่ไม่จำเป็น มาตรการป้องกันที่อธิบายด้านล่างมีอยู่ในโหมดท้องถิ่นเท่านั้น

อ่านสิ่งนี้ก่อนเชื่อมต่อเอเจนต์

โทเค็น API ของ Edgegap ไม่สามารถจำกัดขอบเขตได้ โทเค็นหนึ่งอนุญาตทุกแอปพลิเคชัน ทุกเวอร์ชัน ทุกดีพลอยเมนต์ที่รันอยู่ และการใช้งานของคุณทั่วทั้งองค์กร ไม่มีโทเค็นเฉพาะดีพลอยและไม่มีโทเค็นเฉพาะแอปพลิเคชัน

ผลที่ตามมาที่ควรพิจารณาอย่างรอบคอบ:

  • เอเจนต์ที่ถือโทเค็นนี้สามารถหยุดดีพลอยเมนต์ในโปรดักชันได้ ไม่ใช่แค่ตัวทดสอบที่มันสร้างขึ้น
  • การฉีดพรอมต์ที่ไปถึงเอเจนต์ — จากไฟล์ในรีโพ ปัญหา หน้าที่ดึงมา — ไปถึงโทเค็นด้วย
  • สิ่งใดก็ตามที่เอเจนต์บันทึก สะท้อน หรือส่งไปยังผู้ให้บริการโมเดล คือที่ที่โทเค็นอาจไปจบลง เซิร์ฟเวอร์นี้ไม่ได้บันทึกมัน แต่ไม่สามารถควบคุมสิ่งที่เอเจนต์ที่เหลือทำได้
  • บนเอ็นด์พอยต์ระยะไกล โทเค็นที่ไม่จำกัดขอบเขตเดียวกันนี้ยังถูกจัดการโดยวอร์กเกอร์ของ Edgegap ในการเรียกทุกครั้ง

การตั้งค่าที่แนะนำ เรียงตามระดับความระมัดระวังจากมากไปน้อย:

สถานการณ์การตั้งค่า
เอเจนต์ที่ไม่มีการดูแลหรืออัตโนมัติโหมดท้องถิ่น องค์กรแยกที่ไม่ใช่โปรดักชัน บวก EDGEGAP_READ_ONLY=1
เอเจนต์ที่มีผู้ดูแล เกมที่ใช้งานจริงในองค์กรโหมดท้องถิ่น EDGEGAP_APP_ALLOWLIST จำกัดขอบเขตเฉพาะแอปที่กำลังทำงาน บวก EDGEGAP_MAX_DURATION_MINUTES อ่าน ขอบเขตของรายการอนุญาต ก่อน — ดีพลอยเมนต์ที่รันอยู่แล้วไม่ครอบคลุม
นักพัฒนาเดี่ยว ไม่มีงานโปรดักชันโหมดใดก็ได้ ค่าเริ่มต้นใช้ได้ เพิกถอนโทเค็นเมื่อเสร็จ

รายการอนุญาตและแฟล็กอ่านอย่างเดียวถูกบังคับใช้ในเซิร์ฟเวอร์ท้องถิ่น ซึ่งหมายความว่ามันป้องกันเอเจนต์ที่ทำผิดพลาด ไม่ใช่เอเจนต์ที่ถูกบุกรุกให้เรียก API โดยตรง พวกมันจำกัดรัศมีการระเบิด ไม่ได้กำจัดมัน

ขอบเขตของรายการอนุญาต

EDGEGAP_APP_ALLOWLIST ถูกบังคับใช้โดยเครื่องมือสี่ตัวที่รับชื่อแอปพลิเคชัน: edgegap_create_app, edgegap_list_app_versions, edgegap_create_app_version และ edgegap_deploy

มัน ไม่ ถูกบังคับใช้โดยเครื่องมือห้าตัวที่ใช้คีย์ request_id: edgegap_get_deployment, edgegap_wait_for_deployment, edgegap_list_deployments, edgegap_stop_deployment และ edgegap_get_deployment_logs เอเจนต์ที่รันด้วยรายการอนุญาตที่ตั้งไว้สามารถแสดงรายการดีพลอยเมนต์ทั้งหมดในองค์กรแล้วตรวจสอบ อ่านล็อก หรือหยุดใดๆ ก็ได้ — รวมถึงดีพลอยเมนต์ที่อยู่ในแอปพลิเคชันนอกรายการ

ดังนั้นรายการอนุญาตจำกัดขอบเขตสิ่งที่เอเจนต์สามารถ สร้างและดีพลอยเข้าไป ไม่ใช่สิ่งที่มันสามารถ แตะต้องเมื่อรันแล้ว นั่นแคบกว่าเอกสารเวอร์ชันก่อนหน้านี้ที่บอกเป็นนัย

สำหรับการรับประกันที่แข็งแกร่งกว่าในวันนี้ ใช้ EDGEGAP_READ_ONLY=1 ซึ่งไม่ลงทะเบียนเครื่องมือกลายพันธุ์ห้าตัวเลย หรือชี้เอเจนต์ไปที่องค์กรแยกที่ไม่ใช่โปรดักชัน ทั้งสองไม่ได้รับผลกระทบจากช่องว่างนี้

รายงานโดย Syed Anas Mohiuddin กันยายน 2026

ตัวแปรสภาพแวดล้อม

สิ่งเหล่านี้กำหนดค่าคอนฟิกเซิร์ฟเวอร์ท้องถิ่น บนเอ็นด์พอยต์ระยะไกล ตั้งค่าโดย Edgegap และไม่สามารถเปลี่ยนต่อนักพัฒนาได้ — หากคุณต้องการสิ่งเหล่านี้ ให้รันในเครื่อง

ตัวแปรค่าเริ่มต้นวัตถุประสงค์
EDGEGAP_API_TOKEN(ถาม)โทเค็น API ไม่บังคับ — ละเว้นได้และนักพัฒนาจะถูกถามเมื่อใช้ครั้งแรก เพิ่มคำนำหน้า token ให้คุณ
EDGEGAP_READ_ONLY0ตั้งเป็น 1 และเครื่องมือกลายพันธุ์ห้าตัวจะไม่ถูกลงทะเบียน เอเจนต์ไม่เห็นมัน ดังนั้นไม่สามารถถูกชักชวนให้เรียกมันได้
EDGEGAP_APP_ALLOWLIST(ว่าง)ชื่อแอปพลิเคชันคั่นด้วยเครื่องหมายจุลภาค เมื่อตั้งค่า เครื่องมือสี่ตัวที่ใช้คีย์แอปพลิเคชันจะปฏิเสธที่จะแตะต้องสิ่งอื่น ไม่ จำกัดขอบเขตเครื่องมือห้าตัวที่ใช้คีย์ request_id — ดู ขอบเขตของรายการอนุญาต
EDGEGAP_MAX_DURATION_MINUTES60เพดานบน max_duration ที่เอเจนต์อาจตั้งบนเวอร์ชัน จำกัดค่าใช้จ่ายที่พุ่งสูงจากเอเจนต์ที่ไม่มีการดูแล
EDGEGAP_TIMEOUT_MS30000หมดเวลา HTTP ต่อการร้องขอ

เครื่องมือ

เครื่องมือสิบตัว เรียงตามลำดับที่อยู่บนเส้นทางทองคำ สิบตัวเดียวกันในทั้งสองโหมด

เครื่องมือกลายพันธุ์ใช้ทำอะไร
edgegap_list_appsปรับทิศทางก่อนทำอะไร ป้องกันแอปพลิเคชันซ้ำ
edgegap_create_appสร้างคอนเทนเนอร์สำหรับเวอร์ชัน
edgegap_list_app_versionsค้นหาเวอร์ชันที่ดีพลอยได้ หรือคัดลอกการตั้งค่าจากเวอร์ชันที่ทำงาน
edgegap_create_app_versionลงทะเบียนอิมเมจคอนเทนเนอร์ด้วย CPU หน่วยความจำ และพอร์ต
edgegap_deployเริ่มอินสแตนซ์หนึ่งตัวใกล้กับผู้เล่นที่ระบุ
edgegap_get_deploymentอ่านสถานะครั้งเดียว
edgegap_wait_for_deploymentโพลจนพร้อมด้วย backoff แล้วส่งคืนที่อยู่การเชื่อมต่อ
edgegap_list_deploymentsค้นหาเซิร์ฟเวอร์ที่ถูกทิ้งจากเซสชันก่อนหน้า
edgegap_stop_deploymentSIGTERM อย่างสุภาพ ทีละดีพลอยเมนต์
edgegap_get_deployment_logsเอาต์พุตคอนเทนเนอร์และรหัสออกจากการขัดข้องหลังความล้มเหลว

การตัดสินใจออกแบบ

คัดสรร ไม่ได้สร้างอัตโนมัติ API ของ Edgegap มีประมาณหกสิบโอเปอเรชัน การสร้างเครื่องมือหนึ่งตัวต่อโอเปอเรชันอัตโนมัติจะใส่คำอธิบายหกสิบตัวเข้าไปในบริบทของเอเจนต์ทุกเทิร์นและลดคุณภาพการเลือกเครื่องมืออย่างวัดได้ สิบตัวนี้ครอบคลุมเส้นทางที่แปลงนักพัฒนาใหม่

wait_for_deployment เป็นเครื่องมือ ไม่ใช่ลูป ปล่อยให้เอเจนต์จัดการเอง มันจะเรียกเอ็นด์พอยต์สถานะในลูปถี่ๆ เผาเทิร์น และยอมแพ้เร็ว การรวมการโพลและ backoff ในการเรียกเดียวลบความล้มเหลวที่พบบ่อยที่สุดในการดีพลอยที่ขับเคลื่อนโดยเอเจนต์

ข้อผิดพลาดเขียนเพื่อการแก้ไขตัวเอง 424 กลับมาพร้อมบอกว่าดึงอิมเมจไม่ได้และควรตรวจสอบฟิลด์ใด 422 บอกให้ลองพิกัดอื่นหรือลดคำขอทรัพยากร เอเจนต์สามารถดำเนินการกับสิ่งเหล่านี้ได้โดยไม่ต้องวนกลับไปหามนุษย์

การตรวจสอบท้องถิ่นก่อนส่งผ่านสาย อัตราส่วนหน่วยความจำต่อ CPU และตำแหน่งผู้เล่นที่หายไปถูกจับที่นี่แทนที่จะแสดงเป็น 400 ที่ไม่ชัดเจน

โอเปอเรชันจำนวนมากถูกตัดออกโดยตั้งใจ stop รับหนึ่ง request_id ไม่มีเครื่องมือหยุดจำนวนมาก เพราะเอเจนต์ที่มีนิพจน์ตัวกรองและบั๊กสามารถหยุดฝูงบินโปรดักชันได้

ทั้งเอ็นด์พอยต์ที่โฮสต์และแพ็คเกจท้องถิ่น เอ็นด์พอยต์ที่โฮสต์ลบทุกขั้นตอนระหว่างการค้นหาเซิร์ฟเวอร์นี้และการเรียกเครื่องมือ ซึ่งเป็นจุดที่นักพัฒนาส่วนใหญ่หลุดออก แพ็คเกจท้องถิ่นเป็นวิธีเดียวที่จะรันเซิร์ฟเวอร์โดยไม่ขยายการถือครองโทเค็นที่ไม่จำกัดขอบเขตให้บุคคลที่สาม รวมถึงเรา ไม่มีอันไหนเหนือกว่าอีกอัน ดังนั้นทั้งสองจึงจัดส่ง ดู worker/DECISION.md สำหรับเวอร์ชันยาว

ขอบเขต

ไม่เปิดเผย โดยตั้งใจ: การจับคู่ รีเลย์ ฝูงบินส่วนตัว ฝูงบินอัจฉริยะ การจัดเก็บเอ็นด์พอยต์ รายการ ACL/ไวท์ลิสต์ แท็กดีพลอยเมนต์ เมตริก การจัดการรีจิสทรีคอนเทนเนอร์ การกำหนดค่า DNS

สิ่งเหล่านี้เป็นความสามารถจริง แต่เป็นของสตูดิโอที่ดำเนินการบนแพลตฟอร์มอยู่แล้ว ไม่ใช่นักพัฒนาที่ดีพลอยเซิร์ฟเวอร์แรกของพวกเขา การเพิ่มมันจะแลกเส้นทางการแปลงกับพื้นที่ผิว

ข้อจำกัดที่ทราบ: การขอโทเค็นเลย

สิ่งนี้ใช้กับโหมดท้องถิ่น ซึ่งโทเค็นถูกรวบรวมผ่านการสอบถามแทนที่จะอ่านจากคอนฟิก

ข้อกำหนด MCP กล่าวว่าเซิร์ฟเวอร์ไม่ควรใช้การสอบถามเพื่อรวบรวมข้อมูลที่ละเอียดอ่อน และโทเค็น API ก็ละเอียดอ่อน เซิร์ฟเวอร์นี้ทำมันอยู่ดี เพราะการกำหนดให้มีโทเค็นในไฟล์คอนฟิกก่อนที่อะไรจะทำงานคือจุดที่หลุดออกมากที่สุดในช่องทางการเริ่มต้น และจุดทั้งหมดของเซิร์ฟเวอร์คือการลบความยุ่งยากในการตั้งค่า

นั่นคือการแลกเปลี่ยนโดยตั้งใจ ไม่ใช่รูปแบบที่จะคัดลอก สิ่งที่ทำให้มันป้องกันได้คือชุดมาตรการใน src/auth.ts — การจัดเก็บในหน่วยความจำเท่านั้น การเปิดเผยในภาษาธรรมดา การยอมรับที่จำเป็น การปกปิดจากเอาต์พุตทั้งหมด และตัวแปรสภาพแวดล้อมชนะเสมอเมื่อมีอยู่ การลบสิ่งใดสิ่งหนึ่งทำลายการแลกเปลี่ยน

การแก้ไขจริงอยู่ฝั่ง Edgegap และจะปรับปรุงทั้งสองโหมด: ข้อมูลประจำตัวที่จำกัดขอบเขต เพิกถอนได้ เฉพาะดีพลอย ออกผ่าน OAuth แทนที่จะวางเป็นความลับ จนกว่าสิ่งเหล่านั้นจะมีอยู่ พรอมต์โต้ตอบเป็นวิธีแก้ไขชั่วคราวและถูกติดป้ายเช่นนั้นในโค้ด

การพัฒนา

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

ไม่มีสิ่งเหล่านี้เรียกเครือข่าย elicit.mjs ยืนยันว่าพรอมต์ระบุขอบเขตทั่วทั้งองค์กร ว่าการยอมรับจำเป็น ว่าโทเค็นไม่ปรากฏในเอาต์พุตเครื่องมือ และการปฏิเสธสร้างข้อความหยุดและรายงานแทนที่จะเป็นลูปลองใหม่