Model Context Protocol · para silicio y carbono
digitalavatar.ai MCP
La puerta común para que cualquier agente (Claude, Codex, ChatGPT, bots…) y cualquier humano puedan consultar e incrustar un humano digital que conversa en vivo — y para que nosotros nos conectemos a otros. Toda la info, en un sitio estable.
Qué es
Neo, un MetaHuman en vivo
Renderizado en Unreal Engine 5 y emitido en tiempo real por Pixel Streaming. No es un vídeo ni un chatbot con foto: escucha por texto o micro, responde con voz y lip-sync, y recuerda el hilo de la conversación.
Lo más importante
Incrustarlo en tu web
Una etiqueta <script> donde quieras que aparezca. Sin SDK, sin cuenta, sin build ni backend en tu lado.
<script src="https://digitalavatar.ai/mh-embed.js" data-ask="1" data-width="380"></script>
| Atributo | Qué hace | Valores |
|---|---|---|
data-ask | Muestra la caja de preguntas (hablar con Neo). | 0 (def.) · 1 |
data-ratio | Proporción del cuadro; hay póster propio para cada una. | 9x16 (def.) · 16x9 · 1x1 |
data-width | Ancho máximo en px (responsive por debajo). | 360 (def.) |
data-height | Alto fijo en px. Prioritario sobre data-ratio. | — (opcional) |
data-lang | Idioma del embed y de las respuestas de Neo. | es · en · auto (def.) |
data-target | Selector CSS donde montar el embed. | donde está el <script> |
data-autostart | Salta el póster y conecta al cargar. | 0 (def.) · 1 |
Ligero por defecto
Patrón facade: muestra un póster real de Neo y solo conecta el stream cuando el visitante lo pulsa, para no ocupar el host de render en cada carga ajena.
Nunca se queda en negro
Si el host de render está apagado, el embed cambia solo a un avatar web que también habla.
API en vivo
brain.digitalavatar.ai
| Método | Ruta | Qué hace |
|---|---|---|
POST | /metahuman/ask | Pregunta a Neo y devuelve {answer}. Body: {question, room, persona:"neo", lang, history}. Mantiene el hilo si le pasas history. |
POST | /metahuman/say | Hace que Neo locute un texto directamente en el stream. Body: {room, text}. |
Transparencia
El límite, dicho claro
Instancia compartida
El render vive en un único host (un Mac de la flota). Escala bien para mirar, pero varias webs conversando a la vez comparten el mismo Neo. El render en la nube 24/7 (multi-espectador) está pendiente.
Salud
Qué se vigila, y por qué existe
Neo estuvo semanas sin responder porque el frontend llamaba a un endpoint que devolvía 404, y nadie lo vio: se verificaba que la web se viera, no que funcionara. Estas comprobaciones llaman a los servicios de verdad.
| Comprobación | Qué mira |
|---|---|
cerebro-neo | Que POST /metahuman/ask devuelva una respuesta real, no vacía. |
mcp-server | Que el servidor MCP liste sus herramientas por JSON-RPC. |
consejo-mini-externo | Que el Consejo responda visto desde fuera del tailnet, no solo desde dentro. |
manifest | Que este manifest siga siendo JSON válido. |
proof-of-play | La antigüedad del último dato de emisión y audiencia (avisa a los 3 días). |
Hoy no están instalados
Los dos vigilantes existen y están probados, pero solo se ejecutan a mano. Activarlos como tarea programada requiere el OK del dueño de la máquina: es configuración persistente y publica avisos al grupo.
Cuatro lecciones, por si montas algo igual
Usa curl, no urllib (Cloudflare le da 403 y parece que el sistema falla). Al probar algo del tailnet, fuerza la IP pública del Funnel: desde dentro siempre sale verde. Prueba con el método correcto (un GET a un endpoint POST parece roto sin estarlo). Y una alerta diaria acaba silenciada: avisa solo al cambiar de estado.
Federación
Misma convención en todo el ecosistema
clearchannel.tv (audiencia y emisión verificadas) · admira.app (preproducción) · admira.live (el Consejo) · xpaceos.com (el gemelo digital)