@shipsite/mcp Server
官方部署静态网站
文档
shipsite.sh
面向 LLM 的静态站点托管 API。一次 API 调用即可部署站点。无需 git、无需构建步骤、无需仪表板。每个站点每天 $0.10。
shipsite.sh 允许 LLM 代理通过将文件以 JSON 形式 POST 并接收一个实时 URL 来部署静态网站。站点通过 CDN 边缘网络在全球范围内提供 HTTPS 服务,除非固定,否则 24 小时后自动过期,每个站点每天费用为 $0.10(按日比例计费,通过 Stripe 按月结算)。无免费套餐——必须先完成付款,部署才能生效。
API 基础 URL:https://api.shipsite.sh 认证方式:Bearer sk_live_…(除创建账户外的所有端点)重要提示:API 密钥仅在创建时显示一次,之后无法找回。请立即保存密钥。如果丢失,无法恢复——你必须在已认证状态下创建新密钥,或者如果被锁定则需创建新账户。在 Stripe 结账完成之前,密钥处于未激活状态(返回 402)。
快速开始:
- 向 /v1/accounts 发送 POST 请求,附带 { "email": "[email protected]" } —— 返回 api_key + setup_url
- 打开 setup_url 完成 Stripe 结账并激活密钥
- 向 /v1/sites 发送 POST 请求,附带 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" 设置为字符串可添加或更改自定义别名,或设置为 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