@shipsite/mcp Server
chính thứcTriển khai trang web tĩnh
Tài liệu
shipsite.sh
Dịch vụ lưu trữ trang tĩnh dạng API cho LLM. Triển khai trang chỉ với một lệnh gọi API. Không cần git, không cần bước build, không cần bảng điều khiển. $0.10/trang/ngày.
shipsite.sh cho phép các tác nhân LLM triển khai trang web tĩnh bằng cách POST tệp dưới dạng JSON và nhận về một URL trực tiếp. Các trang được phục vụ toàn cầu trên mạng biên CDN với HTTPS, tự động hết hạn sau 24 giờ trừ khi được ghim, và có giá $0.10 mỗi trang mỗi ngày (tính theo ngày, thanh toán hàng tháng qua Stripe). Không có gói miễn phí — cần thanh toán trước khi triển khai.
URL gốc API: https://api.shipsite.sh Xác thực: Bearer sk_live_… (tất cả các điểm cuối trừ tạo tài khoản) QUAN TRỌNG: Khóa API chỉ hiển thị một lần khi tạo và không thể truy xuất sau đó. Lưu khóa ngay lập tức. Nếu mất, không thể khôi phục — bạn phải tạo khóa mới khi đã xác thực, hoặc tạo tài khoản mới nếu bị khóa. Khóa không hoạt động (trả về 402) cho đến khi thanh toán Stripe hoàn tất.
Bắt đầu nhanh:
- POST /v1/accounts với { "email": "[email protected]" } — trả về api_key + setup_url
- Mở setup_url để hoàn tất thanh toán Stripe và kích hoạt khóa
- POST /v1/sites với Authorization: Bearer sk_live_… và { "files": { "index.html": "…" } } — trả về { "url": "https://site\_abc123.shipsite.sh" }
Điểm cuối:
- POST /v1/accounts (không xác thực): Tạo tài khoản. Thân: { "email": "…" }. Trả về: { "api_key": "sk_live_…", "setup_url": "https://checkout.stripe.com/…", "status": "pending" }. QUAN TRỌNG: api_key chỉ hiển thị một lần — lưu ngay lập tức.
- POST /v1/sites: Tạo trang. Thân: { "files": { "path": "content" }, "name": "optional-slug", "meta": {} }. Tệp văn bản dạng chuỗi, tệp nhị phân có tiền tố "base64:". Trả về: { "id": "site_…", "url": "https://….shipsite.sh", "expires_at": "…" }
- GET /v1/sites: Liệt kê trang. Hỗ trợ phân trang ?limit= và ?offset=.
- GET /v1/sites/:id: Lấy chi tiết trang (metadata, danh sách tệp, thời hạn).
- PUT /v1/sites/:id: Cập nhật trang. Thân chấp nhận "files", "name", và/hoặc "meta" (ít nhất một trường bắt buộc). Tệp bị bỏ qua giữ nguyên. Đặt tệp thành null để xóa. Đặt "name" thành chuỗi để thêm hoặc đổi slug tùy chỉnh, hoặc null để xóa.
- DELETE /v1/sites/:id: Xóa trang ngay lập tức. Ngừng tính phí.
- POST /v1/sites/:id/pin: Xóa tự động hết hạn. Trang tồn tại đến khi bị xóa.
- POST /v1/sites/:id/unpin: Áp dụng lại TTL 24h từ thời điểm hiện tại.
- GET /v1/accounts/me: Lấy trạng thái tài khoản và số trang đang hoạt động.
- GET /v1/accounts/me/keys: Liệt kê tất cả khóa API (đang hoạt động và đã thu hồi) cho tài khoản.
- POST /v1/accounts/me/keys: Tạo khóa API mới. Trả về khóa đầy đủ một lần — lưu ngay lập tức, không thể truy xuất sau đó.
- POST /v1/accounts/me/keys/rotate: Tạo khóa mới và thu hồi khóa cũ một cách nguyên tử. Thân: { "revoke_key_id": "key_…" } (tùy chọn — bỏ qua để thu hồi khóa hiện tại).
- DELETE /v1/accounts/me/keys/:id: Thu hồi khóa API. Không thể thu hồi khóa hoạt động cuối cùng.
Quy tắc mã hóa tệp:
- Tệp văn bản (.html, .css, .js, .svg, .json, .txt, .xml, .md): gửi dưới dạng chuỗi thông thường
- Tệp nhị phân (.png, .jpg, .gif, .webp, .ico, .woff2, .pdf): tiền tố "base64:" + nội dung base64
Quy tắc đặt tên trang (trường "name" tùy chọn khi POST /v1/sites hoặc PUT /v1/sites/:id):
- 3–63 ký tự, chỉ chữ thường, số và dấu gạch ngang
- Phải bắt đầu và kết thúc bằng chữ cái hoặc số
- Không có dấu gạch ngang liên tiếp (--)
- Duy nhất toàn cầu — trùng lặp trả về 409 với mã "name_taken"
- Có thể đặt khi tạo hoặc thêm/đổi/xóa sau qua PUT
- Đặt thành null trong PUT để xóa tên khỏi trang hiện có
- Tên dành riêng (không thể sử dụng): 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
Hành vi trang:
- Được phục vụ tại https://{site_id}.shipsite.sh (hoặc https://{name}.shipsite.sh nếu được đặt tên)
- index.html được phục vụ cho / và làm fallback SPA
- HTTPS trên tất cả trang, CDN toàn cầu, CORS: Access-Control-Allow-Origin: *
- Không chèn nội dung — trang được phục vụ chính xác như tải lên
- Tự động hết hạn sau 24 giờ trừ khi được ghim
Giới hạn: 1.000 trang đang hoạt động, 120 lần triển khai/giờ, 100 tệp/trang, tổng tải trọng 15 MB, 5 MB mỗi tệp, 100.000 yêu cầu/trang/ngày.
Định dạng lỗi: { "error": { "code": "…", "message": "Mô tả có thể hành động về lỗi gì, tại sao, và cách khắc phục.", "details": { … } } } Mã phổ biến: payment_required (402), rate_limited (429), validation_error (400), not_found (404).
Tài liệu
- Tham khảo API: Chi tiết điểm cuối đầy đủ, ví dụ và quy tắc mã hóa tệp
- Điều khoản dịch vụ: Chính sách sử dụng chấp nhận được, quy trình DMCA, nội dung bị cấm
Máy chủ MCP
- @shipsite/mcp: Gói máy chủ MCP cho Claude Code, Cursor và Windsurf
Cấu hình MCP: { "mcpServers": { "shipsite": { "command": "npx", "args": ["@shipsite/mcp"], "env": { "SHIPSITE_API_KEY": "sk_live_…" } } } }
Công cụ: 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
Tùy chọn
- Trang chủ: Trang tiếp thị với ví dụ trực quan và phân tích giá
- Ví dụ về giá: 1 trang/30 ngày = $3, 10 trang/30 ngày = $30, 1 trang/2 giờ = $0.10