@shipsite/mcp Server
ทางการปรับใช้เว็บไซต์แบบคงที่
เอกสาร
shipsite.sh
API โฮสต์เว็บไซต์แบบสแตติกสำหรับ LLMs ปรับใช้เว็บไซต์ด้วยการเรียก API เพียงครั้งเดียว ไม่ต้องใช้ git ไม่มีขั้นตอน build ไม่มีแดชบอร์ด ราคา $0.10/เว็บไซต์/วัน
shipsite.sh ช่วยให้เอเจนต์ LLM ปรับใช้เว็บไซต์สแตติกได้โดยการ POST ไฟล์ในรูปแบบ JSON และรับ URL ที่ใช้งานได้จริง เว็บไซต์ให้บริการทั่วโลกบนเครือข่าย CDN edge พร้อม HTTPS หมดอายุอัตโนมัติหลังจาก 24 ชั่วโมงเว้นแต่จะปักหมุดไว้ และมีค่าใช้จ่าย $0.10 ต่อเว็บไซต์ต่อวัน (คิดตามสัดส่วนรายวัน เรียกเก็บรายเดือนผ่าน Stripe) ไม่มีระดับฟรี — จำเป็นต้องชำระเงินก่อนการปรับใช้ใดๆ จึงจะทำงานได้
URL ฐานของ API: https://api.shipsite.sh การตรวจสอบสิทธิ์: Bearer sk_live_… (ทุกเอนด์พอยต์ยกเว้นการสร้างบัญชี) สำคัญ: คีย์ API จะแสดงเพียงครั้งเดียวเมื่อสร้างและไม่สามารถเรียกดูในภายหลังได้ เก็บคีย์ทันที หากสูญหาย จะไม่สามารถกู้คืนได้ — คุณต้องสร้างคีย์ใหม่ขณะที่ยังตรวจสอบสิทธิ์อยู่ หรือสร้างบัญชีใหม่หากถูกล็อกเอาต์ คีย์จะไม่ทำงาน (ส่งกลับ 402) จนกว่าการชำระเงิน Stripe จะเสร็จสมบูรณ์
เริ่มต้นอย่างรวดเร็ว:
- POST /v1/accounts พร้อม { "email": "[email protected]" } — ส่งกลับ api_key + setup_url
- เปิด setup_url เพื่อดำเนินการชำระเงิน Stripe และเปิดใช้งานคีย์
- POST /v1/sites พร้อม Authorization: Bearer sk_live_… และ { "files": { "index.html": "…" } } — ส่งกลับ { "url": "https://site\_abc123.shipsite.sh" }
เอนด์พอยต์:
- POST /v1/accounts (ไม่ต้องตรวจสอบสิทธิ์): สร้างบัญชี เนื้อหาคำขอ: { "email": "…" } ส่งกลับ: { "api_key": "sk_live_…", "setup_url": "https://checkout.stripe.com/…", "status": "pending" } สำคัญ: api_key จะแสดงเพียงครั้งเดียว — เก็บทันที
- POST /v1/sites: สร้างเว็บไซต์ เนื้อหาคำขอ: { "files": { "path": "content" }, "name": "optional-slug", "meta": {} } ไฟล์ข้อความเป็นสตริง ไฟล์ไบนารีมีคำนำหน้า "base64:" ส่งกลับ: { "id": "site_…", "url": "https://….shipsite.sh", "expires_at": "…" }
- GET /v1/sites: แสดงรายการเว็บไซต์ รองรับการแบ่งหน้าด้วย ?limit= และ ?offset=
- GET /v1/sites/:id: ดูรายละเอียดเว็บไซต์ (ข้อมูลเมตา รายการไฟล์ วันหมดอายุ)
- PUT /v1/sites/:id: อัปเดตเว็บไซต์ เนื้อหาคำขอรับ "files", "name", และ/หรือ "meta" (ต้องมีอย่างน้อยหนึ่งรายการ) ไฟล์ที่ไม่ได้ระบุจะไม่เปลี่ยนแปลง ตั้งค่าไฟล์เป็น null เพื่อลบ ตั้งค่า "name" เป็นสตริงเพื่อเพิ่มหรือเปลี่ยน slug ที่กำหนดเอง หรือ null เพื่อลบออก
- DELETE /v1/sites/:id: ลบเว็บไซต์ทันที การเรียกเก็บเงินหยุดลง
- POST /v1/sites/:id/pin: ลบการหมดอายุอัตโนมัติ เว็บไซต์จะคงอยู่จนกว่าจะถูกลบ
- POST /v1/sites/:id/unpin: ใช้ TTL 24 ชั่วโมงอีกครั้งนับจากเวลาปัจจุบัน
- GET /v1/accounts/me: ดูสถานะบัญชีและจำนวนเว็บไซต์ที่ใช้งานอยู่
- GET /v1/accounts/me/keys: แสดงรายการคีย์ API ทั้งหมด (ที่ใช้งานอยู่และถูกเพิกถอน) สำหรับบัญชี
- POST /v1/accounts/me/keys: สร้างคีย์ API ใหม่ ส่งกลับคีย์แบบเต็มเพียงครั้งเดียว — เก็บทันที ไม่สามารถเรียกดูในภายหลังได้
- POST /v1/accounts/me/keys/rotate: สร้างคีย์ใหม่และเพิกถอนคีย์เก่าแบบอะตอมมิก เนื้อหาคำขอ: { "revoke_key_id": "key_…" } (ไม่บังคับ — ละเว้นเพื่อเพิกถอนคีย์ปัจจุบัน)
- DELETE /v1/accounts/me/keys/:id: เพิกถอนคีย์ API ไม่สามารถเพิกถอนคีย์ที่ใช้งานอยู่ล่าสุดได้
กฎการเข้ารหัสไฟล์:
- ไฟล์ข้อความ (.html, .css, .js, .svg, .json, .txt, .xml, .md): ส่งเป็นสตริงธรรมดา
- ไฟล์ไบนารี (.png, .jpg, .gif, .webp, .ico, .woff2, .pdf): คำนำหน้า "base64:" + เนื้อหา base64
กฎการตั้งชื่อเว็บไซต์ (ฟิลด์ "name" ที่เป็นตัวเลือกใน POST /v1/sites หรือ PUT /v1/sites/:id):
- ความยาว 3–63 ตัวอักษร ใช้ได้เฉพาะตัวพิมพ์เล็ก ตัวเลข และขีดกลาง
- ต้องเริ่มต้นและลงท้ายด้วยตัวอักษรหรือตัวเลข
- ห้ามมีขีดกลางติดกัน (--)
- ต้องไม่ซ้ำกันทั่วโลก — หากซ้ำจะส่งกลับ 409 พร้อมรหัส "name_taken"
- สามารถตั้งค่าเมื่อสร้างหรือเพิ่ม/เปลี่ยนแปลง/ลบในภายหลังผ่าน PUT
- ตั้งค่าเป็น null ใน PUT เพื่อลบชื่อออกจากเว็บไซต์ที่มีอยู่
- ชื่อที่สงวนไว้ (ไม่สามารถใช้ได้): api, www, app, admin, dashboard, billing, docs, help, support, status, blog, mail, smtp, ftp, cdn, assets, static, login, signup, auth, account, accounts, settings, config, setup, test, staging, dev, prod, internal
พฤติกรรมของเว็บไซต์:
- ให้บริการที่ https://{site_id}.shipsite.sh (หรือ https://{name}.shipsite.sh หากตั้งชื่อ)
- index.html ให้บริการสำหรับ / และเป็น fallback แบบ SPA
- HTTPS ในทุกเว็บไซต์, CDN ทั่วโลก, CORS: Access-Control-Allow-Origin: *
- ไม่มีเนื้อหาแทรก — เว็บไซต์ให้บริการตรงตามที่อัปโหลด
- หมดอายุอัตโนมัติหลังจาก 24 ชั่วโมงเว้นแต่จะปักหมุดไว้
ข้อจำกัด: 1,000 เว็บไซต์ที่ใช้งานอยู่, 120 การปรับใช้/ชั่วโมง, 100 ไฟล์/เว็บไซต์, เพย์โหลดรวม 15 MB, 5 MB ต่อไฟล์, 100,000 คำขอ/เว็บไซต์/วัน
รูปแบบข้อผิดพลาด: { "error": { "code": "…", "message": "คำอธิบายที่นำไปปฏิบัติได้เกี่ยวกับสิ่งที่ผิดพลาด เหตุผล และวิธีแก้ไข", "details": { … } } } รหัสทั่วไป: payment_required (402), rate_limited (429), validation_error (400), not_found (404)
เอกสารประกอบ
- เอกสารอ้างอิง API: รายละเอียดเอนด์พอยต์แบบเต็ม ตัวอย่าง และกฎการเข้ารหัสไฟล์
- ข้อกำหนดในการให้บริการ: นโยบายการใช้งานที่ยอมรับได้ กระบวนการ DMCA เนื้อหาที่ห้าม
เซิร์ฟเวอร์ MCP
- @shipsite/mcp: แพ็คเกจเซิร์ฟเวอร์ MCP สำหรับ Claude Code, Cursor และ Windsurf
การกำหนดค่า MCP: { "mcpServers": { "shipsite": { "command": "npx", "args": ["@shipsite/mcp"], "env": { "SHIPSITE_API_KEY": "sk_live_…" } } } }
เครื่องมือ: deploy_site, list_sites, get_site, delete_site, pin_site, unpin_site, rename_site, create_account, get_account, list_keys, create_key, rotate_key, revoke_key
เพิ่มเติม
- หน้าแรก: เว็บไซต์การตลาดพร้อมตัวอย่างภาพและรายละเอียดราคา
- ตัวอย่างราคา: 1 เว็บไซต์/30 วัน = $3, 10 เว็บไซต์/30 วัน = $30, 1 เว็บไซต์/2 ชั่วโมง = $0.10