@shipsite/mcp Server
官方部署靜態網站
文件
shipsite.sh
提供給 LLM 的靜態網站託管 API。只需一次 API 呼叫即可部署網站。無需 Git、無需建置步驟、無需儀表板。每個網站每天 $0.10 美元。
shipsite.sh 讓 LLM 代理能夠透過以 JSON 格式 POST 檔案來部署靜態網站,並取得即時網址。網站透過 CDN 邊緣網路全球提供服務,具備 HTTPS,除非釘選否則會在 24 小時後自動到期,每個網站每天費用為 $0.10 美元(按日比例計算,透過 Stripe 每月結算)。沒有免費方案 — 必須先付款才能進行任何部署。
API 基礎網址:https://api.shipsite.sh 驗證方式:Bearer sk_live_…(除建立帳號外的所有端點)重要事項:API 金鑰僅在建立時顯示一次,之後無法取回。請立即儲存金鑰。若遺失則無法復原 — 你必須在已驗證狀態下建立新的金鑰,若被鎖定則需建立新帳號。金鑰在 Stripe 結帳完成前為未啟用狀態(會回傳 402)。
快速入門:
- 以
{ "email": "[email protected]" }對/v1/accounts發出 POST 請求 — 回傳 api_key + setup_url - 開啟 setup_url 以完成 Stripe 結帳並啟用金鑰
- 以
Authorization: Bearer sk_live_…和{ "files": { "index.html": "…" } }對/v1/sites發出 POST 請求 — 回傳{ "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" 設為字串可新增或變更別名,或設為 null 將其移除。
- DELETE /v1/sites/:id:立即刪除網站。計費隨之停止。
- POST /v1/sites/:id/pin:移除自動到期設定。網站將持續存在直到被刪除。
- POST /v1/sites/:id/unpin:從目前時間起重新套用 24 小時 TTL。
- 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 內容
網站名稱規則(POST /v1/sites 或 PUT /v1/sites/:id 的選用 "name" 欄位):
- 3 到 63 個字元,僅限小寫字母、數字和連字號
- 必須以字母或數字開頭和結尾
- 不可有連續連字號(--)
- 全域唯一 — 若名稱衝突會回傳 409 並附上代碼 "name_taken"
- 可在建立時設定,或稍後透過 PUT 新增/變更/移除
- 在 PUT 中設為 null 可從現有網站移除名稱
- 保留名稱(無法使用):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 作為 / 和 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)。
文件
MCP 伺服器
- @shipsite/mcp:適用於 Claude Code、Cursor 和 Windsurf 的 MCP 伺服器套件
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