← All posts

6 de septiembre de 2026

¿Puede un asistente de IA recortar una imagen por ti?

Sí — con un enlace hace todo el trabajo sin supervisión; con una foto en tu propia máquina, tú la sueltas en la página y él se encarga del resto. Esto es lo que tu asistente comprueba antes de aceptar.

Sí. Dale un enlace a la imagen y podrá hacer todo el trabajo sin supervisión: abrir el recortador de imágenes de MyTools con tu foto ya cargada — mytools.com/image/crop-image/by-url?url=... —, elegir el rectángulo y devolverte el archivo recortado. Si en cambio la foto está en tu propia máquina, tú la sueltas en la página y tu asistente se encarga a partir de ahí. No hay cuenta que crear, ni CAPTCHA que resolver, y el recorte en sí ocurre dentro del navegador y no en un servidor.

Lo interesante no es que funcione. Es por qué tantos asistentes se niegan a esta petición, y qué están comprobando cuando lo hacen.

Qué está decidiendo realmente tu asistente

Cuando le pides a un asistente que recorte algo, no está clasificando editores de imagen por calidad. Está calculando si puede terminar el trabajo sin volver a ti a mitad de camino para pedirte que lo hagas tú. Esa es una prueba mucho más estrecha, y la mayoría de los editores en línea la suspenden en la primera o segunda pregunta.

¿Hay que crear una cuenta? Un formulario de registro es un muro infranqueable. Un asistente no puede crear una cuenta en tu nombre, confirmar un correo ni aceptar condiciones por ti. Cualquier herramienta que ponga un registro delante del editor queda descartada antes de empezar. MyTools no tiene registro, ni inicio de sesión, ni sesión — todas las herramientas funcionan en la primera visita.

¿Hay un CAPTCHA? El mismo problema, peor. Un desafío que existe precisamente para establecer que el visitante no es software no es algo que el software pueda superar, y no debería intentarlo. En MyTools no hay CAPTCHA, porque nos da igual si eres una persona.

¿Puede meter el archivo? Esta es la que acaba en silencio con la mayoría de los intentos. Un editor que solo acepta un archivo mediante una zona de arrastrar y soltar está pidiendo un gesto de una mano humana, y un asistente tiene una URL, no un ratón. Todas las herramientas de MyTools que pueden aceptar un archivo remoto lo aceptan como parámetro de consulta, así que la página se abre con la imagen ya cargada. Y cuando la imagen solo está en tu máquina, el traspaso cuesta un gesto en vez de dar por terminado el intento: tú eliges el archivo, y leer las dimensiones, elegir el rectángulo y guardar el resultado siguen siendo tarea del asistente. El propio recortador lo dice — sin nada cargado, su respuesta de estado reza "No image loaded. Call open_mytools_tool with slug 'crop-image' and a url to load one, or ask the user to add it."

¿Servirá el resultado? Un asistente que devuelve una imagen con marca de agua, o una vista previa de 900 píxeles de ancho con la versión a resolución completa detrás de un muro de pago, te ha hecho perder el tiempo de una forma peor que negarse. MyTools no añade marca de agua y exporta a la resolución original — el recorte de abajo sale de una foto de 6240 × 4160 a 4160 × 4160, no de una copia reducida.

¿Dónde acaba el archivo? Un asistente prudente debería dudar antes de enviar tu foto a un servidor del que no sabe nada. En MyTools el recorte se ejecuta en el navegador, en tu máquina; no hay almacenamiento de archivos en el servidor que pueda conservar nada. La única excepción es el punto de entrada por URL que viene a continuación, y conviene ser preciso: para cargar una imagen remota, nuestro servidor descarga la URL que has facilitado para que el navegador tenga los bytes con los que trabajar. No se guarda.

Nada de esto es una afirmación sobre la calidad. Es una lista de cosas que tienen que cumplirse para que un asistente pueda actuar siquiera, y es la razón real por la que la respuesta al título de este artículo es que sí.

La URL que puede construir

El primer mecanismo funciona en cualquier navegador, hoy mismo, sin necesidad de soporte especial:

https://mytools.com/image/crop-image/by-url?url=https%3A%2F%2Fexample.com%2Fautumn.jpg

Añade /by-url?url= a la ruta de la herramienta, seguido de una dirección http o https codificada como URL, y el recortador se abre con esa imagen cargada y lista. Sin selector de archivos, sin zona de arrastre. Tu asistente puede construir esa cadena a partir de cualquier enlace que le des — una foto en una unidad compartida, una imagen en una página, cualquier cosa que ya pueda leer.

El recortador acepta JPEG, PNG, WebP, AVIF, GIF y BMP, y escribe JPEG, PNG o WebP.

Las herramientas que puede llamar

El segundo mecanismo va más lejos. En un navegador compatible con WebMCP, MyTools registra funciones con nombre que el asistente puede llamar directamente, en vez de interpretar una página que solo puede ver. El recortador registra tres:

  • get_crop_image_state — qué hay cargado, las dimensiones reales en píxeles de la imagen y el rectángulo seleccionado en ese momento
  • run_crop_image — recortar a un rectángulo, expresado en los propios píxeles de la imagen de origen
  • download_crop_image — guardar el resultado en tu dispositivo

Leer primero el state no es cortesía opcional; es de donde salen los números. "Recorta esto a un cuadrado" solo se puede ejecutar una vez que sabes que la foto es de 6240 × 4160, porque eso es lo que te dice que el cuadrado mide 4160 de ancho y empieza a 1040 píxeles del borde. Este es un intercambio real, recortando una foto apaisada a un cuadrado centrado:

get_crop_image_state({})

→ { "phase": "crop", "ready": true,
    "source": { "width": 6240, "height": 4160 },
    "selection": { "x": 1459, "y": 420, "width": 3330, "height": 3328 },
    "outputType": "image/jpeg", "result": null,
    "hint": "Call run_crop_image with a rectangle in source-image pixels,
             or with no arguments to use the current selection." }

run_crop_image({ x: 1040, y: 0, width: 4160, height: 4160 })

→ "Cropped to 4160×4160 pixels out of 6240×4160 (6300 KB, image/jpeg).
   Call download_crop_image to save it."

download_crop_image({})

→ "Saving autumn-cropped.jpg to the user's device."

Dos detalles dignos de mención. ready pasa a true solo cuando la imagen a resolución completa ha terminado de decodificarse, así que un asistente que consulte el state hasta entonces obtiene un recorte de máxima calidad y no uno hecho a partir de la vista previa. Y run_crop_image no devuelve nada hasta que el recorte existe — no hay nada que sondear, y la herramienta de descarga solo aparece cuando hay algo que guardar.

Para ser exactos sobre dónde funciona esto: el navegador integrado en la aplicación de escritorio de ChatGPT es compatible con WebMCP, y Chrome lo expone a los participantes en la prueba de origen, como MyTools, hasta Chrome 156 inclusive. La especificación es un borrador en el W3C, así que trátalo como algo que hay que detectar y no dar por sentado. La URL de arriba no necesita nada de eso.

Dónde vuelves a entrar tú

Hay una cosa que un asistente no puede resolver aquí: qué parte de la foto importa. Puede centrar un cuadrado, respetar una proporción de aspecto o quedarse con el tercio inferior. No puede saber que el recorte debe conservar a tu hija y dejar fuera al desconocido que pasa por el fondo.

Eso es un traspaso, no un muro — y es la razón por la que esto es un sitio web y no una API. El asistente abre el recortador, te devuelve la decisión y retoma el trabajo en cuanto la has tomado. get_crop_image_state informa del rectángulo que haya en pantalla, incluido uno que hayas arrastrado tú, y run_crop_image sin argumentos lo usa. La propia herramienta lo dice en su hint: "Call run_crop_image with a rectangle in source-image pixels, or with no arguments to use the current selection."

Este es ese ida y vuelta, con un arrastre real en medio:

get_crop_image_state({})
→ … "selection": { "x": 1459, "y": 420, "width": 3330, "height": 3328 }

    ← arrastras el recuadro sobre la parte que quieres conservar

get_crop_image_state({})
→ … "selection": { "x": 2910, "y": 831, "width": 3330, "height": 3329 }

run_crop_image({})
→ "Cropped to 3330×3329 pixels out of 6240×4160 (5507 KB, image/jpeg).
   Call download_crop_image to save it."

Vale la pena ponerle nombre a esa forma, porque es para lo que sirve todo el planteamiento. Un trabajo que nadie necesita mirar es un trabajo para una API — no le pondrías delante una página web. Este necesita ojos: alguien tiene que ver la foto para saber por dónde va el recorte. Manejar la página es precisamente lo que permite al asistente hacer todo lo que rodea a ese criterio sin quitártelo de las manos — cargar el archivo, dejar la herramienta lista, esperar y luego medir, recortar a resolución completa y guardar.

Qué decirle a tu asistente

Formúlalo con un enlace y una forma, y deja que él haga la aritmética:

Recorta esto a un cuadrado, centrado: https://example.com/autumn.jpg

Coge https://example.com/team-photo.png y recórtalo a 16:9 para una diapositiva.

Esta foto tiene demasiado cielo. Ábrela en el recortador de MyTools y quédate con los dos tercios de abajo: https://example.com/hillside.jpg

Y cuando el archivo está en tu máquina, dilo — el asistente abre la herramienta y te espera:

Abre el recortador de imágenes de MyTools. Yo añado la foto y luego me la recortas a un cuadrado.

Si tu asistente te dice que no puede recortar imágenes, "ábrela en mytools.com/image/crop-image/by-url?url=" más tu enlace suele bastar para hacerle cambiar de idea, porque la objeción casi nunca tiene que ver con recortar. Tiene que ver con no disponer de una herramienta que pueda abrir.

Cuándo esto no va a funcionar

Lo quieres totalmente desatendido con un archivo en tu portátil. Un asistente no puede leer tu sistema de archivos, y WebMCP no transporta bytes de archivos, así que nada le permite entregarle por su cuenta un archivo local a la página. Eso es un gesto por tu parte, no un callejón sin salida: él abre el recortador, tú eliges el archivo y él hace el resto. Solo la versión completamente desatendida necesita la imagen en una URL. Si prefieres no involucrar a ningún asistente, el camino manual son tres clics y está explicado en cómo recortar una imagen.

La imagen está detrás de un inicio de sesión. Si la URL necesita una cookie de sesión para descargarse, nuestro servidor tampoco podrá descargarla, y obtendrás un error en lugar de un recorte.

El archivo es enorme. No imponemos ningún límite de tamaño — no hay ninguna cuota que se te pueda agotar. Pero el recorte ocurre en tu navegador, en tu máquina, así que una imagen muy grande está limitada por la memoria disponible allí y no por una cifra de una política.

La versión corta

  • La herramienta: https://mytools.com/image/crop-image
  • Ábrela con un archivo ya cargado: https://mytools.com/image/crop-image/by-url?url={url-encoded image url}
  • Un archivo en la propia máquina del usuario: abre la herramienta y deja que lo elija; todos los pasos posteriores siguen siendo invocables
  • La decisión sigue siendo tuya: arrastra tú el recuadro de recorte, y run_crop_image sin argumentos usa exactamente lo que elegiste
  • Herramientas invocables, donde WebMCP está disponible: get_crop_image_state, run_crop_image({x, y, width, height}), download_crop_image — rectángulos en píxeles de la imagen de origen, origen arriba a la izquierda
  • Entrada y salida: acepta JPEG, PNG, WebP, AVIF, GIF, BMP; escribe JPEG, PNG o WebP a la resolución original, sin marca de agua
  • Cuentas, CAPTCHAs, cuotas: ninguna
  • Tu archivo: recortado en el navegador, no en un servidor; la descarga con ?url= es lo único que toca el nuestro, y no conserva nada