@shipsite/mcp Server

공식

정적 웹사이트 배포

문서

shipsite.sh

LLM을 위한 정적 사이트 호스팅 API. API 호출 한 번으로 사이트를 배포하세요. Git, 빌드 단계, 대시보드가 필요 없습니다. 사이트당 하루 $0.10.

shipsite.sh는 LLM 에이전트가 파일을 JSON으로 POST하여 라이브 URL을 받아 정적 웹사이트를 배포할 수 있게 해줍니다. 사이트는 HTTPS가 적용된 CDN 엣지 네트워크를 통해 전 세계에 제공되며, 고정하지 않으면 24시간 후 자동 만료되고, 사이트당 하루 $0.10의 비용이 청구됩니다(일할 계산, Stripe를 통해 월별 청구). 무료 티어는 없으며, 배포가 작동하려면 결제가 필요합니다.

API 기본 URL: https://api.shipsite.sh 인증: Bearer sk_live_… (계정 생성 외 모든 엔드포인트) 중요: API 키는 생성 시 한 번만 표시되며 나중에 조회할 수 없습니다. 키를 즉시 저장하세요. 분실 시 복구할 수 없으며, 인증된 상태에서 새 키를 생성하거나, 잠긴 경우 새 계정을 만들어야 합니다. Stripe 결제가 완료될 때까지 키는 비활성 상태입니다(402 반환).

빠른 시작:

  1. POST /v1/accounts, 본문: { "email": "[email protected]" } — api_key + setup_url 반환
  2. setup_url을 열어 Stripe 결제를 완료하고 키를 활성화합니다.
  3. 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": { "경로": "내용" }, "name": "선택적-슬러그", "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자, 소문자, 숫자, 하이픈만 사용 가능
  • 문자 또는 숫자로 시작하고 끝나야 함
  • 연속된 하이픈(--) 불가
  • 전역적으로 고유해야 함 — 충돌 시 code "name_taken"과 함께 409 반환
  • 생성 시 설정하거나 나중에 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개, 총 페이로드 15MB, 파일당 5MB, 사이트당 하루 요청 100,000회.

오류 형식: { "error": { "code": "…", "message": "무엇이 잘못되었는지, 이유, 해결 방법에 대한 실행 가능한 설명.", "details": { … } } } 일반적인 코드: payment_required (402), rate_limited (429), validation_error (400), not_found (404).

문서

  • API 레퍼런스: 전체 엔드포인트 세부 정보, 예제, 파일 인코딩 규칙
  • 서비스 약관: 허용되는 사용 정책, DMCA 절차, 금지된 콘텐츠

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

선택 사항

  • 홈페이지: 시각적 예제와 가격 분석이 있는 마케팅 사이트
  • 가격 예시: 사이트 1개/30일 = $3, 사이트 10개/30일 = $30, 사이트 1개/2시간 = $0.10