¿Qué le agrega el plugin de Fine Structure a Claude Code?
Fine Structure (finestructure.ai) es una plataforma de aplicaciones full-stack. Ofrece hosting, una base de datos gestionada cuyas tablas se llaman entities, autenticación, dominios propios con TLS automático, almacenamiento de secretos, reversión a versiones guardadas y agentes de IA. La integración con Claude Code es un plugin de código abierto para Claude Code, con licencia MIT, publicado en https://github.com/finestructure-ai/claude-plugin.
Instalarlo hace dos cosas. Agrega un conjunto breve de comandos de barra a tu sesión y registra un conector MCP apuntado a https://finestructure.ai/api/mcp. El conector es lo que le expone la plataforma a Claude: alrededor de 69 herramientas que cubren creación de apps, edición de archivos, modelado de datos, publicación y lectura de errores y tráfico.
- /deploy despliega el proyecto actual y devuelve una URL en vivo.
- /fs-status informa el estado de la app, sus enlaces y los errores en tiempo de ejecución.
- /fs-domain <domain> conecta un dominio propio, con una guía de DNS y TLS automático.
¿Cómo se instala el plugin de despliegue para Claude Code?
La instalación ocurre dentro de una sesión de Claude Code, no en una terminal. Ejecuta estos dos comandos en orden en el prompt de Claude Code. El primero registra el marketplace que aloja el plugin, el segundo instala el plugin desde ahí.
Cuando termina la instalación, los comandos de barra y el conector MCP quedan activos en la sesión. No hay clave de API que pegar, ni archivo de configuración que agregar al repositorio, ni paso de compilación que conectar.
- /plugin marketplace add finestructure-ai/claude-plugin
- /plugin install finestructure@finestructure
¿Cómo funciona la autorización y dónde van las claves de API?
En este flujo no hay claves de API. La primera vez que Claude llama a una herramienta de Fine Structure, tu navegador abre una pantalla de consentimiento OAuth de Fine Structure. Inicias sesión (existe un plan gratuito y no se pide tarjeta), lees qué está solicitando el conector y haces clic en Autorizar. A partir de ahí la sesión toma el acceso concedido y continúa.
Como la concesión es un consentimiento OAuth y no un token copiado, ningún valor secreto pasa por el historial de tu terminal ni por tu repositorio. Una precisión mientras estás en la pantalla de consentimiento: este es un plugin de código abierto para Claude Code, no un listado oficial ni verificado de Anthropic, y los envíos al directorio siguen en revisión. El código es público, así que leer el repositorio es la forma práctica de confirmar qué hace el conector.
¿Cómo se despliega desde Claude Code con el comando /deploy?
Hay dos modos de despliegue, y cuál se ejecuta depende de lo que el plugin tenga delante.
El primer modo parte de una idea y no de un código existente. Describes la app en la sesión, Claude llama a create_app con esa descripción y la plataforma genera la aplicación inicial. Ejecutar /deploy la publica y devuelve la URL. El segundo modo parte de un proyecto que ya está en disco, y se cubre en la siguiente sección porque se comporta distinto.
Un primer despliegue de una idea nueva se ve así.
- Abre Claude Code en el directorio desde el que quieres trabajar.
- Describe en lenguaje natural la app que quieres, o señálale a Claude el proyecto existente.
- Ejecuta /deploy.
- Aprueba la pantalla de consentimiento OAuth si es tu primer uso del conector.
- Abre la URL que devuelve. La app se sirve en <name>.finestructure.ai hasta que conectes un dominio propio.
¿Cómo se publica un proyecto local existente desde Claude Code?
Un proyecto existente se porta archivo por archivo al runtime de React de la plataforma. Claude lee tu código y lo recrea en la estructura del runtime: las pantallas en pages/ y el código de interfaz compartido en components/. Los imports, las convenciones de rutas y el acceso a datos se reescriben para encajar en la plataforma, no se copian tal cual. Es un port, no una subida ciega de archivos.
Esa distinción fija la expectativa correcta. El resultado es una app que funciona con la forma de la plataforma, no un espejo idéntico de tu repositorio, así que revisa los archivos portados como revisarías un pull request. Cada escritura de archivo crea una versión guardada, lo que significa que una reescritura que salió mal se puede revertir en lugar de deshacerla a mano.
Un orden de trabajo sensato: porta una página y los datos que lee, despliega esa parte, confirma que el runtime se comporta como esperas y recién entonces mueve el resto.
Revisar estado, errores de ejecución y tráfico después del primer despliegue
/fs-status es la lectura más rápida de una app desplegada. Devuelve el estado actual, los enlaces de la app y los errores en tiempo de ejecución de la app en vivo, que suele bastar para distinguir un problema de compilación de algo que falla en el navegador.
Claude tiene herramientas más finas sobre el mismo terreno. get_errors trae los errores en tiempo de ejecución para que la corrección se haga y se publique en la misma sesión. get_app_analytics devuelve vistas, visitantes únicos, páginas más vistas, referentes y desglose por dispositivo. publish_app pone en vivo el estado actual cuando quieres controlar el momento de la publicación en lugar de publicar en cada edición.
¿Cómo se conecta un dominio propio con TLS automático?
Hasta que se conecta un dominio, la app responde en <name>.finestructure.ai. Para moverla a tu propia dirección, ejecuta /fs-domain app.example.com en la sesión.
El comando te guía por los registros DNS que hay que agregar en tu registrador y luego comprueba que resuelvan. Los certificados TLS se emiten y se renuevan de forma automática una vez que el dominio queda verificado, así que no hay archivo de certificado que instalar ni renovación que programar. La propagación de DNS es la parte lenta de este paso y queda fuera del control de la plataforma, así que dale tiempo antes de concluir que algo falló.
¿Qué más le permite hacer el conector a Claude?
El despliegue es una porción del conjunto de herramientas. El resto importa cuando la app ya tiene usuarios y datos reales.
- Entities: define esquemas de base de datos y trabaja con los registros directamente desde la sesión.
- Versiones guardadas: cada edición de archivo queda versionada, así que revertir es una operación rutinaria y no una emergencia.
- Secretos: mantén fuera del código que editas las credenciales que la app necesita en ejecución.
- Políticas de acceso: protege páginas detrás del login para que solo lleguen usuarios autenticados.
- Analítica: vistas, visitantes únicos, páginas más vistas, referentes y dispositivos.
- Agentes: agentes de IA que corren como parte de la app en vez de como un script externo que tienes que alojar.
¿Cuándo no conviene usar esto como hosting para Claude Code?
Este camino encaja con trabajo con forma de app: un front end en React, datos en entities, usuarios detrás de autenticación, desplegado y revisado desde la sesión. Hay tres casos que encajan mal, y sale más barato notarlo antes del port que después.
También hay una cuestión de flujo de trabajo que no tiene que ver con las funciones. Si tu equipo trata a git como la fuente de verdad, con revisiones obligatorias y CI que debe pasar antes de publicar nada, entonces una plataforma donde el asistente edita archivos desplegados de forma directa necesita una convención acordada sobre qué se lleva de vuelta al repositorio. Resuelve eso antes del primer despliegue, no después.
- Necesitas un runtime de servidor específico. Si el servicio tiene que correr Go, Rust, una versión fija de Python o un proceso worker de larga duración, un runtime de React es el destino equivocado.
- Tienes un monorepo con un backend importante. Portar un front end es viable; un repositorio cuyo valor está en servicios de backend, paquetes internos compartidos y su propio pipeline de compilación va a pelearse con el port en lugar de beneficiarse de él.
- Solo necesitas hosting de archivos estáticos. Para un sitio estático sin base de datos, sin autenticación y sin lógica de servidor, un hosting al estilo de Vercel o Netlify es más simple y más fácil de razonar.
Preguntas que la gente hace de verdad
- ¿El plugin de Fine Structure para Claude Code es oficial?
- No. Es un plugin de código abierto para Claude Code, con licencia MIT, publicado en github.com/finestructure-ai/claude-plugin. Los envíos al directorio están en revisión, así que no debería describirse como oficial, verificado ni listado en el directorio de Anthropic.
- ¿Hace falta tarjeta de crédito para desplegar desde Claude Code?
- No. Fine Structure tiene un plan gratuito, y la pantalla de consentimiento OAuth que se abre en el primer uso no pide datos de tarjeta. Ahí inicias sesión o creas la cuenta y haces clic en Autorizar, y el despliegue continúa en la sesión.
- ¿Qué hace en realidad el comando /deploy en Claude Code?
- Despliega el proyecto actual y devuelve una URL en vivo. Para una idea nueva trabaja junto con create_app, que primero genera la aplicación a partir de tu descripción. Para un proyecto local existente, los archivos se portan al runtime de React de la plataforma y luego se publican.
- ¿Puedo desplegar un proyecto de React existente desde Claude Code?
- Sí, con la salvedad de que es un port y no una subida. Claude recrea tus pantallas y componentes compartidos en la estructura de la plataforma (pages/ y components/) y adapta los imports y el acceso a datos al runtime. Revisa los archivos portados antes de publicar, igual que con cualquier código generado.
- ¿Cómo apunto mi propio dominio a una app desplegada desde Claude Code?
- Ejecuta /fs-domain yourdomain.com en la sesión. El comando te da los registros DNS que hay que agregar en tu registrador, comprueba la verificación y aprovisiona TLS de forma automática. Hasta que el dominio se verifique, la app sigue accesible en <name>.finestructure.ai.