Capítulo MCP de la guía Neblla — el servidor MCP para que una IA cree y gestione apps. El contrato base está en core.txt.

El servidor MCP

Endpoint: https://neblla.com/mcp. Es la puerta por la que cualquier IA puede crear apps Neblla, subir ficheros, gestionar productos y usuarios, y publicar en la galería en nombre del desarrollador.

Autenticación

OAuth con Bearer token. El recurso protegido anuncia su metadata en https://neblla.com/.well-known/oauth-protected-resource/mcp. El access token tiene su propio TTL y revocación.

Tres tools funcionan sin autenticación: neblla_get_llms, neblla_get_app_url y neblla_validate_requirements. El resto requiere el token del desarrollador.

Tools

Guía y descubrimiento (sin auth):

Apps:

Ficheros:

Versiones seguras:

Productos:

Galería:

Usuarios finales (backoffice):

Salas y moderadores:

Comunidad:

Reseñas de la galería:

Comunicaciones (backoffice):

Cuenta:

Integraciones:

Cobros:

Cuenta:

Solo en la web, a propósito: contraseña, rotar el token, guardar la clave de Claude, quitar emails o cambiar el principal, suscribirse a Pro y comprar cuota (hasta que se revise la facturación).

Flujo recomendado de creación

1. neblla_validate_requirements — recorrer el mapa de decisiones (abajo) hasta have_enough_context: true. 2. neblla_get_llms — cargar core + las secciones de las features encendidas. 3. neblla_create_app({ name, decisions }) — crea la app, scaffoldea el patrón con sus piezas tematizadas y escribe la config completa. Devuelve el appId. 4. neblla_upload_file (y neblla_get_file / neblla_move_file para editar) — editar los ficheros scaffoldeados siguiendo la estructura canónica de core.txt. Los ficheros están en producción en cuanto se suben. 5. neblla_get_app_url — obtener la URL canónica y entregarla al usuario.

Publicar en la galería (neblla_publish_app) es un paso aparte y opcional.

El flujo de decisiones

neblla_validate_requirements recorre el MISMO mapa de decisiones que el wizard del dashboard: las dos superficies son la misma entrevista. El contrato para el modelo que crea la app:

1. Pasa en decisions todo lo que la petición del usuario ya responde o implica. 2. La respuesta lista cada decisión pendiente con how_to_infer (cómo deducirla tú mismo) y ask_user (si merece molestar al humano). Responde tú mismo todo lo que puedas. Solo las decisiones devueltas en ask_user_questions que de verdad no puedas inferir se preguntan al usuario — todas juntas, en un único mensaje. 3. Repite con el set completo hasta have_enough_context: true. Las decisiones con default y ask_user: never se autocompletan; las "preguntables" (p. ej. aiPayer, que decide quién paga) exigen respuesta explícita — tuya o del usuario — y nunca se rellenan en silencio. 4. Pasa el decisions devuelto tal cual a neblla_create_app. El campo plan de la respuesta te enseña antes de crear qué patrón, piezas y config van a salir.

Las decisiones: kind (game|app), players (single | lobby-only | multi — single = un dispositivo; lobby-only = todos en un único espacio común sin salas; multi = salas separadas), structure (turn-based | host-controllers | collab-realtime; solo cuando players=multi), las piezas login/friends/purchases/ai/communications (booleanos), connections (all|p2p|server), serverMode (js|wasm), roomsPolicy (ephemeral|public|private|mixed), matchmakingMode (nocode|custom), aiPayer (off|browser|server; solo con ai), palette ({primary, secondary, alert} en hex — elígela TÚ según el carácter de la app) y typography (modern|editorial|techy|serif|playful — también tuya).

El scaffold resultante: el patrón elegido + una pieza de UI con diseño por cada feature encendida (login, salas, jugadores, chat, tienda, caja de IA, amigos, inbox), tematizadas con la paleta y tipografía vía variables CSS en main.css. Los ficheros server/ salen del patrón. Tu trabajo después es EDITAR esos ficheros, no reescribirlos desde cero.