## Asset Header

- **Asset ID:** SOP-EL-SX-NuevoCliente-v02
- **Version:** v02
- **Status:** Draft
- **Owner:** Victor Heredia
- **IntellBank:** IB-EL-EmpowerLabs
- **Tipo:** SOP — Standard Operating Procedure
- **Propósito:** **Resumen**
- **Última actualización:** 2026-04-11

---

**BrainOS EC2 · SherpaX**

**SOP — Alta de Nuevo Cliente en MCP Server**

SHA-SOP-NuevoCliente-v02 · EmpowerLabs · 2026-04-02

|   |   |
|---|---|
 
|Documento|SHA-SOP-NuevoCliente-v02|
|Servidor MCP|https://mcp.genniux.com/brainos-mcp/stream|
|Audiencia|EmpowerLabs — Equipo de instalación|
|Versión|v02 — migración EC2|

  
  

# **Resumen**

Este documento describe el proceso completo para dar de alta a un nuevo cliente en el servidor BrainOS EC2 multitenant. Cubre las 3 capas del sistema: el alta en el servidor MCP (Capa 1), la preparación del SherpaX Package (Capa 2), y la configuración de Cowork (Capa 3).

  
  

_El servidor EC2 ya está corriendo en mcp.genniux.com. Este SOP cubre el alta de cada cliente nuevo — no la instalación del servidor._

  
  

# **Las 3 capas — qué cambia y qué no con EC2**

  
  

   
|**Capa**|**Nombre**|**Qué es**|**Estado con EC2**|
|---|---|---|---|
|1|BrainOS (Memoria)|PostgreSQL schema por cliente en EC2 + MCP Server compartido|✅ CAMBIA — 4 comandos reemplazan Supabase|
|2|SherpaX Package (Identidad)|CLAUDE.md + SEED files + MetaPlaybooks en el workspace del cliente|✅ IGUAL — proceso idéntico al anterior|
|3|Cowork (Experiencia)|App Cowork del cliente conectada al BrainOS vía MCP|✅ IGUAL — solo cambia la URL del conector|

  
  

_Solo la Parte A cambia respecto al proceso Supabase. Las Partes B, C y D son idénticas al SOP anterior._

  
  

# **Información que necesitas antes de empezar**

  
  

  
|**Variable**|**Ejemplo**|**Dónde se usa**|
|---|---|---|
|CLIENT_NAME|Maria Lopez|CLAUDE.md, SEED-identidad.md|
|SCHEMA_ID|maria|PostgreSQL: brainos_maria|
|SHERPA_NAME|MariaX|CLAUDE.md (convención: NombreX)|
|ORG_NAME|Empresa S.A.|CLAUDE.md, SEED-identidad.md|
|SECTOR|Consultoría / Tech / etc.|CLAUDE.md, SEED-identidad.md|
|PROYECTOS_ACTIVOS|Proyecto X, Proyecto Y|SEED-proyectos.md|
|EMAIL_CLIENTE|maria@empresa.com|Credential Tracker|
|FECHA_INICIO|2026-04-02|CLAUDE.md|

  
  

_SCHEMA_ID: solo letras minúsculas y guiones bajos. Sin espacios, acentos ni caracteres especiales. Ejemplo: 'José Martínez' → 'jose' o 'jose_martinez'._

  
  

# **PARTE A — BrainOS (Capa 1) · ~2 minutos**

EmpowerLabs ejecuta esto en el servidor EC2. El cliente no toca nada de esta parte.

  
  

## **A1 — Generar MCP Access Key**

En el servidor EC2 (ssh ubuntu@TU_ELASTIC_IP):

  
  

|   |
|---|
|openssl rand -hex 32|

  
  

Guarda el resultado (64 caracteres hex) como MCP Access Key en el Credential Tracker del cliente. Esta key no se puede recuperar — si se pierde hay que generar una nueva y actualizar tenants.json.

  
  

## **A2 — Crear schema en PostgreSQL**

Reemplaza [SCHEMA_ID] con el identificador del cliente:

  
  

|   |
|---|
|sudo -u postgres psql -d brainos -c "SELECT create_brainos_tenant('[SCHEMA_ID]');"|

  
  

Esto crea brainos_[SCHEMA_ID] con la tabla thoughts, índice HNSW para búsqueda semántica y permisos correctos. Un schema por cliente — completamente aislado.

  
  

## **A3 — Registrar key en tenants.json**

  
  

|   |
|---|
|nano ~/brainos-mcp/config/tenants.json|

  
  

Agrega la línea del nuevo cliente sin borrar las existentes:

  
  

|   |
|---|
|{<br><br>"key_cliente_existente_1": "brainos_jose",<br><br>"LA_KEY_NUEVA_64_CHARS": "brainos_[SCHEMA_ID]"<br><br>}|

  
  

_Guarda con Ctrl+O, Enter, Ctrl+X. Si el JSON tiene un error de sintaxis, pm2 reload fallará. Valida en jsonlint.com si tienes dudas._

  
  

## **A4 — Recargar servidor sin downtime**

  
  

|   |
|---|
|pm2 reload brainos-mcp|

  
  

PM2 recarga el proceso con zero-downtime. Los demás clientes no se ven afectados.

  
  

## **A5 — Verificar y construir Connection URL**

  
  

|   |
|---|
|curl -X POST "https://mcp.genniux.com/brainos-mcp/stream?key=LA_KEY_NUEVA" \<br><br>-H "Content-Type: application/json" \<br><br>-d '{"method":"tools/call","params":{"name":"thought_stats","arguments":{}}}'|

  
  

Respuesta esperada: {"total_thoughts":0}

  
  

Si ves este resultado, la Connection URL del cliente es:

  
  

|   |
|---|
|https://mcp.genniux.com/brainos-mcp/stream?key=LA_KEY_NUEVA|

  
  

Guarda esta URL en el Credential Tracker. Es lo único que necesita el cliente para configurar Cowork.

  
  

# **PARTE B — SherpaX Package (Capa 2) · ~15 minutos**

El paquete es un conjunto de archivos .md que van al workspace del cliente en Cowork. Esta parte es idéntica al proceso anterior — EC2 no cambia nada aquí.

  
  

## **Estructura del paquete**

  
  

|   |
|---|
|[WorkspaceCliente]/<br><br>├── CLAUDE.md ← EL ARCHIVO MÁS IMPORTANTE<br><br>└── .claude/<br><br>├── MetaPlaybooks/<br><br>│ └── MPB-[CLIENTE]-SherpaXCore-v01.md<br><br>├── BrainOS-seed/<br><br>│ ├── SEED-identidad.md<br><br>│ ├── SEED-proyectos.md<br><br>│ └── SEED-modelos-mentales.md<br><br>└── Skills/<br><br>└── (skills preinstaladas según el plan)|

  
  

## **B1 — Crear el CLAUDE.md personalizado**

El CLAUDE.md es el sistema de inicialización del Sherpa. Claude lo lee automáticamente al inicio de cada sesión en Cowork. Tomar el template y reemplazar todas las variables [VARIABLE]:

  
  

_Puntos clave del CLAUDE.md: (1) Identidad del Sherpa con nombre, cliente, org, sector. (2) Protocolo de uso del BrainOS — cuándo usar cada herramienta. (3) Protocolo de bienvenida — qué hace el Sherpa al iniciar cada sesión. (4) Protocolo de Entrevista de Identidad — se activa automáticamente si el BrainOS está vacío._

  
  

**¿Quién le pregunta al cliente su rol y proyectos?**

El Sherpa — a través del Protocolo de Entrevista de Identidad en el CLAUDE.md. El flujo es:

  
  

1. Cliente abre Cowork → Sherpa lee CLAUDE.md
    
2. Sherpa llama list_thoughts → ve 0 resultados → activa la entrevista
    
3. Sherpa pregunta: rol actual, proyectos activos, forma de pensar, problema principal
    
4. Cada respuesta se captura al BrainOS con capture_thought (metadata tipo: identidad)
    
5. Segunda sesión en adelante: el Sherpa ya tiene contexto — no hay entrevista, hay continuidad
    

  
  

_Los SEED files (SEED-identidad.md, SEED-proyectos.md) son el contexto inicial que TÚ preparas antes de la Sesión 1, basado en lo que sabes del cliente del onboarding. El Sherpa los lee en las primeras sesiones antes de que el BrainOS tenga suficiente contexto acumulado. No los confundas con la entrevista — son complementarios._

  
  

## **B2 — Completar los SEED files**

SEED-identidad.md: completar con rol, empresa, sector, años de experiencia, estilo de trabajo, fortalezas conocidas.

SEED-proyectos.md: completar con los proyectos activos al momento de la instalación — nombre, estado, objetivo, próximo paso.

SEED-modelos-mentales.md: dejar en blanco o con template vacío. Se llena en la Sesión 1 con el cliente.

  
  

## **B3 — Crear el MetaPlaybook principal**

Usar el template base de EmpowerLabs para MPB-[CLIENTE]-SherpaXCore-v01.md. Define el protocolo de trabajo del Sherpa con ese cliente específico.

  
  

# **PARTE C — Instalación en Cowork (Capa 3) · ~10 minutos**

## **C1 — Colocar el paquete en el workspace del cliente**

6. Pedir acceso a la carpeta del cliente (compartir o sesión remota)
    
7. Copiar toda la estructura del paquete a esa carpeta
    
8. Confirmar que CLAUDE.md y la carpeta .claude/ están en la RAÍZ del workspace
    

  
  

_CRÍTICO: El CLAUDE.md debe estar en la raíz de la carpeta seleccionada — no en subcarpetas. Cowork solo lo lee si está en el nivel superior._

  
  

## **C2 — Configurar el conector BrainOS en Cowork**

El conector MCP se configura una sola vez en los settings del cliente:

  
  

9. Cliente abre Cowork → Settings (ícono de engranaje)
    
10. Buscar la sección Connectors o MCP Servers
    
11. Hacer clic en Add connector o botón +
    
12. Completar los campos:
    

  
  

 
|**Campo**|**Valor**|
|---|---|
|Nombre|BrainOS - [CLIENT_NAME]|
|URL|https://mcp.genniux.com/brainos-mcp/stream?key=LA_KEY_DEL_CLIENTE|

  
  

13. Hacer clic en Save
    
14. Activar el toggle del conector (debe quedar en ON)
    

  
  

_Esta URL reemplaza la URL de Supabase que se usaba anteriormente. El cliente no nota ninguna diferencia en la experiencia — el Sherpa funciona exactamente igual._

  
  

## **C3 — Verificación**

Pedir al cliente que abra Cowork (puede hacerse en la misma llamada de instalación):

  
  

- [ ] El Sherpa saluda al cliente por su nombre
    
- [ ] Si es primera sesión: el Sherpa activa la Entrevista de Identidad automáticamente
    
- [ ] El Sherpa pregunta rol, proyectos, forma de pensar — uno por uno, no todos juntos
    
- [ ] El Sherpa captura cada respuesta al BrainOS antes de pasar a la siguiente pregunta
    
- [ ] El Sherpa habla en español y con el tono adecuado
    
- [ ] thought_stats muestra que los thoughts se están acumulando
    

  
  

# **PARTE D — Sesión 1 con el cliente (Ignition)**

La primera sesión real de trabajo es parte del proceso — no es opcional.

  
  

**Objetivo**

Cargar el BrainOS con el contexto inicial del CEO. Al terminar, el Sherpa ya lo 'conoce' y la próxima sesión tendrá continuidad real.

  
  

**Flujo de la Sesión 1**

15. El Sherpa ejecuta la Entrevista de Identidad (si no lo hizo ya en C3)
    
16. Captura automáticamente las respuestas al BrainOS
    
17. El cliente comparte documentos/notas existentes en la carpeta del workspace
    
18. El Sherpa lee esos archivos y hace un gen-dictamen: extrae insights clave y los captura
    
19. Al final: thought_stats muestra el primer crecimiento del BrainOS
    

  
  

**Meta al terminar la Sesión 1**

- BrainOS con 15-30 thoughts capturados
    
- El Sherpa ya conoce al cliente — rol, proyectos, forma de pensar
    
- La próxima sesión no habrá entrevista — habrá continuidad
    

  
  

# **Credential Tracker — Datos a guardar por cliente**

  
  

 
|**Campo**|**Valor**|
|---|---|
|Cliente|[CLIENT_NAME]|
|Email|[EMAIL_CLIENTE]|
|Sherpa Name|[SHERPA_NAME]|
|Schema PostgreSQL|brainos_[SCHEMA_ID]|
|MCP Access Key|[KEY_64_CHARS]|
|Connection URL|https://mcp.genniux.com/brainos-mcp/stream?key=[KEY]|
|Fecha de alta|[FECHA]|
|Sesión 1 agendada|[FECHA]|

  
  

# **Troubleshooting**

  
  

   
|**#**|**Síntoma**|**Causa probable**|**Solución**|
|---|---|---|---|
|1|{"error":"Invalid or missing key"}|Key no en tenants.json o pm2 reload no ejecutado|Verificar tenants.json y ejecutar pm2 reload brainos-mcp|
|2|{"error":"permission denied for schema"}|Schema sin permisos correctos|Ejecutar create_brainos_tenant('[SCHEMA_ID]') de nuevo|
|3|Sherpa no aparece al abrir Cowork|CLAUDE.md no está en la raíz del workspace|Mover CLAUDE.md a la raíz — no en subcarpetas|
|4|Sherpa aparece pero no recuerda nada|Toggle del conector está OFF o URL incorrecta|Settings → Connectors → verificar URL y activar toggle|
|5|Sherpa no activa la entrevista en primera sesión|BrainOS tiene datos de otra instalación de prueba|Verificar con thought_stats — si hay thoughts, hacer reset del schema|
|6|Sherpa habla en inglés|CLAUDE.md no especifica idioma o no fue leído|Confirmar línea '- Idioma por defecto: Español' en CLAUDE.md|
|7|pm2 reload falla|Error de sintaxis en tenants.json|Validar JSON en jsonlint.com antes de recargar|

  
  

# **Checklist completo — de cero a cliente operativo**

  
  

**PARTE A — BrainOS (Servidor EC2)**

- [ ] MCP Access Key generada y guardada en Credential Tracker
    
- [ ] Schema creado: create_brainos_tenant('[SCHEMA_ID]')
    
- [ ] Key registrada en ~/brainos-mcp/config/tenants.json
    
- [ ] Servidor recargado: pm2 reload brainos-mcp
    
- [ ] Verificación: thought_stats responde {"total_thoughts":0}
    
- [ ] Connection URL construida y guardada
    

  
  

**PARTE B — SherpaX Package**

- [ ] Variables del cliente definidas (nombre, SherpaName, org, sector, proyectos)
    
- [ ] CLAUDE.md creado con todas las variables reemplazadas
    
- [ ] SEED-identidad.md completado con contexto del onboarding
    
- [ ] SEED-proyectos.md completado con proyectos activos
    
- [ ] MPB-[CLIENTE]-SherpaXCore-v01.md instalado
    

  
  

**PARTE C — Cowork**

- [ ] CLAUDE.md colocado en la RAÍZ del workspace del cliente
    
- [ ] Carpeta .claude/ con MetaPlaybooks y SEED files copiada
    
- [ ] Conector BrainOS configurado en Cowork (URL + toggle ON)
    
- [ ] Sherpa saluda al cliente por su nombre
    
- [ ] Primera sesión: Sherpa activa Entrevista de Identidad automáticamente
    
- [ ] Sherpa captura respuestas al BrainOS durante la entrevista
    

  
  

**PARTE D — Sesión 1**

- [ ] Sesión 1 agendada dentro de los 3 días siguientes
    
- [ ] BrainOS tiene 15+ thoughts al terminar la Sesión 1
    
- [ ] Cliente puede trabajar de forma autónoma en la siguiente sesión
    

  
  

  
  

_SHA-SOP-NuevoCliente-v02 · EmpowerLabs · BrainOS EC2 Multitenant_