Claude Code ya puede poner imágenes en tus notas: subida de archivos por MCP

Product

Pídele a un asistente de IA que redacte el informe del incidente de ayer y lo hará bien, hasta llegar a la gráfica. La captura de pantalla está en tu escritorio, la nota dice "ver adjunto" y no hay nada adjunto. Hasta ahora el servidor MCP de Notez leía, escribía y reorganizaba tus notas, pero un archivo de tu equipo quedaba fuera de su alcance.

Notez v0.11.0 cierra ese hueco. Cualquier asistente MCP que ejecute comandos de shell — Claude Code, Cursor, Codex CLI — ya puede subir una imagen o un archivo local y ponerlo directamente en una nota.

Cómo se ve

Le pides:

Añade ./grafana-latency.png a mi nota Incidente 2026-09-10, justo debajo del encabezado Cronología, y adjunta los logs en bruto de ./incident-logs.zip.

El asistente sube los dos archivos y edita la nota. La captura aparece dentro del texto, bajo Cronología; el archivo comprimido se convierte en un chip de archivo que descargas con un clic. Los dos aparecen en tu página Archivos, cuentan para tu almacenamiento como todo lo demás y siguen los mismos formatos y límites de tamaño que el editor.

Funciona en cualquier punto donde se escribe una nota: al crear una nota nueva, al editar una parte o al reescribirla entera.

Por qué el archivo nunca pasa por el chat

El diseño obvio es una herramienta que recibe el archivo como argumento. Las llamadas a herramientas de MCP son JSON, así que el archivo viajaría como texto base64 dentro de la propia salida del modelo: unos 35 000 tokens por una captura de 100 KB, y un PDF ni siquiera cabría. El protocolo todavía no tiene forma de transferir un archivo; una propuesta para exactamente eso sigue en borrador.

Así que tomé el mismo camino que ya usa el editor de Notez. Cuando sueltas una imagen en el editor, tu navegador le pide al servidor una subida firmada y envía los bytes directamente al almacenamiento. Un asistente hace lo mismo en tres pasos:

  1. Pide una subida. La herramienta create_upload recibe el nombre del archivo, su tipo y su tamaño exacto, y responde con un comando curl listo para ejecutar, firmado para ese único archivo.

  2. Ejecuta el comando. El archivo va directamente de tu máquina al almacenamiento. Nada pasa por la conversación, así que un PDF de 20 MB no cuesta más tokens que uno de 20 KB.

  3. Confirma. confirm_upload comprueba que el archivo llegó de verdad y devuelve un fragmento de una línea que el asistente pega en la nota.

La pega es sencilla y la digo tal cual: el paso 2 necesita un shell. Los asistentes que ejecutan comandos, como Claude Code y Cursor, lo hacen sin que se lo pidas. Los clientes que solo chatean, como Claude Desktop, no pueden, y lo dicen en lugar de fingir: te remiten a la app.

Comprobar que el archivo llegó de verdad

Un agente puede decir "hecho" sobre un comando que falló. En lugar de fiarse de su palabra, confirm_upload le pregunta al almacenamiento por el archivo. Si no hay nada, Notez le indica al asistente que vuelva a ejecutar el comando. Si los bytes que llegaron no tienen el tamaño declarado, la subida se rechaza y el asistente empieza de nuevo. El tamaño declarado es lo que cuenta tu cuota de almacenamiento, así que un archivo que miente sobre su tamaño nunca llega a registrarse.

El fragmento, no el enlace — y el bug que atajé en el diseño

Esta es la parte a la que más tiempo dediqué.

Notez lleva la cuenta de cada archivo que usa una nota. Con ese seguimiento limpia lo que dejas atrás: cuando borras una imagen de una nota, su espacio de almacenamiento acaba liberándose, y un archivo subido pero nunca usado se elimina a los tres días. En el editor no ves nada de esto, porque cada imagen que inserta lleva un id de archivo oculto.

Un asistente escribe Markdown a mano. Después de una subida, lo más natural del mundo para un modelo es escribir un enlace de imagen normal: ![latency](https://…/grafana.png). Se renderiza. Se ve bien. Y no lleva id de archivo, así que, para Notez, la nota no usa ese archivo. Tres días después la limpieza lo elimina, y una nota que compartiste la semana pasada muestra, sin avisar, una imagen rota.

Lo detecté mientras construía la función, no después de lanzarla, y lo cerré por los dos extremos:

  • El asistente recibe el marcado correcto. confirm_upload devuelve un fragmento que ya lleva el id del archivo, y las instrucciones del servidor le dicen al asistente que lo pegue tal cual.

  • Notez rechaza el marcado incorrecto. Si una escritura en una nota enlaza un archivo recién subido solo por su dirección, la escritura se rechaza con una explicación, y el asistente lo reintenta con el fragmento. Los enlaces a cualquier otra cosa siguen funcionando: imágenes de otros sitios y archivos que ya viven a salvo en otra nota.

La misma protección cubre el chat de IA de la app, así que ninguno de los dos asistentes puede dejar una bomba de relojería en tus notas.

Qué saber antes de probarlo

  • Las subidas son accesibles por su dirección exacta, igual que las imágenes que pegas en el editor. Nada las lista y las direcciones no se pueden adivinar, pero no subas nada que no pusieras en una nota.

  • El almacenamiento es del propietario del espacio de trabajo. Las subidas consumen el almacenamiento de la cuenta propietaria del espacio de trabajo, se conecte como se conecte el asistente.

  • Las capturas se guardan a tamaño completo. El editor comprime las imágenes en tu navegador; la subida de un asistente llega exactamente como está el archivo en el disco.

  • El chat de IA de la app no sube archivos. Se ejecuta en tu navegador, sin acceso a tus archivos. Las dos herramientas de subida, y list_workspaces en las conexiones por inicio de sesión, son las únicas que tiene el servidor MCP y no tiene el chat.

Pruébalo

  1. En Notez, abre Configuración → Integraciones → Servidor MCP de Notez y haz clic en Generar clave MCP.

  2. Añádela a Claude Code con el comando que aparece en esa página, o a Cursor con la configuración JSON.

  3. Pide algo que incluya un archivo: "Pon ./architecture.png en mi nota Diseño del sistema."

La referencia completa, con cada herramienta, error y límite, está en Configuración del servidor MCP, y Archivos y adjuntos cubre los formatos y el almacenamiento.

Preguntas frecuentes

¿Puede Claude Code subir imágenes a Notez?

Sí. Claude Code ejecuta comandos de shell, así que usa las herramientas create_upload y confirm_upload para poner una imagen o un archivo local en cualquier nota de un espacio de trabajo al que esté conectado.

¿Funciona en Claude Desktop?

No de serie. El paso de subida ejecuta un comando curl, y Claude Desktop no ejecuta comandos a menos que le hayas dado una herramienta que lo haga. En su lugar, te dirá que añadas el archivo en la app.

¿Qué archivos puede subir un asistente de IA?

Los mismos que el editor: imágenes (JPG, PNG, GIF, SVG, WEBP y más), PDF y documentos de ofimática, video y archivos comprimidos ZIP o RAR, hasta el límite por archivo de tu plan.

¿Un archivo subido cuenta para mi almacenamiento?

Sí: para el almacenamiento de la cuenta del propietario del espacio de trabajo, exactamente igual que un archivo añadido en el editor.

¿Qué significa NOTE_UPLOAD_NOT_LINKED?

El asistente intentó enlazar un archivo subido solo por su dirección. Notez lo rechaza porque el archivo no quedaría registrado y se eliminaría a los tres días. El asistente debe pegar el fragmento que devolvió confirm_upload; la mayoría lo reintenta por su cuenta.

Sigue leyendo