Документация
API и MCP
Всё, что доступно в панели, можно сделать программно: через REST API
api.tuqo.ru
и через MCP-сервер для нейросетей
mcp.tuqo.ru.
Любая внешняя ИИ-модель может создавать сайты, деплоить и настраивать домены —
авторизация по одному ключу проекта.
Быстрый старт
- 1
Создайте проект в панели и получите ключ на вкладке API-ключи. Ключ формата
tqk_…показывается один раз. - 2
Подключите Tuqo как MCP-коннектор в нейросети — или работайте напрямую через REST.
- 3
Создайте сайт, загрузите архив исходников — он соберётся автоматически и опубликуется на
<поддомен>.tuqo.ru.
API-ключ проекта
Все запросы авторизуются заголовком
Authorization: Bearer tqk_….
Ключ привязан к конкретному проекту — операции скоупятся только в его пределах.
В базе хранится лишь argon2-хеш ключа и публичный префикс для отображения; сам ключ
восстановить нельзя — при потере выпустите новый.
Уровни доступа
-
readтолько чтение: списки и статусы -
editorсоздавать сайты, деплоить, привязывать домены, откатывать — без удаления -
fullполный доступ, включая удаление сайтов и доменов
MCP для нейросетей
Tuqo поднимает MCP-сервер (JSON-RPC 2.0) по адресу
https://mcp.tuqo.ru/mcp.
Подключите его как коннектор в вашей ИИ-модели — и агент управляет хостингом на естественном языке.
Подключение
URL и заголовок авторизации (для MCP-клиентов с HTTP-транспортом и поддержкой заголовков):
{
"mcpServers": {
"tuqo": {
"url": "https://mcp.tuqo.ru/mcp",
"headers": { "Authorization": "Bearer tqk_xxx_yyy" }
}
}
} Инструменты
-
list_sites(—)список сайтов проекта
-
create_site(name, subdomain)создать сайт (поддомен ≥9 символов на бесплатном тарифе)
-
get_site(site_id)получить сайт
-
update_site(site_id, name)переименовать сайт
-
delete_site(site_id)удалить сайт со всеми деплоями
-
list_deploys(site_id)история деплоев сайта
-
deploy_site(site_id, source_base64)загрузить tar.gz исходников (base64) и запустить сборку
-
get_deploy_status(deploy_id)статус сборки: queued → building → ready → active / failed
-
get_logs(deploy_id)логи сборки
-
rollback_site(deploy_id)откатить сайт на указанный готовый деплой
-
list_domains(site_id)кастомные домены сайта
-
set_custom_domain(site_id, domain)привязать домен — в ответе TXT-запись _tuqo-verify
-
verify_domain(domain_id)подтвердить владение доменом после добавления TXT
-
delete_domain(domain_id)отвязать домен
Пример запроса вручную (JSON-RPC tools/call):
curl -X POST https://mcp.tuqo.ru/mcp \
-H "Authorization: Bearer tqk_xxx_yyy" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": {
"name": "create_site",
"arguments": { "name": "Лендинг", "subdomain": "myproject" }
}
}' REST API
Базовый адрес — https://api.tuqo.ru.
Тело и ответы — JSON (кроме загрузки деплоя: там тело — бинарный
tar.gz).
- GET
/api/v1/sitesсписок сайтовread - POST
/api/v1/sitesсоздать сайтeditor - GET
/api/v1/sites/{id}получить сайтread - PATCH
/api/v1/sites/{id}переименовать сайтeditor - DELETE
/api/v1/sites/{id}удалить сайтfull - POST
/api/v1/sites/{id}/deploysзагрузить деплой (tar.gz в теле)editor - GET
/api/v1/deploys/{id}статус деплояread - POST
/api/v1/deploys/{id}/activateсделать деплой боевым / откатитьсяeditor - POST
/api/v1/sites/{id}/domainsпривязать доменeditor - POST
/api/v1/domains/{id}/verifyподтвердить доменeditor - DELETE
/api/v1/domains/{id}отвязать доменfull
Деплой: форматы и статусы
Загрузите архив .tar.gz (до 50 МБ). Варианты содержимого:
- Исходники npm-проекта — Tuqo сам выполнит
npm ci && npm run buildи возьмёт артефакт изdist/. - Готовая статика — просто положите файлы (с
index.html) в корень архива.
Деплой через REST (тело — бинарный архив):
curl -X POST https://api.tuqo.ru/api/v1/sites/$SITE/deploys \
-H "Authorization: Bearer tqk_xxx_yyy" \
-H "Content-Type: application/gzip" \
--data-binary @dist.tar.gz
В MCP тот же архив передаётся как base64 в аргументе
source_base64 инструмента deploy_site.
При успешной сборке деплой активируется автоматически.
Статусы деплоя
-
queuedдеплой в очереди на сборку -
buildingидёт сборка (npm ci && npm run build) -
readyсобран, но ещё не активирован -
activeбоевой — отдаётся на поддомене сайта -
failedошибка сборки (текст — в get_logs / поле error) -
supersededзаменён более новым активным деплоем
Кастомные домены
Привязка домена — в два шага:
- 1
set_custom_domain(илиPOST /api/v1/sites/{id}/domains) — в ответе придёт токен. Добавьте в DNS домена A-запись на IP платформы и TXT-запись_tuqo-verifyс этим токеном. - 2
verify_domain(илиPOST /api/v1/domains/{id}/verify) — после распространения DNS. HTTPS-сертификат выпускается автоматически.
DNS обновляется не мгновенно — от нескольких минут до нескольких часов. Точные значения A- и TXT-записей всегда показываются в панели на вкладке «Домены» сайта.