Política de privacidad
Última actualización: 3 de agosto de 2026.
Fluyo son dos cosas distintas con dos comportamientos de datos distintos, y esta política las trata por separado porque mezclarlas sería engañoso:
| El editor — fluyo.space | El servidor MCP — mcp.fluyo.space | |
|---|---|---|
| ¿Recibe tus diagramas? | No. No salen del navegador | Sí. Viajan por red hasta el servidor |
| ¿Los guarda? | Solo en tu equipo (localStorage) |
No. Se procesan en memoria y se descartan |
| ¿Cuándo aplica? | Siempre que uses la web | Solo si conectas el servidor remoto a tu asistente de IA |
Si solo usas el editor en fluyo.space y nunca has añadido el conector MCP remoto, la sección B no te aplica en absoluto: ningún diagrama tuyo ha salido nunca de tu navegador.
Quién es el responsable
Fluyo es un proyecto de software libre mantenido por itsnect (Claudio Jiménez Flores), con domicilio en Chile. No es una empresa constituida, no vende nada, no tiene clientes y no procesa pagos.
Contacto para cualquier asunto de privacidad: nectdnb@gmail.com. Más vías en la página de soporte.
A. El editor en fluyo.space
El editor es un sitio de archivos estáticos. No hay servidor de aplicación, no hay base de datos y no hay ninguna API propia a la que el navegador llame. Todo —dibujar, animar, calcular el layout y codificar el GIF— ocurre en tu equipo con el procesador de tu equipo.
Tus diagramas
No se envían a ninguna parte. No hay backend al que puedan ir. Cuando pulsas Guardar, el navegador descarga un archivo .fluyo.json a tu disco; cuando pulsas Abrir, lo lee desde tu disco. En ninguno de los dos casos hay una petición de red.
Autoguardado
La sesión en curso se guarda en el localStorage de tu navegador, bajo la clave fluyo.autosave.v1. Es almacenamiento local de tu equipo, no un servidor: nadie más puede leerlo, y se borra al limpiar los datos del sitio en tu navegador.
Telemetría de producto
En el sitio público hay analítica de uso agregada, servida por Umami Cloud. Sin cookies y sin fingerprinting, y sin identificar usuarios.
Lo que se registra son pageviews y esta lista cerrada de eventos:
| Evento | Qué acompaña |
|---|---|
example_loaded | El identificador del ejemplo (uno de una lista fija) |
file_imported | Nada |
diagram_exported | El formato: gif, png, jpg o svg |
gif_animation_added | La clave de la animación (una de ocho) |
present_started | El número de páginas del documento |
El contenido de tus diagramas no se envía nunca, ni entero ni en fragmentos: los eventos solo llevan valores de un vocabulario cerrado y un número. No hay ningún campo de texto libre donde pudiera colarse una etiqueta tuya.
El script de analítica se carga únicamente cuando el dominio es fluyo.space o www.fluyo.space. Si clonas el repositorio, lo abres en local o lo self-hosteas, ese código no llega a ejecutarse y no se hace ninguna llamada de red. Los dominios de preview quedan fuera a propósito. La condición está en js/analytics.js, en un solo bloque, para que puedas verificarlo tú.
Si quieres cero telemetría: usa el proyecto en local o self-hosteado, o bloquea el dominio cloud.umami.is. Fluyo funciona igual — la analítica está escrita para fallar en silencio.
La única petición externa
El editor carga gif.js desde el CDN de cdnjs (Cloudflare), que es la librería que codifica el GIF. Es una descarga de código: no se le envía nada tuyo. Como en cualquier petición HTTP, Cloudflare ve tu IP y tu user-agent al servir el archivo. Se precachea en la primera visita, así que en visitas posteriores normalmente ni siquiera se pide.
B. El servidor MCP en mcp.fluyo.space
Esto es lo que hay que decir sin rodeos: el servidor MCP sí recibe el contenido de tus diagramas por la red. Es inevitable —no puede editar ni exportar un diagrama que no ha recibido— y es la diferencia sustancial con el editor.
Aplica solo si has añadido https://mcp.fluyo.space/mcp como conector remoto en tu asistente de IA. Si usas el servidor en local por stdio (npx fluyo-mcp), nada sale de tu equipo y esta sección tampoco te aplica.
Qué se recibe
- El documento del diagrama que tu asistente envía: nodos, etiquetas, colores, coordenadas y, si los hay, las imágenes que incrustaste como data URI.
- Los argumentos de la herramienta invocada — por ejemplo el texto de las etiquetas al crear un diagrama.
- Metadatos de red inherentes a cualquier petición HTTP: tu dirección IP (la del cliente que hace la llamada, que normalmente es el servidor de tu asistente, no tu equipo), las cabeceras y la ruta.
Cómo se usa y cuánto dura
Se procesa en memoria y se descarta. Cada petición HTTP construye un servidor nuevo, atiende el mensaje y lo tira. No hay base de datos, no hay disco, no hay caché y no hay sesiones: el servidor es stateless por diseño, no por configuración. El documento existe en la memoria del proceso el tiempo que tarda la petición —milisegundos— y desaparece con ella.
Nada se persiste. Nada se comparte. Nada se usa para entrenar nada.
Qué se registra
Una línea por petición, con esta forma exacta y nada más:
{"ts":"2026-08-03T16:20:11.437Z","route":"/mcp","method":"POST",
"status":200,"outcome":"ok","durationMs":7,
"requestBytes":220,"responseBytes":472,"tools":["create_diagram"]}
Ningún dato del usuario —documento, etiquetas, argumentos de tool, mensajes de error, IP— se escribe al registro. Se anota el nombre de la herramienta invocada, nunca sus argumentos; y si algo falla, se anota que falló y de qué clase era el error, nunca el valor que lo provocó.
Esto no depende de la disciplina de quien edite el código: el tipo que describe una línea de log es una estructura cerrada, sin ningún campo donde quepa texto libre, y hay pruebas automáticas que meten marcadores irrepetibles en las etiquetas de un diagrama y fallan si aparecen en alguna línea de registro. No existe un modo debug que levante estas restricciones.
Direcciones IP y límite de peticiones
El servidor limita el número de peticiones por IP para que un endpoint abierto no se convierta en un problema de abuso o de facturación. Para eso, y solo para eso, mantiene en memoria RAM un registro con la dirección IP y las marcas de tiempo de sus peticiones recientes.
- Se conserva durante la ventana de 60 segundos del límite, y caduca sola.
- Hay un tope de 20.000 direcciones en memoria a la vez; al superarlo se descartan las más antiguas.
- Nunca se escribe a disco. Nunca se escribe al registro. Muere cuando se recicla la instancia.
- La IP se lee de la cabecera
x-forwarded-for, que reescribe la plataforma de alojamiento. - No se usa para nada más: no identifica, no perfila y no decide permisos.
Autenticación
El servidor no pide credenciales, no crea cuentas y no emite tokens. No hay nada tuyo que registrar porque no hay registro.
Dependencias que intervienen
Para el transporte HTTP no se añadió ninguna dependencia: se usa la biblioteca estándar de Node. El árbol de dependencias es el que ya arrastraba el SDK oficial de Model Context Protocol.
De todo ese árbol, los paquetes que se cargan realmente en ejecución son seis: @modelcontextprotocol/sdk, zod, @hono/node-server, ajv, ajv-formats y zod-to-json-schema. Ninguno persiste nada y ninguno hace peticiones de red salientes. Su papel se limita a enrutar el mensaje, validar su forma y convertir entre representaciones de la petición.
Una precisión honesta: @hono/node-server, que es la pieza que adapta la petición HTTP, puede escribir a la consola errores de conexión —ECONNRESET y similares, típicos de un cliente que corta a mitad—. Esos mensajes son errores de socket y no contienen datos del usuario: no llevan el documento, ni las etiquetas, ni los argumentos de ninguna herramienta.
Logs de la plataforma de alojamiento
Los dos dominios —fluyo.space y mcp.fluyo.space— están alojados en Google Cloud, en servicios separados de la misma cuenta. El servidor MCP corre concretamente en Cloud Run.
Como cualquier proveedor de alojamiento, Google Cloud mantiene sus propios registros de plataforma en Cloud Logging, independientes de los del servidor MCP y fuera del control del código de este proyecto. En el caso de Cloud Run, la plataforma escribe un registro por petición automáticamente, antes de que la petición llegue a nuestro código. Esos registros incluyen:
- La dirección IP del cliente.
- La ruta solicitada y el método HTTP.
- El código de estado de la respuesta y su latencia.
- El user-agent y otras cabeceras de la petición.
Retención: 7 días. No es el valor por omisión —Google Cloud Logging retiene 30 días por defecto—, sino uno configurado explícitamente en el bucket _Default. El comando exacto que lo fija está publicado en el README del servidor, para que esta cifra sea verificable y no una promesa.
No contienen el cuerpo de las peticiones, así que el contenido de tus diagramas no aparece en ellos.
Conviene no confundir estos registros con el de la aplicación descrito más arriba: son dos cosas distintas. El registro de la aplicación no escribe ningún dato del usuario, ni siquiera la IP, y eso seguirá siendo cierto pase lo que pase con la retención de la plataforma. Los registros de plataforma sí contienen la IP, y por eso caducan a los 7 días.
Para el tratamiento que Google hace de esos datos como proveedor de infraestructura, consulta su aviso de privacidad de Google Cloud.
Con quién se comparten los datos
Con nadie. No se venden, no se ceden, no se usan para publicidad y no se usan para entrenar modelos. No hay perfilado ni decisiones automatizadas sobre personas.
Los únicos terceros que intervienen son proveedores de infraestructura, cada uno con su propio papel acotado:
| Proveedor | Qué ve | Por qué |
|---|---|---|
| Google Cloud | Logs de plataforma de los dos dominios (IP, ruta, estado, user-agent), retenidos 7 días | Alojamiento |
| Umami Cloud | Pageviews y los eventos de la lista de arriba, sin cookies ni identificadores | Analítica del editor |
| Cloudflare (cdnjs) | La petición del archivo gif.js: IP y user-agent | Entrega de la librería de GIF |
Ninguno de los tres recibe el contenido de tus diagramas.
Menores
Fluyo no está dirigido a menores de 13 años y no recoge conscientemente datos de ellos. Como no hay cuentas ni registro, tampoco hay ningún perfil que pudiera pertenecer a un menor.
Tus derechos
La situación práctica es poco habitual y conviene decirla tal cual: no hay ninguna cuenta, ningún perfil y ningún registro tuyo que consultar, rectificar o borrar, porque no se guarda nada que te identifique.
- Tus diagramas están en tu equipo. Para borrarlos, borra los archivos y limpia los datos del sitio en tu navegador.
- Los datos que sí existen fuera de tu equipo —los logs de plataforma— caducan solos con la retención indicada arriba.
- Aun así, si quieres ejercer cualquier derecho de acceso, rectificación, supresión, oposición o portabilidad, escribe a nectdnb@gmail.com y se atiende.
Verificarlo por tu cuenta
Todo lo anterior es comprobable: el código de las dos partes es público y con licencia MIT.
- github.com/itsnect/fluyo — el editor. La telemetría está aislada en
js/analytics.js. - github.com/itsnect/fluyo-mcp — el servidor MCP. Qué se registra y qué no está en
src/http-logging.ts; el límite por IP, ensrc/http-security.ts.
La documentación explica el mismo comportamiento desde el punto de vista de quien usa la herramienta.
Cambios en esta política
Si cambia, se actualiza la fecha del encabezado y queda constancia en el historial público del repositorio, commit a commit. Un cambio que afecte de forma sustancial a qué datos se reciben se anunciará además en el repositorio.