Superserve Sandbox MCP
ทางการเครื่องเสมือนที่ปลอดภัยสำหรับเอเจนต์ที่โฮสต์โดย Superserve
คุณทำอะไรได้บ้างด้วย Superserve Sandbox MCP?
- สร้างและรันแซนด์บ็อกซ์ — ขอให้ผู้ช่วยของคุณสร้างแซนด์บ็อกซ์และรันคำสั่งเช่น
python --versionโดยใช้sandbox_createและsandbox_exec - จัดการไฟล์ในแซนด์บ็อกซ์ — ให้ผู้ช่วยของคุณอ่าน เขียน หรือแสดงรายการไฟล์ภายในแซนด์บ็อกซ์ด้วย
sandbox_files_read,sandbox_files_writeและsandbox_files_list - ควบคุมการเข้าถึงเครือข่าย — กำหนดค่านโยบายการออกบน
sandbox_createหรือsandbox_updateเพื่ออนุญาตหรือบล็อกปลายทางขาออก จากนั้นตรวจสอบการรับส่งข้อมูลด้วยsandbox_network_log - เผยแพร่ URL ตัวอย่าง — ขอให้ผู้ช่วยของคุณเปิดเผยบริการที่กำลังทำงานโดยเรียก
sandbox_preview_urlเพื่อรับลิงก์สาธารณะหรือลิงก์ส่วนตัวที่หมดอายุได้ - ขับเคลื่อนเดสก์ท็อป GUI — ใช้
sandbox_computerเพื่อจับภาพหน้าจอ คลิก พิมพ์ หรือเลื่อนภายในแซนด์บ็อกซ์เดสก์ท็อปสำหรับงานอัตโนมัติของเบราว์เซอร์ - จัดการวงจรชีวิตของแซนด์บ็อกซ์ — หยุดชั่วคราว ดำเนินการต่อ หรือลบแซนด์บ็อกซ์อย่างถาวรด้วย
sandbox_pause,sandbox_resumeและsandbox_kill
เอกสาร
MCP Server
สร้าง รัน และจัดการ Superserve sandboxes จาก MCP client ใดก็ได้
ต้องการให้ agent สร้าง sandboxes ด้วยตัวเองหรือไม่? MCP server นี้ทำได้
MCP server ของ Superserve (@superserve/mcp) เปิดเผย sandbox primitives เป็น Model Context Protocol tools เพื่อให้ client ที่รองรับ MCP ใดก็ได้ — Claude, Cursor, VS Code, Windsurf, Codex — สามารถสร้าง sandboxes รันคำสั่ง อ่านและเขียนไฟล์ สร้าง templates จัดการ secrets และควบคุมการเข้าถึงเครือข่ายใน Firecracker microVM ที่แยกออกจากกัน
รันได้สองวิธี: ในเครื่อง ผ่าน stdio ด้วย npx หรือกับ hosted endpoint ที่ https://mcp.superserve.ai โดยไม่ต้องติดตั้งในเครื่อง ทั้งสองวิธีตรวจสอบสิทธิ์ด้วย SUPERSERVE_API_KEY ของคุณและกำหนดเป้าหมาย sandbox ต่อการเรียกตาม ID มันเป็น wrapper บางๆ เหนือ TypeScript SDK ดังนั้น per-sandbox data-plane token จะไม่ไปถึงโมเดล
Quickstart
เพิ่ม server ให้กับ client ของคุณ (ดู Install) จากนั้นขอให้ agent "สร้าง sandbox และรัน python --version ในนั้น" agent จะเรียก sandbox_create จากนั้น sandbox_exec และรายงานผลลัพธ์ — โดยไม่ต้องเขียนโค้ดจากคุณ
คุณต้องมี Superserve API key — สร้างได้ที่หน้า API key ไม่มีการติดตั้งทั่วโลก npx จะดึง server ในการใช้งานครั้งแรก
Install
```bash theme={"theme":{"light":"github-light","dark":"vitesse-dark"}} claude mcp add superserve \ --env SUPERSERVE_API_KEY=ss_live_xxxxxxxxxxxxxxxx \ -- npx -y @superserve/mcp ``` เพิ่มใน `claude_desktop_config.json` (macOS: `~/Library/Application Support/Claude/`):หมายเหตุ
ตั้งค่า
SUPERSERVE_API_KEYในenvของ server — MCP clients ไม่ได้รับค่าจาก shell ของคุณ ควรใช้ secret-input prompt มากกว่าการวาง key ดิบในที่ที่ client ของคุณรองรับ (ดู VS Code ด้านล่าง)
```json theme={"theme":{"light":"github-light","dark":"vitesse-dark"}}
{
"mcpServers": {
"superserve": {
"command": "npx",
"args": ["-y", "@superserve/mcp"],
"env": { "SUPERSERVE_API_KEY": "ss_live_xxxxxxxxxxxxxxxx" }
}
}
}
```
เพิ่มใน `.cursor/mcp.json` (โปรเจกต์) หรือ `~/.cursor/mcp.json` (ทั่วโลก):
```json theme={"theme":{"light":"github-light","dark":"vitesse-dark"}}
{
"mcpServers": {
"superserve": {
"command": "npx",
"args": ["-y", "@superserve/mcp"],
"env": { "SUPERSERVE_API_KEY": "ss_live_xxxxxxxxxxxxxxxx" }
}
}
}
```
เพิ่มใน `.vscode/mcp.json`. บล็อก `inputs` จะถามหา key แทนการเก็บเป็นข้อความธรรมดา:
```json theme={"theme":{"light":"github-light","dark":"vitesse-dark"}}
{
"inputs": [
{
"id": "superserve-key",
"type": "promptString",
"description": "Superserve API key",
"password": true
}
],
"servers": {
"superserve": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@superserve/mcp"],
"env": { "SUPERSERVE_API_KEY": "${input:superserve-key}" }
}
}
}
```
เพิ่มใน `~/.codeium/windsurf/mcp_config.json`:
```json theme={"theme":{"light":"github-light","dark":"vitesse-dark"}}
{
"mcpServers": {
"superserve": {
"command": "npx",
"args": ["-y", "@superserve/mcp"],
"env": { "SUPERSERVE_API_KEY": "ss_live_xxxxxxxxxxxxxxxx" }
}
}
}
```
เพิ่มใน `~/.codex/config.toml`. `env_vars` ส่งต่อ `SUPERSERVE_API_KEY` จากสภาพแวดล้อมของคุณ ดังนั้น key ดิบจะไม่ถูกเก็บในไฟล์คอนฟิก (export ใน shell ก่อน) Codex ยังอ่าน `instructions` ของ server สำหรับคำแนะนำเวิร์กโฟลว์ข้ามเครื่องมือ
```toml theme={"theme":{"light":"github-light","dark":"vitesse-dark"}}
[mcp_servers.superserve]
command = "npx"
args = ["-y", "@superserve/mcp"]
env_vars = ["SUPERSERVE_API_KEY"]
```
สำหรับ [hosted](#hosted-remote) endpoint ให้ใช้ `url = "https://mcp.superserve.ai"` กับ `bearer_token_env_var = "SUPERSERVE_API_KEY"`
Hosted (ระยะไกล)
ไม่อยากรันอะไรในเครื่อง? hosted endpoint ที่ https://mcp.superserve.ai พูด Streamable HTTP — ไม่ต้องใช้ npx ไม่ต้องใช้ Node ส่ง Superserve API key ของคุณเป็น bearer token endpoint ไม่มีสถานะและจำกัดตามบัญชี (key ของคุณแมปกับทีมของคุณแล้ว) และ per-sandbox data-plane token จะไม่ออกจาก server
```bash theme={"theme":{"light":"github-light","dark":"vitesse-dark"}} claude mcp add --transport http superserve https://mcp.superserve.ai \ --header "Authorization: Bearer ss_live_xxxxxxxxxxxxxxxx" ``` เพิ่มใน `.cursor/mcp.json` (โปรเจกต์) หรือ `~/.cursor/mcp.json` (ทั่วโลก):หมายเหตุ
Bearer auth ทำงานใน client ใดก็ได้ที่ให้คุณตั้งค่า request header — Claude Code, Cursor, VS Code และ Anthropic Messages API connector Claude.ai, Claude Desktop's Custom Connector UI และ ChatGPT developer mode ไม่มีฟิลด์ static-bearer / custom-header (คาดหวัง OAuth) ซึ่ง hosted endpoint ยังไม่รองรับ — ใช้ local install ในกรณีนั้น
```json theme={"theme":{"light":"github-light","dark":"vitesse-dark"}}
{
"mcpServers": {
"superserve": {
"url": "https://mcp.superserve.ai",
"headers": { "Authorization": "Bearer ss_live_xxxxxxxxxxxxxxxx" }
}
}
}
```
เพิ่มใน `.vscode/mcp.json`. บล็อก `inputs` จะถามหา key แทนการเก็บเป็นข้อความธรรมดา:
```json theme={"theme":{"light":"github-light","dark":"vitesse-dark"}}
{
"inputs": [
{
"id": "superserve-key",
"type": "promptString",
"description": "Superserve API key",
"password": true
}
],
"servers": {
"superserve": {
"type": "http",
"url": "https://mcp.superserve.ai",
"headers": { "Authorization": "Bearer ${input:superserve-key}" }
}
}
}
```
ส่งเป็น connector ในคำขอ [Anthropic Messages API](https://docs.anthropic.com/en/docs/agents-and-tools/mcp-connector):
```json theme={"theme":{"light":"github-light","dark":"vitesse-dark"}}
{
"mcp_servers": [
{
"type": "url",
"name": "superserve",
"url": "https://mcp.superserve.ai",
"authorization_token": "ss_live_xxxxxxxxxxxxxxxx"
}
]
}
```
เครื่องมือและพฤติกรรมเหมือนกับ local server — ข้อแตกต่างคือการขนส่งและ key ที่เดินทางเป็น bearer header แทน env var
เครื่องมือ
| เครื่องมือ | ฟังก์ชัน |
|---|---|
sandbox_create | สร้าง sandbox ใหม่; คืนค่า id รองรับ secrets, กฎ egress และ preview_access |
sandbox_update | เปลี่ยน metadata, กฎ egress, ช่วงเวลา lifecycle หรือ preview_access |
sandbox_list | แสดงรายการ sandboxes ของคุณ (ที่ใช้งานและหยุดชั่วคราว) กรองตาม metadata ได้ |
sandbox_info | ดูสถานะ ทรัพยากร metadata กฎเครือข่าย และ secret bindings ของ sandbox หนึ่ง อ่านอย่างเดียว |
sandbox_exec | รันคำสั่ง shell; คืนค่า stdout, stderr, exit code เรียกคืน sandbox ที่หยุดชั่วคราวอัตโนมัติ |
sandbox_files_read | อ่านไฟล์ (ข้อความ UTF-8 หรือ base64 สำหรับไบนารี) |
sandbox_files_write | สร้างหรือเขียนทับไฟล์ สร้างไดเรกทอรีแม่โดยอัตโนมัติ |
sandbox_files_list | แสดงรายการในไดเรกทอรี (ชื่อ, ประเภท, ขนาด, เวลาที่แก้ไข) |
sandbox_files_download_dir | ดาวน์โหลดไดเรกทอรีเป็น base64 ZIP (ข้าม symlinks) จำกัดที่ 10 MiB; ใหญ่กว่านั้น → SDK/CLI |
sandbox_pause | หยุด sandbox ชั่วคราว; สถานะถูกเก็บไว้ |
sandbox_resume | เรียกคืน sandbox ที่หยุดชั่วคราว (ปกติไม่จำเป็น — exec เรียกคืนอัตโนมัติ) |
sandbox_kill | ลบ sandbox ถาวร |
sandbox_preview_url | เผยแพร่พอร์ตและคืนค่า public URL ที่สะอาดหรือ private signed URL ที่หมดอายุ |
sandbox_network_log | ตรวจสอบการเชื่อมต่อขาออกของ sandbox (host, verdict, bytes) โดยไม่ต้องเรียกคืน |
sandbox_computer | ขับเคลื่อน GUI desktop sandbox: screenshot, เมาส์, คีย์บอร์ด, เลื่อน, ปรับขนาด, viewer URL หนึ่งการกระทำต่อการเรียก |
sandbox_template_list | แสดงรายการ templates (base images) ที่ทีมของคุณเปิดใช้ได้ |
sandbox_template_create | สร้าง template ที่กำหนดเองด้วยรูปร่าง vCPU/หน่วยความจำ/ดิสก์เฉพาะหรือซอฟต์แวร์ที่ติดตั้งไว้ล่วงหน้า (async — รอจนพร้อม) |
secret_list | แสดงรายการ team secrets ที่ผูกได้ (metadata เท่านั้น — ไม่มีค่า) |
sandbox_attach_secret | ผูก secret ที่เก็บไว้กับ sandbox ที่รันอยู่ภายใต้ env var |
sandbox_detach_secret | ลบ secret binding จาก sandbox |
เครื่องมือส่วนใหญ่รับ sandbox_id; ข้อยกเว้นคือ sandbox_create, sandbox_list, sandbox_template_list, sandbox_template_create และ secret_list เริ่มต้นด้วยหนึ่งในนั้นเพื่อรับ ID จากนั้นส่งต่อไปในการเรียกถัดไป เครื่องมืออ่านอย่างเดียว (sandbox_list, sandbox_info, sandbox_files_read, sandbox_files_list, sandbox_files_download_dir, sandbox_network_log, sandbox_template_list, secret_list) ถูกระบุเพื่อให้ clients ข้ามการยืนยัน; sandbox_preview_url เป็นการเขียนแบบ idempotent เพราะเผยแพร่พอร์ตที่ขอ และ sandbox_kill ถูกระบุว่าเป็นการทำลาย
ตัวอย่าง
โฟลว์ agent ทั่วไปสำหรับ "เปิด sandbox เขียนสคริปต์ Python ที่พิมพ์จำนวนเฉพาะแรก และรันมัน":
sandbox_create { name: "primes" }
→ { id: "a1b2c3…", name: "primes", status: "active" }
sandbox_files_write { sandbox_id: "a1b2c3…", path: "/app/primes.py", content: "…" }
→ { path: "/app/primes.py", bytes: 142 }
sandbox_exec { sandbox_id: "a1b2c3…", command: "python /app/primes.py" }
→ { exit_code: 0, stdout: "2 3 5 7 11 13 17 19 23 29", stderr: "" }
เมื่อเสร็จแล้ว agent สามารถ sandbox_pause (เก็บสถานะ ถูกกว่าในการเก็บไว้) หรือ sandbox_kill (ถาวร)
การกำหนดค่า
| ตัวแปร | จำเป็น | คำอธิบาย |
|---|---|---|
SUPERSERVE_API_KEY | ใช่ | Superserve API key ของคุณ (เริ่มต้นด้วย ss_live_) |
SUPERSERVE_BASE_URL | ไม่ | แทนที่ control-plane URL (ค่าเริ่มต้นคือ https://api.superserve.ai) |
พฤติกรรมและข้อจำกัด
- Auto-resume.
sandbox_execและเครื่องมือไฟล์เรียกคืน sandbox ที่หยุดชั่วคราวอย่างโปร่งใส ดังนั้น agents ไม่ต้องเรียกsandbox_resumeก่อนsandbox_resumeมีไว้เพื่ออุ่น sandbox อย่างชัดเจนเท่านั้น - Output ถูกจำกัดสำหรับ context.
sandbox_execตัด stdout และ stderr ที่ 32 KiB ต่อรายการ — ผลลัพธ์ที่ถูกตัดตั้งค่าtruncated: trueและรายงานความยาวไบต์ดั้งเดิมsandbox_files_readปฏิเสธ ไฟล์ที่ใหญ่กว่า 1 MiB (ไม่คืนค่าเนื้อหาบางส่วน); ข้อผิดพลาดบอกให้อ่านส่วนด้วยsandbox_exec(เช่นhead -c) หรือดาวน์โหลดทั้งไฟล์ด้วย SDK/CLI เนื้อหา inline ของsandbox_files_writeจำกัดที่ 8 MiB - ค่าเริ่มต้น command timeout คือ 60 วินาที สูงสุดที่ 10 นาที แทนที่ต่อการเรียกด้วย
timeout_ms - Egress ควบคุมได้
allow_out(รูปแบบโดเมน, IP หรือ CIDRs) เพิ่มปลายทางที่อนุญาต;deny_out(IP หรือ CIDRs ไม่มีโดเมน) บล็อกพวกมันallow_outเพียงอย่างเดียว ไม่ ล็อก sandbox — สำหรับ allowlist ที่เข้มงวด รวมกับdeny_out: ["0.0.0.0/0"](ปฏิเสธทั้งหมด จากนั้นอนุญาตปลายทางที่ระบุ) หาก allowlist มีกฎโดเมนหรือเวิร์กโหลดแก้ไข hostnames ให้อนุญาต DNS resolvers ของ sandbox ด้วย1.1.1.1/32และ8.8.8.8/32เนื่องจากการปฏิเสธทั้งหมดบล็อก DNS ด้วย; ปล่อยพวกมันออกจาก allowlist ที่เป็น IP เท่านั้น ซึ่ง resolver ที่อนุญาตเป็นเพียงช่องทางขาออกพิเศษ ตั้งค่าเหล่านี้บนsandbox_createหรือsandbox_updateและตรวจสอบสิ่งที่ sandbox เข้าถึงจริงด้วยsandbox_network_log - ข้อผิดพลาดนำไปปฏิบัติได้ การเรียกเครื่องมือที่ล้มเหลวคืนค่าข้อความสั้นบอก agent ว่าต้องทำอะไรต่อไป — เช่น "Sandbox quota reached. Pause or kill a sandbox, or retry later." — แทน stack trace ดิบ เพื่อให้ agent แก้ไขตัวเองได้
Secrets, templates และพอร์ต
Secrets. อย่าส่งข้อมูลรับรองเป็น env_vars ข้อความธรรมดา แทน:
- สร้าง secret ครั้งเดียวด้วย TypeScript SDK (
Secret.create()) หรือ console — ค่าดิบไม่เคยเดินทางผ่าน agent หรือ MCP server ดังนั้น การสร้าง secret จึงไม่ใช่ MCP tool โดยเจตนา - ค้นหา secrets ที่ผูกได้ด้วย
secret_list(metadata เท่านั้น — ค่าไม่เคยออกจากแพลตฟอร์ม) - ผูกตอนสร้าง —
secrets: { ANTHROPIC_API_KEY: "anthropic-prod" }บนsandbox_create— หรือทีหลังด้วยsandbox_attach_secret/sandbox_detach_secret
sandbox เห็น proxy token; แพลตฟอร์มสลับข้อมูลรับรองจริงเฉพาะสำหรับคำขอขาออกไปยัง hosts ที่อนุญาตของ secret
Templates. sandbox สืบทอด vCPU/หน่วยความจำ/ดิสก์จาก template และไม่สามารถแทนที่ได้ตอน sandbox_create เพื่อให้ได้รูปร่างเฉพาะ (เช่น sandbox 4 vCPU) หรือซอฟต์แวร์ที่ติดตั้งไว้ล่วงหน้า สร้าง template ด้วย sandbox_template_create จากนั้นรอ sandbox_template_list จนกว่า status เป็น ready ก่อนส่งเป็น from_template
พอร์ต. MCP sandboxes ใหม่ใช้ public เป็นการเข้าถึงเริ่มต้นสำหรับพอร์ตที่เผยแพร่ใหม่; เฉพาะพอร์ตที่เผยแพร่อย่างชัดเจนเท่านั้นที่เข้าถึงได้ ส่ง preview_access: "private" ไปยัง sandbox_create (หรือ sandbox_update) เพื่อเปลี่ยนค่าเริ่มต้นสำหรับพอร์ตในอนาคต พอร์ตที่มีอยู่คงโหมดของตัวเอง เริ่ม server ด้วย sandbox_exec จากนั้นเรียก sandbox_preview_url; เครื่องมือเผยแพร่พอร์ตนั้นหนึ่งพอร์ตแบบ idempotent และใช้โหมดพอร์ตที่คืนค่าเพื่อคืนค่า public URL ที่สะอาดหรือ private signed URL ที่หมดอายุ ลิงก์ส่วนตัวค่าเริ่มต้นหนึ่งชั่วโมง; ตั้งค่า expires_in_seconds เป็นค่าตั้งแต่ 1 ถึง 604800 วินาที ดู Preview URLs
การใช้คอมพิวเตอร์
sandbox_computer ขับเคลื่อน GUI desktop ใน sandbox ที่สร้างจาก desktop template เช่น superserve/desktop รับหนึ่ง action ต่อการเรียกในคำศัพท์ที่โมเดล computer-use ปล่อย: screenshot, left_click, right_click, middle_click, double_click, triple_click, left_click_drag, left_mouse_down, left_mouse_up, mouse_move, key, type, scroll, wait, resize และ stream_url การกระทำของตัวชี้รับ coordinate: [x, y] ในพิกเซลหน้าจอ (จุดเริ่มต้นซ้ายบน); key และ type รับ text; scroll รับ scroll_direction และ scroll_amount ที่ไม่บังคับ
sandbox_create { name: "browser", from_template: "superserve/desktop" }
sandbox_computer { sandbox_id: "a1b2c3…", action: "left_click", coordinate: [640, 32] }
→ text "left_click done (1280x800)" + image/png
sandbox_computer { sandbox_id: "a1b2c3…", action: "type", text: "https://example.com" }
sandbox_computer { sandbox_id: "a1b2c3…", action: "key", text: "Return" }
การกระทำอินพุตคืนค่า screenshot ใหม่ของผลลัพธ์ ดังนั้นเทิร์น act-then-look ของโมเดลคือการเรียกเครื่องมือหนึ่งครั้ง; ส่ง screenshot_after: false เมื่อส่งหลายการกระทำติดต่อกัน wait หยุดชั่วคราวเป็นเวลา duration_ms (สูงสุด 10 วินาที) โดยไม่ต้องขอ sandbox stream_url คืนค่า viewer เบราว์เซอร์สดสำหรับ desktop ภายใต้นโยบาย preview ของ sandbox
หากการกระทำอินพุตล้มเหลว อินพุตอาจถูกส่งไปแล้ว เครื่องมือบอกเช่นนั้นและขอให้ agent ถ่าย screenshot ก่อนทำซ้ำ ดู Desktop guide สำหรับพื้นผิว SDK พื้นฐาน
ยังไม่มีในพื้นผิว MCP
MCP server ครอบคลุม agent loop ทั่วไป ตารางด้านบนคือชุดเครื่องมือ v1 ที่สมบูรณ์ ความสามารถบางอย่างของ SDK ยังไม่ได้เปิดเผย — ให้ใช้ TypeScript SDK โดยตรงสำหรับ:
- การสร้าง secret —
Secret.create()(MCP server จะ ผูก กับ secret ที่มีอยู่เท่านั้น) - คำสั่งแบบสตรีมมิ่งและแบบโต้ตอบ — การสตรีม
run()callbacks และcommands.spawn(stdin, สัญญาณ, กระบวนการที่ทำงานยาวนาน) - การถ่ายโอนขนาดใหญ่หรือแบบสตรีมมิ่ง — การดาวน์โหลดไดเรกทอรีรองรับสูงสุด 10 MiB ผ่าน
sandbox_files_download_dir; เกินกว่านั้น (และสำหรับการอัปโหลดแบบ archive/สตรีมมิ่ง หรือไฟล์เดี่ยวที่เกินขีดจำกัดการอ่าน 1 MiB / การเขียนแบบอินไลน์ 8 MiB) ให้ใช้ SDK/CLI (files.downloadDir, การอัปโหลดแบบสตรีมมิ่ง) - การเรียกเก็บเงินและการค้นหาผู้ให้บริการ — ข้อมูลการใช้งานและ
Provider.list()สำหรับการตั้งค่าผู้ให้บริการ secret
สิ่งเหล่านี้ถูกติดตามเป็นงานติดตามผล
วิธีการทำงาน
เซิร์ฟเวอร์ครอบคลุม TypeScript SDK และเก็บเฉพาะ SUPERSERVE_API_KEY ของ control-plane ของคุณเท่านั้น การเรียกใช้เครื่องมือแต่ละครั้งจะเชื่อมต่อกับ sandbox เป้าหมายตาม ID; SDK จัดการ data-plane access token ต่อ sandbox ภายในและหมุนเวียนเมื่อ resume ดังนั้นจึงไม่ถูกเปิดเผยต่อโมเดลหรือส่งกลับในผลลัพธ์ของเครื่องมือ เครื่องมือไม่มีสถานะ — ไม่มี "sandbox ปัจจุบัน" ที่ซ่อนอยู่ — ซึ่งทำให้พฤติกรรมคาดเดาได้ในการเรียกใช้เครื่องมือแบบหลายรอบและแบบขนาน
การแก้ไขปัญหา
- เครื่องมือไม่ปรากฏ หรือเซิร์ฟเวอร์ไม่เริ่มทำงาน สาเหตุเกือบทั้งหมดมาจาก API key — MCP clients ไม่ สืบทอดตัวแปรสภาพแวดล้อมจาก shell ของคุณ ตั้งค่า
SUPERSERVE_API_KEYในบล็อกenvของเซิร์ฟเวอร์ (ดู Install) ไม่ใช่แค่ในเทอร์มินัลของคุณ Authentication failedคีย์หายไปหรือไม่ถูกต้อง คีย์สำหรับการผลิตเริ่มต้นด้วยss_live_; สร้างได้ที่หน้า API key- การเรียกครั้งแรกช้า
npxดาวน์โหลดแพ็กเกจในการใช้ครั้งแรกและแคชไว้; การเริ่มครั้งต่อไปจะเร็ว - ต้องใช้ Node 18+ เซิร์ฟเวอร์ในเครื่องทำงานบน Node ผ่าน
npx(endpoint hosted ไม่มีข้อกำหนดรันไทม์ในเครื่อง) 401 Unauthorizedจาก endpoint ที่โฮสต์ bearer token หายไปหรือไม่ใช่คีย์ss_live_ที่ถูกต้อง ส่งเป็นAuthorization: Bearer ss_live_…(ดู Hosted)
เกี่ยวข้อง
หยุดชั่วคราว, resume, และลบ sandboxes Exec, สตรีมมิ่ง, cwd, env, และ timeouts Broker คีย์ผู้ให้บริการโดยไม่เปิดเผยต่อ sandbox ไลบรารีที่ MCP server ครอบคลุมเอกสารนี้สร้างและโฮสต์บน Mintlify ซึ่งเป็นแพลตฟอร์มเอกสารสำหรับนักพัฒนา