Producto de IA. 2026. Fundador y arquitecto. TypeScript, MCP, Rust y Axum, React.

NexusMind

Una plataforma multi-tenant de memoria y contexto persistentes, para que las herramientas y agentes de IA de un equipo compartan una sola memoria auditable en lugar de siete privadas.

Rol
Fundador, arquitecto
Construido en
2026
Runtime
Rust, TS
Despliegue
K3s, Ampere
Stack
TS, Rust
Código en GitHub Índice
Fig. 01. nexusmind.smartcoderlabs.com, la landing del producto.

El problema

Cada persona del equipo usa su propia herramienta de IA, y cada herramienta guarda su propia memoria. La misma decisión de arquitectura se vuelve a explicar cinco veces por semana, y nadie puede decir quién borró qué.

Quería una memoria compartida con tenancy real y un rastro que pudiera consultar, reproducible con un solo comando y sin un servidor de base de datos que cuidar. Diseñé yo mismo el servidor MCP y la interfaz en React, y los integré con un backend en Rust y Axum.

TypeScriptMCPRustAxumReactDocker

Una memoria en lugar de siete

Cualquier cliente MCP del equipo lee y escribe en el mismo almacén, así que una decisión se explica una vez y a partir de ahí la encuentra todo el mundo.

Toda operación tiene un actor

Guardar, buscar y borrar escriben una fila de auditoría en la misma transacción, así que el rastro nunca puede contradecir a los datos.

Un pod, un fichero

Los dos procesos en Rust viven en un solo pod de un clúster K3s, sobre un fichero SQLite en un volumen persistente. Compose sigue levantando todo el stack en local.

Cero trabajo de integración para el cliente

Como la puerta de entrada es MCP, Claude Code y Cursor se conectan con una entrada de configuración en lugar de un SDK.

Arquitectura

Servicio

Servidor MCP

TypeScript, sin estado, corre en la máquina del desarrollador

Convierte llamadas de herramienta MCP en llamadas REST contra la API, reenviando la clave del desarrollador por HTTPS con un token bearer. Sin estado por diseño: se puede matar y reiniciar a mitad de sesión.

TypeScriptMCP SDKstdio
Topología de despliegue. K3s sobre Oracle Cloud Ampere A1 detrás de Traefik y cert-manager, tres front-ends en Cloudflare Pages, GitHub Actions construyendo imágenes arm64 hacia GHCR.

Decisiones y el precio que pagué por ellas

Multi-tenant por construcción

Cada petición resuelve clave de API a usuario y a organización antes de tocar el almacenamiento, así que la tenancy vive en la capa de consulta y no en el código de los handlers, donde se puede olvidar.

Trade-off aceptado

Las funciones entre organizaciones, como compartir una memoria entre equipos, necesitarán una vía de escape explícita más adelante.

Auditoría en la misma transacción

La mutación y su fila de auditoría se confirman juntas, así que no hay ventana en la que exista un cambio sin rastro, y "¿quién borró esto?" sigue siendo una consulta.

Trade-off aceptado

Cada escritura paga algo de latencia extra. Barato al volumen de una memoria de equipo, equivocado para un almacén de eventos de alto rendimiento.

MCP como puerta de entrada

Los agentes de código ya hablan MCP, así que exponer guardar, buscar y record_decision como herramientas eliminó todo el trabajo de integración del cliente.

Trade-off aceptado

REST sigue existiendo para el panel de administración, lo que significa mantener dos superficies sincronizadas.

Un fichero, y un Postgres que solo recibe

Rust más SQLite en un volumen persistente significa que no hay servidor de base de datos en el camino de la petición. Un volcado periódico a un Postgres gestionado existe solo como destino de restauración, así que la durabilidad no cuesta superficie operativa.

Trade-off aceptado

Un solo pod no escala horizontalmente sin reemplazar SQLite. Acepté ese techo a propósito en lugar de operar Postgres desde el primer día.

Qué hace
la plataforma

Cada capacidad contada dos veces: para quien la usa y para quien la mantiene

Recuperación semántica

Producto

Pide una decisión con tus palabras y te vuelve, la escribiera quien la escribiera y con la herramienta que fuera.

Técnico

Búsqueda de texto completo sobre SQLite con FTS5, ordenada y luego filtrada por proyecto, tipo y etiqueta. Devuelve vistas previas truncadas, con una llamada aparte para el registro completo, para que un agente no queme contexto en resultados que va a descartar.

Convenciones de equipo

Producto

Las reglas que tu equipo ya acordó, entregadas al agente antes de que escriba nada, en lugar de reexplicarlas en cada prompt.

Técnico

Las convenciones son un tipo de registro aparte, agrupado en categorías como arquitectura, base de datos, flujo de trabajo y nomenclatura. get_context las devuelve por delante de las memorias recientes, así que pesan más que cualquier sesión pasada.

Índice de código

Producto

El agente puede buscar un símbolo en el repositorio real en lugar de adivinar desde la memoria o hacer grep a ciegas.

Técnico

Los repositorios se indexan por organización y se consultan por símbolo y por ruta, así que una búsqueda resuelve a código fuente real y no a lo que alguien apuntó sobre él.

Proyectos y clientes

Producto

Un equipo puede llevar trabajo de varios clientes sin que sus contextos se mezclen.

Técnico

Cada memoria tiene el alcance de un proyecto, y los proyectos pueden anidarse y llevar un cliente. El alcance se resuelve en servidor desde la clave de API, así que una escritura mal ubicada se rechaza en vez de archivarse en silencio donde no toca.

Roles y acceso

Producto

No todo el mundo debería poder borrar la memoria del equipo, y ahora no puede.

Técnico

Control de acceso por roles sobre usuarios y organizaciones, comprobado en la capa de consulta junto a la tenancy y no en el código de los handlers.

Salud de la memoria

Producto

Una memoria compartida se pudre en silencio. Este es el panel que te avisa de que se está pudriendo antes de que nadie lo note.

Técnico

Recuentos de duplicados, obsoletos y sin etiquetar calculados sobre toda la organización, para poder podar el almacén de forma deliberada en vez de dejarlo crecer hasta que la búsqueda deje de servir.

Por dentro

  1. Fig. 02

    El grafo de conocimiento. Memorias, sesiones, usuarios, colecciones, etiquetas y eventos de auditoría, tipados y enlazados por proyecto.

  2. Fig. 03

    El TUI de migración. Escanear, clasificar, preparar, revisar. No se escribe nada hasta el commit, y algunos candidatos quedan excluidos de la aprobación por lotes a propósito.

  3. Fig. 04

    El panel de administración. Actividad, uso de agentes y salud de la memoria. Nombres de tenant anonimizados.