OpenClip: miniaturas y edición de imágenes
Dos herramientas gratuitas, normalmente usadas juntas:
extract_thumbnails: extrae fotogramas de un vídeo.edit_image: comprime, redimensiona, recorta o reformatea una imagen.
Ambas son GRATUITAS, necesitan una cuenta de OpenClip pero no requieren suscripción ni créditos.
Configuración (una vez)
OpenClip es un servidor MCP remoto en https://openclip.app/mcp. Inicia sesión con tu cuenta de OpenClip cuando aparezca el aviso de OAuth, no hay ninguna clave API que copiar.
- Claude Code:
claude mcp add --transport http openclip https://openclip.app/mcp, luego/mcppara autorizar. - Claude Desktop / web: Ajustes, Conectores, "Añadir conector personalizado", pega la URL, inicia sesión.
- Cursor (
.cursor/mcp.json):{ "mcpServers": { "openclip": { "url": "https://openclip.app/mcp" } } } - Clientes solo con cabecera: genera un token MCP en
openclip.app/settings/connecty conéctate ahttps://openclip.app/mcp/keyconAuthorization: Bearer <token>.
Prueba de verificación: llama a get_account.
Cómo introducir el archivo
create_upload(filename, content_type)devuelve unidy unaupload_url.- Envía los bytes brutos a
upload_urlmediante PUT. - Pasa el
iddevuelto como argumentovideo(miniaturas) ofile(edición de imágenes).
NO llames a complete_upload. Eso inicia el pipeline de recorte de pago. Las herramientas gratuitas leen el archivo subido directamente. Los vídeos que ya están en list_videos también funcionan como entrada.
extract_thumbnails
extract_thumbnails(video, count?, width?).
count: de 1 a 10, por defecto 1. Los fotogramas se distribuyen a lo largo del vídeo, así quecount: 5te da una hoja de contactos aproximada para elegir.width: ancho en píxeles opcional para los fotogramas de salida.
La salida es un zip de fotogramas, no URLs de imágenes individuales. Entrega al usuario la URL del zip, o descomprímela si necesitas un fotograma concreto.
Cuando el usuario quiera un fotograma de un momento exacto en lugar de una distribución uniforme, recorta primero el vídeo a ese momento con edit_video (operation="trim", consulta openclip-video-editing) y luego extrae una miniatura del clip recortado.
edit_image
edit_image(file, operation, ...params), una operación por llamada:
- compress:
qualityde 1 a 100 (por defecto 80),formatopcional (jpg,png,webp). - resize:
widthyheighten píxeles,formatopcional. - crop: ya sea
aspect("1:1","9:16","16:9","4:5") ox,y,width,heightexplícitos,formatopcional.
Usa webp cuando la imagen vaya a una página web y jpg cuando necesite funcionar en todas partes.
Sondeo
Ambas herramientas devuelven un tool_job hashid con status: "queued". Sondea get_tool_job_status(tool_job) cada 5 a 10 segundos:
queued/processing: todavía está trabajando, sigue sondeando.completed: devuelve URLs permanentes de CDN enoutputsmásresult_meta.failed: devuelveerror.
Reglas
- Siempre sondea, ambas herramientas son asíncronas.
- Una operación de
edit_imagepor llamada. Para redimensionar y luego comprimir, ejecuta dos llamadas en secuencia. extract_thumbnailsdevuelve un zip, siempre. No prometas al usuario URLs de fotogramas individuales.- Las URLs de salida son enlaces CDN permanentes, no firmados ni con caducidad.
- El uso gratuito tiene un límite de velocidad por día y un límite de tamaño por archivo.
Ejemplos de instrucciones a acciones
- "Saca una miniatura de este vídeo" -
create_upload, PUT bytes,extract_thumbnails(video), sondea, devuelve la URL del zip. - "Dame 5 fotogramas para elegir" -
extract_thumbnails(video, count=5), sondea. - "Quiero el fotograma en 1:30" -
edit_video(video, operation="trim", start_ms=90000, end_ms=91000), sondea, luegoextract_thumbnailssobre esa salida, sondea. - "Convierte esta imagen en un cuadrado webp" -
edit_image(file, operation="crop", aspect="1:1", format="webp"), sondea. - "Este PNG es enorme, redúcelo" -
edit_image(file, operation="compress", quality=75, format="webp"), sondea.
Relacionadas
Recortar el sujeto a un PNG transparente es openclip-remove-background. El recorte y la edición de vídeo es openclip-video-editing.