Tu IA no es incoherente, está amnésica: cómo MCP le da memoria de marca a Claude, Gemini y GPT
Le pides 10 posts a la IA y parecen escritos por 10 empresas distintas. El problema no es ChatGPT — es que cada conversación arranca en cero. Así montamos 6 capas de memoria de marca con MCP en LexGuard.
Víctor Rojas
CEO, Aztecknology
El problema no es el modelo
Le pides a ChatGPT 10 posts para tu marca. Lees el primero y el décimo y parecen escritos por dos empresas distintas. Mañana abres otra conversación y la IA ya no recuerda tu paleta, tu tono ni la campaña actual. La semana entrante “cita” un post que jamás publicaste.
El reflejo natural es echarle la culpa al modelo: “ChatGPT alucina”, “Gemini se contradice”, “Claude pierde el hilo”. Pero Gemini 3, Claude 4.7 y GPT-5.1 ya son buenos suficientes para escribir copy de marca. Lo que les falta no es capacidad, es estado persistente entre sesiones.
La conversación termina, el contexto se pierde. La próxima vez es tabula rasa. Y “hacer un prompt más largo” — pegar tu brand guide en PDF al inicio de cada conversación — es como tratar de operar Excel pegando tus hojas en un email. Consume tokens, queda obsoleto, no escala.
La solución correcta es darle a la IA un sistema operativo con herramientas. Eso es exactamente lo que MCP (Model Context Protocol) permite. Aquí te cuento cómo lo montamos en LexGuard, una de las plataformas que construimos en Aztecknology, y por qué creemos que es el patrón que va a definir el marketing automatizado de los próximos años.
MCP en 90 segundos
Model Context Protocol es un estándar para que cualquier LLM hable con servidores de herramientas externos. En vez de “te paso 50,000 tokens de PDF como prompt”, le dices al modelo: “tienes estas 40 funciones disponibles, cada una con su schema; úsalas cuando necesites”.
La IA decide cuándo pedir contexto. No carga todo, carga lo relevante. Resultado: prompts cortos, contexto siempre fresco, sin desbordar la ventana de contexto.
Lo importante: MCP es agnóstico al modelo. El mismo servidor sirve a Claude, Gemini y GPT. Cambias de proveedor, mantienes la memoria.
Las 6 capas de memoria de marca
Cuando construimos LexGuard nos dimos cuenta de que la coherencia no se logra con una sola “memoria” — se logra con varias capas, cada una con su propio modelo de actualización. Las organizamos así:
| Capa | Para qué sirve | Ejemplo de herramientas MCP |
|---|---|---|
| Design System | Colores, tipografías, espaciado, componentes | get_design_md, set_design_token |
| Facts verificados | Datos de producto/empresa con verificación auditable | search_facts(verifiedOnly=true), submit_fact_verification |
| Ideas Board | Backlog estratégico con priorización | list_ideas, create_idea, update_idea |
| Team Notes | Reuniones, decisiones, contexto de la semana | list_team_notes, create_team_note |
| Campañas | Tono, instrucciones IA, statuses custom por iniciativa | get_campaign, update_campaign |
| Posts (output) | Lo que ya se publicó, drafts, multi-plataforma | list_posts, create_post, update_post_status |
Cada capa vive en su propio archivo dentro de src/lib/mcp/ y todas se montan en un mismo endpoint MCP. Total: +40 herramientas expuestas a cualquier LLM compatible.
El flujo: leer → escribir → guardar → leer (otra vez)
La parte más bonita de este diseño es el ciclo. Cuando un agente IA recibe “crea 5 posts para Instagram sobre el lanzamiento de la feature X”, el modelo emite esta secuencia de llamadas (Claude, Gemini y GPT lo serializan igual):
[1] list_project_groups
→ "ok, esta marca es 'TacosBot' y la audiencia es restauranteros"
[2] get_campaign(campaignId)
→ tono: informal mexicano, max 2 emojis, no usar "innovador"
[3] get_design_md(projectGroupId)
→ paleta: #FF6B35, #2EC4B6 / font: Inter / NO usar stock photos
[4] search_facts(query="feature X", verifiedOnly=true)
→ 4 hechos verificados sobre la feature, con fuentes
[5] list_team_notes(week="2026-W21")
→ "decisión del lunes: no enfatizar precio, enfatizar ROI"
[6] list_ideas(projectGroupId, status="planned")
→ 3 ideas previas relacionadas
[7] list_posts(projectId, limit=10, orderBy=createdAt)
→ últimos 10 posts publicados — para NO repetir hooks
[8] DRAFT — el LLM compone 5 variantes con todo este contexto
[9] create_post(...) × 5 — cada post se guarda con campaignId,
projectGroupIds, generationMetadata.prompt
El paso 9 es el que cierra el ciclo. Lo que la IA escribió hoy es lo que la IA leerá mañana en el paso 7 (list_posts). La memoria se construye sola. No hay un “agente de mantenimiento” actualizando archivos — el output del flujo de creación es la entrada del siguiente.
DESIGN.md: tu sistema de diseño como herramienta
Una de las capas que más cambio operativo trajo fue tratar el design system como un archivo markdown estructurado, no como un PDF. Adoptamos la especificación open-source de Google DESIGN.md (todavía en alpha) por cada grupo de proyecto.
---
brand: TacosBot
primary: "#FF6B35"
secondary: "#2EC4B6"
font: Inter
voice: informal, directo
---
## Componentes
- Botón primario: 12px radius, sombra suave...
La herramienta MCP get_design_md lo retorna parseado. La IA puede pedirlo, leerlo, y respetar la paleta cuando sugiere imágenes o estructuras visuales. Cuando el diseñador cambia el primary color, el siguiente post lo refleja sin tocar prompts.
El detalle importante: es el mismo archivo que la UI muestra a los diseñadores. No hay una “versión para humanos” y otra “versión para máquinas”. La fuente de verdad es única.
Facts verificados: append-only, auditables, sin alucinaciones
Esta es la capa que ataca el problema de las alucinaciones, y donde más decisiones de diseño tomamos.
El modelo es así:
- Una tabla
marketingFactscon el hecho en texto plano (ej. “Nuestro plan PRO incluye 10,000 mensajes/mes”). - Una tabla
marketingFactVerificationsappend-only — cada verificación queda como un evento histórico. No se puede editar ni borrar. No existe herramienta MCP para eliminar una verificación, por diseño. - La IA llama
search_facts(query="precios PRO", verifiedOnly=true)y solo recibe hechos con al menos una verificación reciente. - Si la IA quiere proponer un hecho nuevo,
create_factlo deja en estado “no verificado” hasta que un humano lo apruebe.
Resultado: cuando la IA escribe “el plan PRO incluye 10,000 mensajes/mes”, sabes que ese dato existe en una tabla auditable — no es una alucinación. Y puedes mostrarle al cliente el log de verificación si te lo pide. Auditoría sin esfuerzo extra.
Ideas Board y Team Notes: lo que el equipo discutió esta semana
Las otras dos capas que sostienen la coherencia táctica son Ideas Board y Team Notes.
- Ideas Board (Kanban con 6 columnas: backlog → evaluating → planned → in_progress → done / rejected). La IA puede leer “qué ideas están planeadas” y armar posts que las introduzcan progresivamente sin spoilers.
- Team Notes: notas del equipo (reuniones, decisiones, contexto semanal). La IA lee la nota del lunes “no enfatizar precio esta semana, enfatizar ROI” y respeta ese giro táctico sin que nadie le edite el prompt.
Lo poderoso es que el equipo edita Kanban y notas en la UI normal, y eso es la fuente de verdad que la IA consulta. No hay versión separada para humanos vs para máquinas. Sin sincronizaciones manuales, sin duplicación de información.
Posts como artefactos vivos: estado multi-dimensional
Los posts no son strings sueltos. La tabla marketingPosts tiene estado multi-dimensional:
copyStatus:pending | in_progress | done— el copy.uiStatus:pending | in_progress | done— el diseño visual.scheduleStatus:waiting | published— la calendarización.postStatus:pending | approved | in_progress | done— el overall.platform:instagram | twitter | linkedin | facebook | tiktok.contentVariants: array de variantes de copy.source:manual | pipeline— si lo escribió un humano o la IA.customColumns: dimensiones libres por campaña (matriz pain × tono).generationMetadata.prompt: el prompt exacto con el que se generó, para auditar.
Esto importa para la coherencia: cuando un agente revisa list_posts, ve qué se publicó, en qué plataforma, con qué tono, generado con qué prompt — y no repite hooks ni reutiliza el mismo gancho dos veces.
Boxes autónomos: agente IA componiendo las herramientas
LexGuard tiene Boxes: contenedores de agente IA (Claude Code) corriendo de fondo en infraestructura Cloudflare. Un Box compone las herramientas MCP de forma autónoma para tareas multi-paso, sin que un humano esté manejando el flujo turn-by-turn.
El patrón de ejecución del Box sigue 4 reglas:
- Plan-then-execute: escribe el plan a
pending-actions.mdantes de tocar nada. - Read-first: tools
list_*,get_*,search_*son siempre seguras de ejecutar sin permiso. - Write-with-approval: tools
create_*,update_*,delete_*requieren aprobación humana explícita. - File-based research: resultados grandes se guardan en archivos con un
INDEX.mdpara que la memoria sobreviva turn-to-turn.
Ejemplo concreto: un Box “Generador semanal de contenido”:
- Lunes 7am: lee
list_team_notes(week=current)→ entiende prioridades. - Lee
get_design_md+search_facts(verifiedOnly=true)→ carga reglas. - Genera 12 variantes en una matriz (pain × tono).
create_post × 12consource="pipeline"ygenerationMetadata.promptguardado.- Te entrega un Kanban listo para revisar el martes.
Por qué funciona
Si tuviera que resumir en una sola tabla el diagnóstico vs la solución:
| Síntoma sin MCP | Causa raíz | Cómo lo resuelve |
|---|---|---|
| Posts incoherentes entre sesiones | Sin memoria persistente | Cada post se guarda en la BD; la IA lo lee la próxima vez |
| Tono cambia entre campañas | Brand guide pegado en cada prompt, fácil de olvidar | get_campaign.aiInstructions es la fuente de verdad |
| Datos inventados | LLM sin acceso a facts verificables | search_facts(verifiedOnly=true) + verificaciones append-only |
| Posts repetidos / hooks reciclados | Sin memoria de qué ya se publicó | list_posts(orderBy=createdAt) antes de cada draft |
| Colores incorrectos en sugerencias visuales | Brand guide en PDF, no en código | get_design_md con DESIGN.md vivo |
| ”La IA no sabe lo que pasó esta semana” | Aislada del equipo | list_team_notes y list_ideas con feed en tiempo real |
La idea grande
La coherencia no se compra con un modelo más grande. Se construye con estado persistente, fuentes de verdad únicas y un protocolo abierto para que el modelo consulte ese estado cuando lo necesita.
MCP es ese protocolo. Y la inversión real no es en prompts más largos — es en montar las herramientas correctas y mantenerlas vivas. Una vez que las tienes, da igual qué modelo uses esta semana: la memoria es tuya.
En Aztecknology llevamos años haciendo marketing automatizado. Cuando llegó MCP entendimos que la pieza que faltaba no era un modelo más grande, era darle a la IA herramientas con memoria de marca. Si estás peleando con la incoherencia de tu IA — y crees que ya probaste todo — hablemos. Es probable que el problema no esté donde lo estás buscando.
¿Quieres ver el código? El esquema de herramientas MCP que usamos en LexGuard vive en src/lib/mcp/ (post-tools, design-systems-tools, facts-tools, ideas-tools, team-notes-tools, campaign-tools). El registro de las 6 capas se monta en src/pages/api/mcp/marketing.ts. Es un patrón replicable — si te interesa hacerlo tú mismo, hablemos.