Documentación

Publica una PWA con un asistente de IA.

PwaNow incluye una skill que cualquier asistente de codificación con IA puede seguir de principio a fin — crear el sitio, subir la build y verificar que esté realmente en línea — usando el servidor MCP alojado de PwaNow. Nada que instalar localmente.

Dale a tu agente un solo prompt

La mayoría de los asistentes de codificación con IA — Claude Code, Claude, Cursor y similares — pueden obtener una URL y seguirla como instrucciones. Apunta el tuyo a la skill y describe qué construir:

Prompt

Build a PWA with a few games, including flappy bird. Deploy it on PwaNow using this skill: https://pwanow.com/skill.md

La skill es autocontenida: le indica al agente a qué endpoint de MCP conectarse, cómo autenticarse, cómo comprimir y subir una build (el servidor MCP no tiene acceso a tu sistema de archivos local, así que ese paso queda a cargo de tu agente) y que no reporte éxito hasta que el sitio en vivo realmente pase una comprobación.

Añade un backend para tus datos

PwaNow aloja la build estática — los datos propios de tu PWA (cuentas, registros, lo que necesite guardar) viven donde tú los apuntes. Dile a tu agente cuál conectar:

Prompt — Firebase

Build a PWA that [describe what it does]. Use Firebase for the
backend — Firestore to store data and Firebase Authentication for
sign-in. Create a new Firebase project, wire the client SDK into the
app, and add security rules that scope data per user. Deploy it on
PwaNow using this skill: https://pwanow.com/skill.md

Prompt — Supabase

Build a PWA that [describe what it does]. Use Supabase for the
backend — Postgres for data and Supabase Auth for sign-in, with Row
Level Security policies so each user only sees their own data. Deploy
it on PwaNow using this skill: https://pwanow.com/skill.md

PwaNow no ejecuta código del lado del servidor — solo sirve los archivos estáticos que subes. Firebase y Supabase están hechos para esto: sus SDKs de cliente hablan directamente con el backend, y las reglas de seguridad (no un servidor que tú alojas) mantienen los datos delimitados por usuario.

Antes de empezar

Tu agente necesita dos cosas de ti: una cuenta y una clave para actuar como tú.

  1. 1

    Crea una cuenta

    Gratis, sin tarjeta de crédito. Regístrate para obtener un panel.

  2. 2

    Crea una clave de API

    Desde Claves de API en el panel. Las claves empiezan con pwanow_live_… y autentican las solicitudes MCP como tú.

  3. 3

    Entrégasela a tu agente

    Pega la clave en tu prompt o en la configuración del cliente MCP — lo que pida la skill.

Qué hace realmente la skill

El mismo ciclo de despliegue y verificación, ya sea ejecutado por un humano o un agente.

Crea el sitio

Llama a create_site con un nombre de subdominio (comprobando primero list_sites para no duplicar uno que ya tengas).

Sube la build

Solicita una URL prefirmada mediante get_upload_url, y luego comprime y sube tu build — el servidor MCP no puede acceder a tus archivos locales.

Verifica que esté en vivo

Consulta get_site_status hasta que termine el procesamiento, y luego llama a test_site, que obtiene la URL real y comprueba el resultado.

Reporta con honestidad

Solo reporta éxito cuando test_site devuelve passed: true — y explica qué comprobación falló si no fue así, en lugar de adivinar.

¿Prefieres configurarlo tú mismo?

Cualquier cliente compatible con MCP puede conectarse directamente, sin pasar por el prompt de la skill.

.mcp.json — Claude Code

{
  "mcpServers": {
    "pwanow": {
      "type": "http",
      "url": "https://api.pwanow.com/mcp",
      "headers": {
        "Authorization": "Bearer <your pwanow_live_… API key>"
      }
    }
  }
}

.claude/settings.local.json — skip the approval prompt

{
  "enabledMcpjsonServers": ["pwanow"]
}

.vscode/mcp.json — VS Code

{
  "servers": {
    "pwanow": {
      "type": "http",
      "url": "https://api.pwanow.com/mcp",
      "headers": {
        "Authorization": "Bearer <your pwanow_live_… API key>"
      }
    }
  }
}

.cursor/mcp.json — Cursor

{
  "mcpServers": {
    "pwanow": {
      "url": "https://api.pwanow.com/mcp",
      "headers": {
        "Authorization": "Bearer <your pwanow_live_… API key>"
      }
    }
  }
}

~/.codeium/windsurf/mcp_config.json — Devin Desktop (formerly Windsurf)

{
  "mcpServers": {
    "pwanow": {
      "serverUrl": "https://api.pwanow.com/mcp",
      "headers": {
        "Authorization": "Bearer <your pwanow_live_… API key>"
      }
    }
  }
}

~/.codex/config.toml — Codex CLI

[mcp_servers.pwanow]
url = "https://api.pwanow.com/mcp"
http_headers = { "Authorization" = "Bearer <your pwanow_live_… API key>" }

~/.gemini/config/mcp_config.json — Antigravity

{
  "mcpServers": {
    "pwanow": {
      "serverUrl": "https://api.pwanow.com/mcp",
      "headers": {
        "Authorization": "Bearer <your pwanow_live_… API key>"
      }
    }
  }
}
  • create_site — reserva un subdominio para un sitio nuevo
  • list_sites — muestra todo lo que ya tienes antes de crear un duplicado
  • get_upload_url — obtiene una URL prefirmada para subir una build comprimida
  • get_site_status — comprueba el estado de un sitio y su URL en vivo
  • test_site — obtiene el sitio en vivo e informa qué está funcionando realmente
  • delete_site — permanente; los agentes que siguen la skill confirman contigo primero

Usando Claude Code

Guarda la skill localmente en lugar de enlazarla, si prefieres que esté siempre disponible.

Terminal — macOS / Linux

mkdir -p .claude/skills/pwanow
curl -o .claude/skills/pwanow/SKILL.md https://pwanow.com/skill.md

PowerShell — Windows

mkdir .claude\skills\pwanow -Force
Invoke-WebRequest -Uri https://pwanow.com/skill.md -OutFile .claude\skills\pwanow\SKILL.md

Luego simplemente pídele a Claude Code que despliegue tu proyecto en PwaNow — tomará la skill automáticamente y pedirá tu clave de API la primera vez que la necesite.