deed.page

Publica sitios estáticos en URLs permanentes con una sola llamada: sin cuenta, código de correo ni enlace de reclamación. Siete herramientas MCP para publicar, actualizar y gestionar.

Servidor MCP alojado

npx add-mcp 'https://deed.page/mcp'

Se instala en Claude Code, Codex, Cursor y más

Documentación

Documentación de deed.page

Publica una escritura: una solicitud convierte archivos en una URL pública permanente. Diseñado para agentes; sin paso humano en ningún lugar.

Publica una carpeta o algunos archivos en una URL HTTPS viva y permanente con un solo PUT o POST. Sin cuenta, sin código de correo electrónico, sin enlace de reclamación, sin caducidad de 24 horas. El agente elige el slug. Úsalo cuando te pidan "publica esto", "aloja esto", "despliega esto", "comparte esto en la web", "haz un sitio web", "pon esto en línea", "crea una página web" o "genera una URL", o cuando un enlace anónimo de 24 horas no sea suficiente.

base_url: https://deed.page openapi: https://deed.page/openapi.json mcp: https://deed.page/mcp skill: https://deed.page/skill.md

Inicio rápido

echo '<!doctype html><h1>Hola</h1>' > index.html
curl -T index.html "https://deed.page/v1/sites?slug=hello"

Respuesta (201 al crear, 200 al actualizar):

{"ok":true,"url":"https://hello.deed.page/","path_url":"https://deed.page/s/hello/","slug":"hello","version":"v1","unchanged":false,"permanent":true,"expires_at":null,"bytes":31,"files":1,"plan":"free","token":"deed_tok_...","token_note":"Shown once..."}

url es la forma de subdominio cuando publicas a través de deed.page; path_url (/s/{slug}/) siempre funciona.

Autenticación

  • Ninguna para publicar. Sin cuenta, código de correo electrónico o enlace de reclamación.
  • La primera publicación sin token genera uno y lo devuelve una sola vez como token. Guárdalo (por ejemplo export DEEDPAGE_TOKEN=deed_tok_...).
  • Envía Authorization: Bearer $DEEDPAGE_TOKEN para actualizar, listar, eliminar o mejorar. Publicar nuevos slugs con el mismo token los mantiene bajo un solo propietario.
  • Si pierdes el token, no podrás actualizar ese slug. No hay recuperación por correo electrónico porque nunca recopilamos uno.

Publicación

PUT y POST son la misma operación en /v1/sites y /v1/sites/{slug} (también bajo /api/v1/).

Cuerpos:

  • Tarball gzip o tar simple (curl -T site.tar.gz). Se elimina un directorio contenedor.
  • Un solo archivo HTML (curl -T index.html) se convierte en index.html.
  • multipart/form-data: un archivo, o muchos archivos (campo filename = ruta).
  • application/json: {"files":{"index.html":"<h1>hi</h1>","logo.png":{"base64":"iVBOR..."}}}

Encabezados (o parámetros de consulta):

EncabezadoConsultaSignificado
X-SlugslugSlug para publicar (1-63 caracteres, a-z 0-9 -). Aleatorio si se omite.
AuthorizationToken Bearer para actualizaciones.
X-Mergemerge1 = agregar estos archivos a la versión actual en lugar de reemplazarla.
X-Spaspa1 = servir index.html para rutas desconocidas.
X-TtlttlSegundos hasta que el sitio expire. Omitir para permanente.
Idempotency-KeyReproduce la misma respuesta para reintentos.
X-ClientNombre de tu herramienta (cursor, claude-code, codex...).

Tarball de directorio:

tar -C ./site -czf /tmp/site.tar.gz .
curl -T /tmp/site.tar.gz "https://deed.page/v1/sites?slug=my-app" -H "Authorization: Bearer $DEEDPAGE_TOKEN"

JSON:

curl -X POST "https://deed.page/v1/sites" -H 'content-type: application/json' \
  -d '{"slug":"my-app","files":{"index.html":"<!doctype html><h1>hola</h1>"}}'

Sitios grandes

Cada cuerpo de solicitud está limitado a 4 MB (un límite de plataforma serverless). Envía el primer fragmento normalmente, luego el resto con X-Merge: 1 y tu token; cada publicación combinada agrega o sobrescribe rutas y aumenta la versión. El tamaño total por sitio está determinado por tu plan.

Servicio

  • https://{slug}.deed.page/ y https://deed.page/s/{slug}/
  • / sirve index.html; /about intenta about, about.html, about/index.html.
  • 404.html en la raíz se usa para errores. El modo SPA sirve index.html en su lugar.
  • Una carpeta sin index.html muestra un listado de archivos.

Endpoints

MétodoRutaAuthQué hace
PUT/POST/v1/sitesopcionalPublicar (slug mediante encabezado/consulta/cuerpo)
PUT/POST/v1/sites/{slug}opcionalPublicar en slug
GET/v1/sitesBearerListar tus sitios
GET/v1/sites/{slug}ningunoMetadatos públicos del sitio
DELETE/v1/sites/{slug}BearerEliminar tu sitio
GET/v1/whoamiopcionalPlan y límites
POST/api/v1/billing/checkoutBearerURL de Stripe Checkout para hobby o pro
POST/api/v1/billing/portalBearerURL del portal de facturación de Stripe
GET/api/v1/healthningunoVerificación de salud
POST/mcpopcionalMCP (JSON-RPC sobre HTTP Streamable)

MCP

Endpoint: https://deed.page/mcp (HTTP Streamable, respuestas JSON, sin SSE). Herramientas: publish_site, update_site, get_site, list_sites, delete_site, whoami, get_upgrade_link. Pasa tu token como encabezado Authorization: Bearer o como argumento token.

Claude Code:

claude mcp add --transport http deed-page https://deed.page/mcp

Cursor / configuración JSON genérica:

{"mcpServers":{"deed-page":{"url":"https://deed.page/mcp"}}}

Errores

Cada error es JSON: {"code","message","retry_after","docs_url","suggestion?"}.

CódigoEstadoSignificado
slug_taken409Otro lo posee; suggestion tiene un slug libre.
slug_invalid / slug_reserved400Elige otro slug.
unauthorized401Token faltante o desconocido.
forbidden403El token no posee ese slug.
quota_sites403Límite de sitios del plan alcanzado.
quota_bytes413Sitio más grande de lo que permite tu plan.
request_too_large413Cuerpo superior a 4 MB; usa X-Merge.
rate_limited429Consulta retry_after segundos.
invalid_archive / empty_site / bad_request400Corrige el cuerpo.

Límites y planes

PlanPrecioSitiosPor sitioPublicaciones/hora
Gratis$02525 MB60
Hobby$3/mes250100 MB300
Pro$15/mes2,500500 MB1,200

Cada plan: sitios permanentes, sin correo electrónico, sin enlace de reclamación, MCP, URLs de subdominio y ruta. Los planes de pago se facturan mensualmente por Stripe; cancela en cualquier momento en el portal de facturación.

Reglas de contenido

Solo archivos estáticos públicos. Sin malware, phishing, recolección de credenciales o contenido ilegal. Eliminamos slugs que rompen estas reglas. Reporta abusos a ops@avatar33.com.

Instala la habilidad

mkdir -p ~/.claude/skills/deed-page && curl -fsSL https://deed.page/skill.md -o ~/.claude/skills/deed-page/SKILL.md

Operador

deed.page es operado por Avatar 8 LLC. Contacto: ops@avatar33.com.