Strata Hostings · Desarrolladores

API y MCP de tu hosting

Administra tus sitios, archivos, WordPress, apps de Node.js, bases de datos, correo y respaldos desde código o desde tu asistente de IA. Incluido en los planes Plus e Ilimitado.

Empezar

  1. Entra a Mi cuenta → Accesos y crea una llave. Se muestra una sola vez; guárdala como una contraseña.
  2. Mándala en cada petición: Authorization: Bearer sth_…
  3. Límite: 90 peticiones por minuto por llave. Las operaciones largas responden 202 con un job_id.
curl -H "Authorization: Bearer $STRATA_TOKEN" https://api.stratahostings.com/v1/websites

Especificación completa: /openapi.json (OpenAPI 3.1, sirve para Postman, Insomnia o generar clientes).

Conectar tu IA (MCP)

El servidor MCP está en https://api.stratahostings.com/mcp y usa la misma llave. Tu asistente podrá ver y cambiar tu hosting con 42 herramientas.

Claude Code

claude mcp add --transport http strata-hostings https://api.stratahostings.com/mcp \
  --header "Authorization: Bearer sth_TU_LLAVE"

Cursor (~/.cursor/mcp.json) y VS Code (.vscode/mcp.json)

{
    "servers": {
        "strata-hostings": {
            "type": "http",
            "url": "https://api.stratahostings.com/mcp",
            "headers": {
                "Authorization": "Bearer sth_TU_LLAVE"
            }
        }
    }
}

Claude Desktop

{
    "mcpServers": {
        "strata-hostings": {
            "command": "npx",
            "args": [
                "-y",
                "mcp-remote",
                "https://api.stratahostings.com/mcp",
                "--header",
                "Authorization:Bearer sth_TU_LLAVE"
            ]
        }
    }
}

Tu llave da acceso completo a tu hosting. No la pegues en chats ni en repositorios públicos; si se filtra, revócala en Mi cuenta y crea otra.

Herramientas

get_accountDatos de la cuenta: plan, espacio usado, límites y datos de acceso (panel, SFTP, SSH, FTP).
list_websitesLista los sitios de la cuenta con su PHP, SSL, alias y si son app de Node.js.
create_websiteCrea un sitio nuevo (dominio o subdominio) dentro del límite del plan.
delete_websiteBorra un sitio y TODOS sus archivos. Pide confirmación explícita al usuario antes de usarla.
set_php_versionCambia la versión de PHP de un sitio.
install_sslInstala un certificado gratuito de Let's Encrypt (el dominio ya debe apuntar al servidor). Tarea: devuelve job_id; consulta con get_job.
list_filesLista archivos y carpetas. Las rutas son relativas a la carpeta del sitio: public_html (lo que se publica), private (privado).
read_fileLee un archivo de texto del sitio (máx. 5 MB; lee por rangos de líneas).
write_fileCrea o reemplaza un archivo del sitio. Para binarios usa encoding=base64. Para archivos grandes usa create_upload_url.
delete_pathBorra un archivo o carpeta del sitio.
create_directoryCrea una carpeta en el sitio.
move_pathMueve o renombra un archivo o carpeta.
create_upload_urlGenera una URL para subir un archivo grande con PUT (1 hora, 512 MB). Útil para .zip de sitios o apps: curl -T archivo.zip "<upload_url>".
extract_archiveDescomprime un .zip/.tar.* del sitio en una carpeta.
deploy_static_sitePublica un sitio estático (HTML/CSS/JS ya compilado) desde un archivo subido. Reemplaza public_html.
deploy_from_gitPublica o actualiza el sitio desde un repositorio git sin compilar. Tarea (job_id).
wordpress_statusEstado de WordPress en el sitio: versión, tema, plugins y actualizaciones.
wordpress_installInstala WordPress en un sitio vacío. Tarea (job_id); el resultado trae la contraseña de admin una sola vez.
wordpress_importImporta un WordPress desde un archivo y un .sql ya subidos; reemplaza el sitio. Tarea (job_id).
wordpress_pluginsPlugins: list, install (de wordpress.org), activate, deactivate, update o uninstall.
wordpress_themesTemas: list, install (de wordpress.org), activate, update o delete.
wordpress_deploy_codeDespliega un tema o plugin propio desde una carpeta ya subida al sitio.
wordpress_update_coreActualiza WordPress a la última versión. Tarea (job_id).
wordpress_login_linkCrea un enlace de acceso a wp-admin de un solo uso (10 minutos).
wordpress_maintenanceActiva o quita el modo mantenimiento.
wordpress_cliEjecuta WP-CLI con comandos permitidos (plugin, theme, core, option get, user list, cache, rewrite, search-replace…).
nodejs_statusEstado de la app de Node.js del sitio (activa, memoria, puerto, último build).
nodejs_setupConvierte el sitio en app de Node.js 24 con reinicio automático. La app debe escuchar en process.env.PORT.
nodejs_deployDespliega la app desde un archivo subido (sin node_modules) o desde git; instala, compila y reinicia. Tarea (job_id).
nodejs_envLee (sin variables) o reemplaza (con variables) las variables de entorno de la app; reemplazar reinicia la app.
nodejs_controlInicia, detiene o reinicia la app.
nodejs_logsSalida reciente de la app, o el registro de la última compilación con build=true.
list_databasesLista las bases de datos MySQL/MariaDB.
create_databaseCrea una base de datos; devuelve la contraseña una sola vez.
list_cron_jobsLista las tareas programadas.
create_cron_jobCrea una tarea programada (sintaxis cron).
delete_cron_jobBorra una tarea programada.
mail_listLista dominios de correo o, con domain, sus buzones.
mail_create_accountCrea un buzón; devuelve la contraseña una sola vez.
create_backupPrograma un respaldo completo de la cuenta.
list_backupsLista los respaldos de la cuenta.
get_jobConsulta el estado y resultado de una tarea larga (job_id).

Acceso por SSH, SFTP y FTP

SSH (Plus e Ilimitado)ssh usuario@panel.stratahostings.com, puerto 22, contraseña o llave. Consola aislada con WP-CLI, Composer, Node.js 24, npm, git, PHP 8.3/8.4, MySQL, rsync y zip.
SFTP (todos los planes)panel.stratahostings.com, puerto 22, usuario y contraseña del panel.
FTP / FTPSpanel.stratahostings.com, puerto 21 con TLS explícito. Cuentas por sitio, limitadas a una carpeta; se crean en el panel o con la API.
Panelpanel.stratahostings.com:8083 · administrador de archivos, correo, bases de datos, cron y respaldos.

Referencia de la API

Todas las respuestas son JSON. Errores: código HTTP 4xx/5xx y {"error": "…"}.

Cuenta

GET/v1/accountDatos de tu cuenta, uso y accesos

Sitios

GET/v1/websitesLista tus sitios
POST/v1/websitesCrea un sitio (dentro del límite de tu plan)
domain Dominio o subdominio nuevo, p. ej. tienda.midominio.com
GET/v1/websites/{domain}Detalle de un sitio
DELETE/v1/websites/{domain}Borra un sitio y sus archivos (pide confirm=true)
?confirm true para confirmar
PUT/v1/websites/{domain}/phpCambia la versión de PHP (8.3 u 8.4)
version 8.3 | 8.4
POST/v1/websites/{domain}/aliasesAgrega un alias o dominio estacionado
alias www.midominio.com o dominio estacionado
DELETE/v1/websites/{domain}/aliases/{alias}Quita un alias
PUT/v1/websites/{domain}/redirectRedirige todo el sitio a otra URL (301/302)
url Destino · code 301 | 302
DELETE/v1/websites/{domain}/redirectQuita la redirección

SSL

GET/v1/websites/{domain}/sslEstado del certificado
POST/v1/websites/{domain}/sslInstala un certificado gratuito de Let's Encrypt (tarea)
force_https true (predeterminado) para mandar todo a https
PUT/v1/websites/{domain}/ssl/force-httpsActiva o quita la redirección a https
enabled true | false

FTP

POST/v1/websites/{domain}/ftpCrea una cuenta FTP limitada a una carpeta del sitio
username Sufijo del usuario FTP · password Opcional; si falta se genera · path Carpeta dentro del sitio, p. ej. public_html/fotos
DELETE/v1/websites/{domain}/ftp/{ftp_user}Borra una cuenta FTP

Archivos

GET/v1/websites/{domain}/filesLista archivos y carpetas del sitio
?path Carpeta relativa al sitio (public_html, private…) · ?depth 1-5
GET/v1/websites/{domain}/files/contentLee un archivo de texto
?path Archivo, p. ej. public_html/index.html · ?from_line Primera línea · ?max_lines Máx. 5000
PUT/v1/websites/{domain}/files/contentCrea o reemplaza un archivo (cuerpo crudo, máx. 50 MB)
?path Archivo destino
POST/v1/websites/{domain}/files/upload-urlURL firmada para subir un archivo grande con PUT (1 h, máx. 512 MB)
path Destino, p. ej. private/sitio.zip
PUT/v1/uploads/{token}Sube el archivo a una URL firmada (sin llave; la URL es la autorización)
DELETE/v1/websites/{domain}/filesBorra un archivo o carpeta
?path Archivo o carpeta
POST/v1/websites/{domain}/files/directoryCrea una carpeta
path Carpeta nueva
POST/v1/websites/{domain}/files/moveMueve o renombra un archivo o carpeta
from Origen · to Destino
POST/v1/websites/{domain}/files/copyCopia un archivo o carpeta
from Origen · to Destino
POST/v1/websites/{domain}/files/extractDescomprime .zip/.tar.* en una carpeta
archive Archivo comprimido · destination Carpeta destino · clean true = vaciar el destino antes
POST/v1/websites/{domain}/files/archiveComprime un archivo o carpeta en .zip
source Qué comprimir · archive Destino .zip

Despliegues

POST/v1/websites/{domain}/deployPublica un sitio estático desde un archivo (reemplaza public_html)
archive_path Archivo ya subido, p. ej. private/sitio.zip
POST/v1/websites/{domain}/git/deployPublica o actualiza el sitio desde un repositorio git (tarea)
repository https://… o git@… · branch main · directory public_html

WordPress

GET/v1/websites/{domain}/wordpressEstado de WordPress en el sitio
POST/v1/websites/{domain}/wordpressInstala WordPress (tarea; la contraseña de admin viene en el resultado)
title Nombre del sitio · admin_user Usuario administrador · admin_email Correo · locale es_MX
POST/v1/websites/{domain}/wordpress/importImporta un WordPress (archivo + .sql) y reemplaza el sitio (tarea)
archive_path private/sitio.zip · sql_path private/base.sql · old_url URL anterior para reemplazar (opcional)
GET/v1/websites/{domain}/wordpress/pluginsLista los plugins instalados
POST/v1/websites/{domain}/wordpress/pluginsInstala un plugin de wordpress.org
slug Slug de wordpress.org · activate true para activar
POST/v1/websites/{domain}/wordpress/plugins/{slug}/{action}Activa, desactiva o actualiza un plugin
DELETE/v1/websites/{domain}/wordpress/plugins/{slug}Desinstala un plugin
GET/v1/websites/{domain}/wordpress/themesLista los themes instalados
POST/v1/websites/{domain}/wordpress/themesInstala un theme de wordpress.org
slug Slug de wordpress.org · activate true para activar
POST/v1/websites/{domain}/wordpress/themes/{slug}/{action}Activa, desactiva o actualiza un theme
DELETE/v1/websites/{domain}/wordpress/themes/{slug}Desinstala un theme
POST/v1/websites/{domain}/wordpress/deployDespliega un tema o plugin propio desde una carpeta subida
type theme | plugin · directory Carpeta subida, p. ej. private/mi-tema · slug mi-tema · activate true para activar
POST/v1/websites/{domain}/wordpress/core/updateActualiza WordPress a la última versión (tarea)
POST/v1/websites/{domain}/wordpress/login-linkEnlace de acceso a wp-admin de un solo uso (10 min)
user Usuario de WordPress (opcional; por defecto el primer administrador)
PUT/v1/websites/{domain}/wordpress/maintenanceActiva o quita el modo mantenimiento
enabled true | false
POST/v1/websites/{domain}/wordpress/cache/flushVacía la caché de objetos de WordPress
POST/v1/websites/{domain}/wordpress/cliEjecuta un comando de WP-CLI permitido (plugin, theme, core, option get, user list…)
args ["plugin","list","--format=json"]

Node.js

GET/v1/websites/{domain}/nodejsEstado de la app de Node.js
POST/v1/websites/{domain}/nodejsConvierte el sitio en app de Node.js (puerto propio, reinicio automático)
start_command Comando de inicio (predeterminado: npm start). La app escucha en process.env.PORT.
PUT/v1/websites/{domain}/nodejs/start-commandCambia el comando de inicio
command p. ej. node server.js
GET/v1/websites/{domain}/nodejs/envVariables de entorno de la app
PUT/v1/websites/{domain}/nodejs/envReemplaza las variables de entorno (reinicia la app)
variables {"DATABASE_URL":"…"}
POST/v1/websites/{domain}/nodejs/deployDespliega desde un archivo subido o desde git, compila y reinicia (tarea)
source archive | git · archive_path private/app.zip (sin node_modules) · repository https://github.com/… · branch main · install_command Opcional (npm ci) · build_command Opcional (npm run build)
POST/v1/websites/{domain}/nodejs/buildRecompila la app con el código actual (tarea)
install_command Opcional · build_command Opcional
GET/v1/websites/{domain}/nodejs/build-logRegistro de la última compilación
GET/v1/websites/{domain}/nodejs/logsSalida reciente de la app
?lines Líneas (máx. 5000)
POST/v1/websites/{domain}/nodejs/{action}Inicia, detiene o reinicia la app
DELETE/v1/websites/{domain}/nodejsQuita la app (los archivos se quedan)

Bases de datos

GET/v1/databasesLista tus bases de datos
POST/v1/databasesCrea una base de datos MySQL (MariaDB)
name Se antepone tu usuario: usuario_nombre · user Opcional · password Opcional; si falta se genera
DELETE/v1/databases/{name}Borra una base de datos (pide confirm=true)
?confirm true
PUT/v1/databases/{name}/passwordCambia la contraseña del usuario de la base
password Opcional; si falta se genera

Cron

GET/v1/cron-jobsLista tus tareas programadas
POST/v1/cron-jobsCrea una tarea programada
minute */15 · hour * · day * · month * · weekday * · command php /home/usuario/web/sitio/public_html/cron.php
DELETE/v1/cron-jobs/{id}Borra una tarea programada

Correo

GET/v1/mail/domainsDominios de correo
POST/v1/mail/domainsActiva el correo para un dominio (con DKIM)
domain midominio.com
GET/v1/mail/domains/{domain}/accountsBuzones de un dominio
POST/v1/mail/domains/{domain}/accountsCrea un buzón (dentro del límite de tu plan)
account contacto · password Opcional · quota_mb Opcional
DELETE/v1/mail/domains/{domain}/accounts/{account}Borra un buzón y su correo
?confirm true
PUT/v1/mail/domains/{domain}/accounts/{account}/passwordCambia la contraseña de un buzón
password Opcional
POST/v1/mail/domains/{domain}/accounts/{account}/forwardsReenvía el buzón a otra dirección
to otra@direccion.com
PUT/v1/mail/domains/{domain}/accounts/{account}/autoreplyActiva la respuesta automática
message Texto de la respuesta
DELETE/v1/mail/domains/{domain}/accounts/{account}/autoreplyQuita la respuesta automática

Respaldos

GET/v1/backupsLista tus respaldos
POST/v1/backupsPrograma un respaldo completo de tu cuenta

Tareas

GET/v1/jobs/{id}Estado de una tarea larga

API 1.0.0 · Strata Hostings