@shipsite/mcp Server

официальный

Развёртывание статических веб-сайтов

Документация

shipsite.sh

API статического хостинга для LLM. Развёртывайте сайты одним вызовом API. Без git, без шагов сборки, без панелей управления. $0.10/сайт/день.

shipsite.sh позволяет LLM-агентам развёртывать статические веб-сайты, отправляя файлы в формате JSON и получая действующий URL. Сайты обслуживаются глобально через CDN-сеть с HTTPS, автоматически удаляются через 24 часа, если не закреплены, и стоят $0.10 за сайт в день (пропорционально за день, оплата ежемесячно через Stripe). Бесплатного тарифа нет — для работы развёртываний требуется оплата.

Базовый URL API: https://api.shipsite.sh Аутентификация: Bearer sk_live_… (все эндпоинты, кроме создания аккаунта) ВАЖНО: Ключи API отображаются только один раз при создании и не могут быть получены позже. Сохраните ключ немедленно. При утере восстановление невозможно — необходимо создать новый ключ, будучи аутентифицированным, или создать новый аккаунт, если доступ заблокирован. Ключи неактивны (возвращают 402) до завершения оплаты через Stripe.

Быстрый старт:

  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

Правила именования сайтов (опциональное поле "name" в POST /v1/sites или PUT /v1/sites/:id):

  • 3–63 символа, только строчные буквы, цифры и дефисы
  • Должно начинаться и заканчиваться буквой или цифрой
  • Без последовательных дефисов (--)
  • Глобально уникальное — при совпадении возвращается 409 с кодом "name_taken"
  • Можно задать при создании или добавить/изменить/удалить позже через PUT
  • Установите null в PUT для удаления имени у существующего сайта
  • Зарезервированные имена (нельзя использовать): 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 fallback
  • HTTPS на всех сайтах, глобальный CDN, CORS: Access-Control-Allow-Origin: *
  • Без вставки стороннего контента — сайты обслуживаются точно в загруженном виде
  • Автоматическое удаление через 24 часа, если не закреплены

Лимиты: 1 000 активных сайтов, 120 развёртываний/час, 100 файлов/сайт, 15 МБ общий размер запроса, 5 МБ на файл, 100 000 запросов/сайт/день.

Формат ошибок: { "error": { "code": "…", "message": "Понятное описание проблемы, причины и способа её устранения.", "details": { … } } } Частые коды: payment_required (402), rate_limited (429), validation_error (400), not_found (404).

Документация

  • API Reference: Полное описание эндпоинтов, примеры и правила кодирования файлов
  • Terms of Service: Политика допустимого использования, процесс DMCA, запрещённый контент

MCP-сервер

  • @shipsite/mcp: Пакет MCP-сервера для Claude Code, Cursor и Windsurf

Конфигурация 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

Дополнительно

  • Homepage: Маркетинговый сайт с визуальными примерами и разбивкой цен
  • Pricing examples: 1 сайт/30 дней = $3, 10 сайтов/30 дней = $30, 1 сайт/2 часа = $0.10