@shipsite/mcp Server
resmiMenyebarkan situs web statis
Dokumentasi
shipsite.sh
API hosting situs statis untuk LLM. Deploy situs dengan satu panggilan API. Tanpa git, tanpa langkah build, tanpa dasbor. $0,10/situs/hari.
shipsite.sh memungkinkan agen LLM men-deploy situs web statis dengan mengirimkan file sebagai JSON melalui POST dan menerima URL langsung. Situs disajikan secara global melalui jaringan edge CDN dengan HTTPS, kedaluwarsa otomatis setelah 24 jam kecuali disematkan, dan biaya $0,10 per situs per hari (diprorata harian, ditagih bulanan melalui Stripe). Tidak ada tingkat gratis — pembayaran diperlukan sebelum deploy apa pun berfungsi.
URL dasar API: https://api.shipsite.sh Autentikasi: Bearer sk_live_… (semua endpoint kecuali pembuatan akun) PENTING: Kunci API hanya ditampilkan sekali saat dibuat dan tidak dapat diambil lagi nanti. Simpan kunci segera. Jika hilang, tidak ada pemulihan — Anda harus membuat kunci baru saat terautentikasi, atau membuat akun baru jika terkunci. Kunci bersifat inert (mengembalikan 402) hingga checkout Stripe selesai.
Mulai cepat:
- POST /v1/accounts dengan { "email": "[email protected]" } — mengembalikan api_key + setup_url
- Buka setup_url untuk menyelesaikan checkout Stripe dan mengaktifkan kunci
- POST /v1/sites dengan Authorization: Bearer sk_live_… dan { "files": { "index.html": "…" } } — mengembalikan { "url": "https://site\_abc123.shipsite.sh" }
Endpoint:
- POST /v1/accounts (tanpa auth): Buat akun. Body: { "email": "…" }. Mengembalikan: { "api_key": "sk_live_…", "setup_url": "https://checkout.stripe.com/…", "status": "pending" }. PENTING: api_key hanya ditampilkan sekali — simpan segera.
- POST /v1/sites: Buat situs. Body: { "files": { "path": "content" }, "name": "slug-opsional", "meta": {} }. File teks sebagai string biasa, file biner dengan awalan "base64:". Mengembalikan: { "id": "site_…", "url": "https://….shipsite.sh", "expires_at": "…" }
- GET /v1/sites: Daftar situs. Mendukung paginasi ?limit= dan ?offset=.
- GET /v1/sites/:id: Dapatkan detail situs (metadata, daftar file, kedaluwarsa).
- PUT /v1/sites/:id: Perbarui situs. Body menerima "files", "name", dan/atau "meta" (minimal satu diperlukan). File yang dihilangkan tidak berubah. Atur file ke null untuk menghapusnya. Atur "name" ke string untuk menambah atau mengubah slug kustom, atau null untuk menghapusnya.
- DELETE /v1/sites/:id: Hapus situs segera. Penagihan berhenti.
- POST /v1/sites/:id/pin: Hapus kedaluwarsa otomatis. Situs bertahan hingga dihapus.
- POST /v1/sites/:id/unpin: Terapkan kembali TTL 24 jam dari waktu saat ini.
- GET /v1/accounts/me: Dapatkan status akun dan jumlah situs aktif.
- GET /v1/accounts/me/keys: Daftar semua kunci API (aktif dan dicabut) untuk akun.
- POST /v1/accounts/me/keys: Buat kunci API baru. Mengembalikan kunci lengkap sekali — simpan segera, tidak dapat diambil lagi nanti.
- POST /v1/accounts/me/keys/rotate: Secara atomik buat kunci baru dan cabut yang lama. Body: { "revoke_key_id": "key_…" } (opsional — hilangkan untuk mencabut kunci saat ini).
- DELETE /v1/accounts/me/keys/:id: Cabut kunci API. Tidak dapat mencabut kunci aktif terakhir.
Aturan encoding file:
- File teks (.html, .css, .js, .svg, .json, .txt, .xml, .md): kirim sebagai string biasa
- File biner (.png, .jpg, .gif, .webp, .ico, .woff2, .pdf): awalan "base64:" + konten base64
Aturan nama situs (kolom "name" opsional pada POST /v1/sites atau PUT /v1/sites/:id):
- 3–63 karakter, hanya huruf kecil, angka, dan tanda hubung
- Harus dimulai dan diakhiri dengan huruf atau angka
- Tidak boleh ada tanda hubung berurutan (--)
- Unik secara global — bentrokan mengembalikan 409 dengan kode "name_taken"
- Dapat diatur saat pembuatan atau ditambah/diubah/dihapus nanti melalui PUT
- Atur ke null di PUT untuk menghapus nama dari situs yang ada
- Nama yang dicadangkan (tidak dapat digunakan): 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
Perilaku situs:
- Disajikan di https://{site_id}.shipsite.sh (atau https://{name}.shipsite.sh jika diberi nama)
- index.html disajikan untuk / dan sebagai fallback SPA
- HTTPS di semua situs, CDN global, CORS: Access-Control-Allow-Origin: *
- Tidak ada konten yang disuntikkan — situs disajikan persis seperti yang diunggah
- Kedaluwarsa otomatis setelah 24 jam kecuali disematkan
Batas: 1.000 situs aktif, 120 deploy/jam, 100 file/situs, total payload 15 MB, 5 MB per file, 100.000 permintaan/situs/hari.
Format error: { "error": { "code": "…", "message": "Deskripsi yang dapat ditindaklanjuti tentang apa yang salah, mengapa, dan cara memperbaikinya.", "details": { … } } } Kode umum: payment_required (402), rate_limited (429), validation_error (400), not_found (404).
Dokumentasi
- Referensi API: Detail endpoint lengkap, contoh, dan aturan encoding file
- Ketentuan Layanan: Kebijakan penggunaan yang dapat diterima, proses DMCA, konten yang dilarang
Server MCP
- @shipsite/mcp: Paket server MCP untuk Claude Code, Cursor, dan Windsurf
Konfigurasi MCP: { "mcpServers": { "shipsite": { "command": "npx", "args": ["@shipsite/mcp"], "env": { "SHIPSITE_API_KEY": "sk_live_…" } } } }
Alat: 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
Opsional
- Beranda: Situs pemasaran dengan contoh visual dan rincian harga
- Contoh harga: 1 situs/30 hari = $3, 10 situs/30 hari = $30, 1 situs/2 jam = $0,10