image-processing
Qué hace este MCP
Processes images by resizing, converting, compressing, cropping, and preparing them for web use.
Herramientas
Esquema de entrada
{'type': 'object', 'title': 'analyze_imageArguments', 'required': ['source'], 'properties': {'source': {'type': 'string', 'title': 'source', 'description': 'Image source: a public URL (https://...) or a base64-encoded string (optionally as a data URI like data:image/png;base64,...).'}}}
Esquema de entrada
{'type': 'object', 'title': 'compress_imageArguments', 'required': ['source'], 'properties': {'q': {'type': 'integer', 'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'q', 'description': 'Quality (1-100). Lower = smaller file. Typical values: 60-80 for web, 85-95 for print. Maps to libvips Q parameter.'}, 'strip': {'type': 'boolean', 'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'strip', 'description': 'Strip metadata (EXIF, ICC profile, etc.) from the output. Reduces file size slightly.'}, 'format': {'type': 'string', 'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'format', 'description': 'Output format: jpeg, png, webp, tiff, gif, or avif. If omitted, the original format is preserved.'}, 'source': {'type': 'string', 'title': 'source', 'description': 'Image source: a public URL (https://...) or a base64-encoded string (optionally as a data URI like data:image/png;base64,...).'}, 'autorot': {'type': 'boolean', 'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'autorot', 'description': 'Apply EXIF orientation before compressing. Opt-in; default false, which preserves current byte-for-byte behavior.'}, 'denoise': {'type': 'integer', 'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'denoise', 'description': 'Median denoise before compressing: radius 1-3 (window 3x3 to 7x7). Opt-in; no surcharge.'}, 'sharpen': {'type': 'boolean', 'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'sharpen', 'description': 'Unsharp-mask sharpen after compressing (libvips defaults). Opt-in.'}, 'delivery': {'type': 'string', 'oneOf': [{'type': 'object', 'title': 'InlineDelivery', 'properties': {'mode': {'type': 'string', 'const': 'inline', 'title': 'Mode', 'default': 'inline'}}, 'additionalProperties': False}, {'type': 'object', 'title': 'PutUrlDelivery', 'required': ['mode', 'put_url'], 'properties': {'mode': {'type': 'string', 'const': 'put_url', 'title': 'Mode'}, 'headers': {'anyOf': [{'type': 'object', 'additionalProperties': {'type': 'string'}}, {'type': 'null'}], 'title': 'Headers', 'description': 'Optional storage headers to include on the PUT call (Content-Type, Cache-Control, x-amz-acl, etc.). Whitelisted at SSRF layer.'}, 'put_url': {'type': 'string', 'title': 'Put Url', 'format': 'uri', 'maxLength': 2083, 'minLength': 1, 'description': 'Customer-signed presigned PUT URL where the optimized bytes will be written. Must be https://. Cloud credentials never reach our infrastructure; only the URL itself is used and discarded after the request.'}}, 'additionalProperties': False}, {'type': 'object', 'title': 'CallbackDelivery', 'required': ['mode', 'callback_url'], 'properties': {'mode': {'type': 'string', 'const': 'callback_url', 'title': 'Mode'}, 'secret': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Secret', 'description': "Optional HMAC secret. When set, we sign the POST body with HMAC-SHA256 and send 'X-Pig-Signature: sha256=<hex>'. Used per request and never stored. Recompute the HMAC on your endpoint to authenticate the callback (constant-time compare)."}, 'headers': {'anyOf': [{'type': 'object', 'additionalProperties': {'type': 'string'}}, {'type': 'null'}], 'title': 'Headers', 'description': 'Optional headers to include on the POST call (Content-Type, Cache-Control, x-amz-*, etc.). Whitelisted at SSRF layer.'}, 'callback_url': {'type': 'string', 'title': 'Callback Url', 'format': 'uri', 'maxLength': 2083, 'minLength': 1, 'description': 'Customer endpoint where the optimized bytes will be POSTed. Must be https://. For async/large jobs. We send an X-Pig-Sha256 header of the body so the receiver can verify integrity. No credentials are stored on our side; secure the endpoint with a token in the URL itself.'}}, 'additionalProperties': False}], 'title': 'delivery', 'discriminator': {'mapping': {'inline': '#/components/schemas/InlineDelivery', 'put_url': '#/components/schemas/PutUrlDelivery', 'callback_url': '#/components/schemas/CallbackDelivery'}, 'propertyName': 'mode'}}, 'equalize': {'type': 'boolean', 'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'equalize', 'description': 'Auto-contrast (histogram equalisation of the value channel; hue and saturation preserved) before compressing. Opt-in.'}, 'quality_target': {'type': 'number', 'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'quality_target', 'description': 'Target SSIM (0-1]: the worker searches for the smallest file that still scores at least this. Alternative to q; mutually exclusive with it. Requires an explicit format among jpeg, webp, avif. Carries a flat surcharge for the extra encodes.'}}}
Esquema de entrada
{'type': 'object', 'title': 'convert_imageArguments', 'required': ['source', 'format'], 'properties': {'q': {'type': 'integer', 'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'q', 'description': 'Quality (1-100). Maps to libvips Q parameter.'}, 'strip': {'type': 'boolean', 'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'strip', 'description': 'Strip metadata (EXIF, ICC profile, etc.) from the output.'}, 'effort': {'type': 'integer', 'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'effort', 'description': 'AV1 encoder CPU effort (0-9). Higher = smaller file, slower. Only applies to avif.'}, 'format': {'type': 'string', 'title': 'format', 'description': 'Target format: jpeg, png, webp, tiff, gif, or avif.'}, 'source': {'type': 'string', 'title': 'source', 'description': 'Image source: a public URL (https://...) or a base64-encoded string (optionally as a data URI like data:image/png;base64,...).'}, 'autorot': {'type': 'boolean', 'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'autorot', 'description': 'Apply EXIF orientation before converting. Opt-in; default false, which preserves current byte-for-byte behavior.'}, 'denoise': {'type': 'integer', 'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'denoise', 'description': 'Median denoise before converting: radius 1-3 (window 3x3 to 7x7). Opt-in; no surcharge.'}, 'sharpen': {'type': 'boolean', 'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'sharpen', 'description': 'Unsharp-mask sharpen after converting (libvips defaults). Opt-in.'}, 'delivery': {'type': 'string', 'oneOf': [{'type': 'object', 'title': 'InlineDelivery', 'properties': {'mode': {'type': 'string', 'const': 'inline', 'title': 'Mode', 'default': 'inline'}}, 'additionalProperties': False}, {'type': 'object', 'title': 'PutUrlDelivery', 'required': ['mode', 'put_url'], 'properties': {'mode': {'type': 'string', 'const': 'put_url', 'title': 'Mode'}, 'headers': {'anyOf': [{'type': 'object', 'additionalProperties': {'type': 'string'}}, {'type': 'null'}], 'title': 'Headers', 'description': 'Optional storage headers to include on the PUT call (Content-Type, Cache-Control, x-amz-acl, etc.). Whitelisted at SSRF layer.'}, 'put_url': {'type': 'string', 'title': 'Put Url', 'format': 'uri', 'maxLength': 2083, 'minLength': 1, 'description': 'Customer-signed presigned PUT URL where the optimized bytes will be written. Must be https://. Cloud credentials never reach our infrastructure; only the URL itself is used and discarded after the request.'}}, 'additionalProperties': False}, {'type': 'object', 'title': 'CallbackDelivery', 'required': ['mode', 'callback_url'], 'properties': {'mode': {'type': 'string', 'const': 'callback_url', 'title': 'Mode'}, 'secret': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Secret', 'description': "Optional HMAC secret. When set, we sign the POST body with HMAC-SHA256 and send 'X-Pig-Signature: sha256=<hex>'. Used per request and never stored. Recompute the HMAC on your endpoint to authenticate the callback (constant-time compare)."}, 'headers': {'anyOf': [{'type': 'object', 'additionalProperties': {'type': 'string'}}, {'type': 'null'}], 'title': 'Headers', 'description': 'Optional headers to include on the POST call (Content-Type, Cache-Control, x-amz-*, etc.). Whitelisted at SSRF layer.'}, 'callback_url': {'type': 'string', 'title': 'Callback Url', 'format': 'uri', 'maxLength': 2083, 'minLength': 1, 'description': 'Customer endpoint where the optimized bytes will be POSTed. Must be https://. For async/large jobs. We send an X-Pig-Sha256 header of the body so the receiver can verify integrity. No credentials are stored on our side; secure the endpoint with a token in the URL itself.'}}, 'additionalProperties': False}], 'title': 'delivery', 'discriminator': {'mapping': {'inline': '#/components/schemas/InlineDelivery', 'put_url': '#/components/schemas/PutUrlDelivery', 'callback_url': '#/components/schemas/CallbackDelivery'}, 'propertyName': 'mode'}}, 'equalize': {'type': 'boolean', 'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'equalize', 'description': 'Auto-contrast (histogram equalisation of the value channel; hue and saturation preserved) before converting. Opt-in.'}, 'lossless': {'type': 'boolean', 'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'lossless', 'description': 'Enable lossless encoding. Only applies to webp and avif.'}, 'quality_target': {'type': 'number', 'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'quality_target', 'description': 'Target SSIM (0-1]: the worker searches for the smallest file that still scores at least this. Alternative to q; mutually exclusive with it and with lossless. Only for jpeg, webp, avif. Carries a flat surcharge for the extra encodes.'}}}
Esquema de entrada
{'type': 'object', 'title': 'crop_imageArguments', 'required': ['source'], 'properties': {'x': {'type': 'integer', 'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'x', 'description': 'Left edge of the crop rectangle in pixels. Manual mode only.'}, 'y': {'type': 'integer', 'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'y', 'description': 'Top edge of the crop rectangle in pixels. Manual mode only.'}, 'trim': {'type': 'boolean', 'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'trim', 'description': 'Trim mode: removes a uniform background border via content detection. Mutually exclusive with x/y/width/height/gravity.'}, 'width': {'type': 'integer', 'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'width', 'description': 'Width of the crop rectangle in pixels. Required in manual and gravity modes.'}, 'format': {'type': 'string', 'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'format', 'description': 'Output format: jpeg, png, webp, tiff, gif, or avif. If omitted, the original format is preserved.'}, 'height': {'type': 'integer', 'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'height', 'description': 'Height of the crop rectangle in pixels. Required in manual and gravity modes.'}, 'source': {'type': 'string', 'title': 'source', 'description': 'Image source: a public URL (https://...) or a base64-encoded string (optionally as a data URI like data:image/png;base64,...).'}, 'autorot': {'type': 'boolean', 'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'autorot', 'description': 'Apply EXIF orientation before cropping. Opt-in; default false, which preserves current byte-for-byte behavior.'}, 'denoise': {'type': 'integer', 'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'denoise', 'description': 'Median denoise before cropping: radius 1-3 (window 3x3 to 7x7). Opt-in; no surcharge.'}, 'gravity': {'type': 'string', 'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'gravity', 'description': "Smart-crop mode: picks the window automatically. One of ('attention', 'entropy', 'centre'). Requires width and height; mutually exclusive with x/y and trim. A target larger than the source clamps to the source size."}, 'sharpen': {'type': 'boolean', 'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'sharpen', 'description': 'Unsharp-mask sharpen after cropping (libvips defaults). Opt-in.'}, 'delivery': {'type': 'string', 'oneOf': [{'type': 'object', 'title': 'InlineDelivery', 'properties': {'mode': {'type': 'string', 'const': 'inline', 'title': 'Mode', 'default': 'inline'}}, 'additionalProperties': False}, {'type': 'object', 'title': 'PutUrlDelivery', 'required': ['mode', 'put_url'], 'properties': {'mode': {'type': 'string', 'const': 'put_url', 'title': 'Mode'}, 'headers': {'anyOf': [{'type': 'object', 'additionalProperties': {'type': 'string'}}, {'type': 'null'}], 'title': 'Headers', 'description': 'Optional storage headers to include on the PUT call (Content-Type, Cache-Control, x-amz-acl, etc.). Whitelisted at SSRF layer.'}, 'put_url': {'type': 'string', 'title': 'Put Url', 'format': 'uri', 'maxLength': 2083, 'minLength': 1, 'description': 'Customer-signed presigned PUT URL where the optimized bytes will be written. Must be https://. Cloud credentials never reach our infrastructure; only the URL itself is used and discarded after the request.'}}, 'additionalProperties': False}, {'type': 'object', 'title': 'CallbackDelivery', 'required': ['mode', 'callback_url'], 'properties': {'mode': {'type': 'string', 'const': 'callback_url', 'title': 'Mode'}, 'secret': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Secret', 'description': "Optional HMAC secret. When set, we sign the POST body with HMAC-SHA256 and send 'X-Pig-Signature: sha256=<hex>'. Used per request and never stored. Recompute the HMAC on your endpoint to authenticate the callback (constant-time compare)."}, 'headers': {'anyOf': [{'type': 'object', 'additionalProperties': {'type': 'string'}}, {'type': 'null'}], 'title': 'Headers', 'description': 'Optional headers to include on the POST call (Content-Type, Cache-Control, x-amz-*, etc.). Whitelisted at SSRF layer.'}, 'callback_url': {'type': 'string', 'title': 'Callback Url', 'format': 'uri', 'maxLength': 2083, 'minLength': 1, 'description': 'Customer endpoint where the optimized bytes will be POSTed. Must be https://. For async/large jobs. We send an X-Pig-Sha256 header of the body so the receiver can verify integrity. No credentials are stored on our side; secure the endpoint with a token in the URL itself.'}}, 'additionalProperties': False}], 'title': 'delivery', 'discriminator': {'mapping': {'inline': '#/components/schemas/InlineDelivery', 'put_url': '#/components/schemas/PutUrlDelivery', 'callback_url': '#/components/schemas/CallbackDelivery'}, 'propertyName': 'mode'}}, 'equalize': {'type': 'boolean', 'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'equalize', 'description': 'Auto-contrast (histogram equalisation of the value channel; hue and saturation preserved) before cropping. Opt-in.'}, 'threshold': {'type': 'number', 'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'threshold', 'description': 'Trim sensitivity (must be positive; default 10.0). Only valid together with trim: true.'}}}
Esquema de entrada
{'type': 'object', 'title': 'estimate_costArguments', 'required': ['operation', 'input_bytes'], 'properties': {'format': {'type': 'string', 'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'format', 'description': 'Requested output format; only avif changes the price.'}, 'operation': {'type': 'string', 'title': 'operation', 'description': 'Operation to price. One of resize, compress, convert, crop, optimize_for_vision, optimize_generated, pipeline. analyze is always free.'}, 'operations': {'type': 'array', 'anyOf': [{'type': 'array', 'items': {'type': 'object', 'title': 'EstimateOperation', 'required': ['type'], 'properties': {'type': {'type': 'string', 'title': 'Type', 'description': 'Operation type: resize, compress, convert, or crop.'}, 'format': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Format', 'description': 'Requested output format for this operation; only avif changes the price.'}}}}, {'type': 'null'}], 'title': 'operations', 'description': 'For pipeline only: the ordered operations, each {type, format?}. Volume discount applies at 3+ operations.'}, 'input_bytes': {'type': 'integer', 'title': 'input_bytes', 'minimum': 1.0, 'description': 'Size of the input image in bytes. Get it from analyze_image (free) if you do not know it.'}, 'quality_target': {'type': 'boolean', 'title': 'quality_target', 'default': False, 'description': 'Whether the request will use quality_target (SSIM search surcharge).'}}}
Esquema de entrada
{'type': 'object', 'title': 'get_format_infoArguments', 'properties': {}}
Esquema de entrada
{'type': 'object', 'title': 'image_pipelineArguments', 'required': ['source', 'operations'], 'properties': {'source': {'type': 'string', 'title': 'source', 'description': 'Image source: a public URL (https://...) or a base64-encoded string (optionally as a data URI like data:image/png;base64,...).'}, 'delivery': {'type': 'string', 'oneOf': [{'type': 'object', 'title': 'InlineDelivery', 'properties': {'mode': {'type': 'string', 'const': 'inline', 'title': 'Mode', 'default': 'inline'}}, 'additionalProperties': False}, {'type': 'object', 'title': 'PutUrlDelivery', 'required': ['mode', 'put_url'], 'properties': {'mode': {'type': 'string', 'const': 'put_url', 'title': 'Mode'}, 'headers': {'anyOf': [{'type': 'object', 'additionalProperties': {'type': 'string'}}, {'type': 'null'}], 'title': 'Headers', 'description': 'Optional storage headers to include on the PUT call (Content-Type, Cache-Control, x-amz-acl, etc.). Whitelisted at SSRF layer.'}, 'put_url': {'type': 'string', 'title': 'Put Url', 'format': 'uri', 'maxLength': 2083, 'minLength': 1, 'description': 'Customer-signed presigned PUT URL where the optimized bytes will be written. Must be https://. Cloud credentials never reach our infrastructure; only the URL itself is used and discarded after the request.'}}, 'additionalProperties': False}, {'type': 'object', 'title': 'CallbackDelivery', 'required': ['mode', 'callback_url'], 'properties': {'mode': {'type': 'string', 'const': 'callback_url', 'title': 'Mode'}, 'secret': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Secret', 'description': "Optional HMAC secret. When set, we sign the POST body with HMAC-SHA256 and send 'X-Pig-Signature: sha256=<hex>'. Used per request and never stored. Recompute the HMAC on your endpoint to authenticate the callback (constant-time compare)."}, 'headers': {'anyOf': [{'type': 'object', 'additionalProperties': {'type': 'string'}}, {'type': 'null'}], 'title': 'Headers', 'description': 'Optional headers to include on the POST call (Content-Type, Cache-Control, x-amz-*, etc.). Whitelisted at SSRF layer.'}, 'callback_url': {'type': 'string', 'title': 'Callback Url', 'format': 'uri', 'maxLength': 2083, 'minLength': 1, 'description': 'Customer endpoint where the optimized bytes will be POSTed. Must be https://. For async/large jobs. We send an X-Pig-Sha256 header of the body so the receiver can verify integrity. No credentials are stored on our side; secure the endpoint with a token in the URL itself.'}}, 'additionalProperties': False}], 'title': 'delivery', 'discriminator': {'mapping': {'inline': '#/components/schemas/InlineDelivery', 'put_url': '#/components/schemas/PutUrlDelivery', 'callback_url': '#/components/schemas/CallbackDelivery'}, 'propertyName': 'mode'}}, 'operations': {'type': 'array', 'items': {'type': 'object', 'title': 'PipelineOperation', 'required': ['type'], 'properties': {'type': {'type': 'string', 'title': 'Type', 'description': 'Operation type: resize, compress, convert, or crop.'}, 'params': {'type': 'object', 'title': 'Params', 'default': {}, 'description': 'Operation parameters as key-value string pairs. E.g. {"scale": "0.5"} for resize, {"format": "webp"} for convert.', 'additionalProperties': {'type': 'string'}}}}, 'title': 'operations', 'description': 'Ordered list of operations to apply sequentially. Each operation receives the output of the previous one. Max 10.'}}}
Esquema de entrada
{'type': 'object', 'title': 'optimize_for_visionArguments', 'required': ['source', 'target_model'], 'properties': {'q': {'type': 'integer', 'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'q', 'description': 'Quality (1-100). Maps to libvips Q parameter.'}, 'format': {'type': 'string', 'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'format', 'description': 'Output format: jpeg, png, webp, tiff, gif, or avif. If omitted, the original format is preserved.'}, 'source': {'type': 'string', 'title': 'source', 'description': 'Image source: a public URL (https://...) or a base64-encoded string (optionally as a data URI like data:image/png;base64,...).'}, 'delivery': {'type': 'string', 'oneOf': [{'type': 'object', 'title': 'InlineDelivery', 'properties': {'mode': {'type': 'string', 'const': 'inline', 'title': 'Mode', 'default': 'inline'}}, 'additionalProperties': False}, {'type': 'object', 'title': 'PutUrlDelivery', 'required': ['mode', 'put_url'], 'properties': {'mode': {'type': 'string', 'const': 'put_url', 'title': 'Mode'}, 'headers': {'anyOf': [{'type': 'object', 'additionalProperties': {'type': 'string'}}, {'type': 'null'}], 'title': 'Headers', 'description': 'Optional storage headers to include on the PUT call (Content-Type, Cache-Control, x-amz-acl, etc.). Whitelisted at SSRF layer.'}, 'put_url': {'type': 'string', 'title': 'Put Url', 'format': 'uri', 'maxLength': 2083, 'minLength': 1, 'description': 'Customer-signed presigned PUT URL where the optimized bytes will be written. Must be https://. Cloud credentials never reach our infrastructure; only the URL itself is used and discarded after the request.'}}, 'additionalProperties': False}, {'type': 'object', 'title': 'CallbackDelivery', 'required': ['mode', 'callback_url'], 'properties': {'mode': {'type': 'string', 'const': 'callback_url', 'title': 'Mode'}, 'secret': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Secret', 'description': "Optional HMAC secret. When set, we sign the POST body with HMAC-SHA256 and send 'X-Pig-Signature: sha256=<hex>'. Used per request and never stored. Recompute the HMAC on your endpoint to authenticate the callback (constant-time compare)."}, 'headers': {'anyOf': [{'type': 'object', 'additionalProperties': {'type': 'string'}}, {'type': 'null'}], 'title': 'Headers', 'description': 'Optional headers to include on the POST call (Content-Type, Cache-Control, x-amz-*, etc.). Whitelisted at SSRF layer.'}, 'callback_url': {'type': 'string', 'title': 'Callback Url', 'format': 'uri', 'maxLength': 2083, 'minLength': 1, 'description': 'Customer endpoint where the optimized bytes will be POSTed. Must be https://. For async/large jobs. We send an X-Pig-Sha256 header of the body so the receiver can verify integrity. No credentials are stored on our side; secure the endpoint with a token in the URL itself.'}}, 'additionalProperties': False}], 'title': 'delivery', 'discriminator': {'mapping': {'inline': '#/components/schemas/InlineDelivery', 'put_url': '#/components/schemas/PutUrlDelivery', 'callback_url': '#/components/schemas/CallbackDelivery'}, 'propertyName': 'mode'}}, 'max_tokens': {'type': 'integer', 'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'max_tokens', 'description': "Optional cap on what the image may cost the target model. Without it the image is resized to the model's own ceiling, which saves bytes and upload latency but no tokens, because every provider already downscales oversized input before counting. Set a budget to trade resolution for tokens. The response reports the cost actually achieved: on OpenAI it cannot be lowered by resizing at all, and on Gemini only down to a flat 258."}, 'target_model': {'type': 'string', 'title': 'target_model', 'description': 'Vision model the image is being prepared for, e.g. claude-opus-5, gpt-4o, gemini-2.5-pro. Unknown ids are rejected rather than guessed: the wrong limits would silently resize to the wrong size.'}}}
Esquema de entrada
{'type': 'object', 'title': 'optimize_generated_imageArguments', 'required': ['source'], 'properties': {'q': {'type': 'integer', 'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'q', 'description': 'Quality (1-100). Maps to libvips Q parameter. Omit to use the encoder default; or set quality_target instead.'}, 'strip': {'type': 'boolean', 'title': 'strip', 'default': True, 'description': 'Strip metadata. Defaults to true: generated images carry no EXIF worth keeping. Metadata includes any C2PA manifest, which would be invalid after re-encoding anyway.'}, 'format': {'type': 'string', 'title': 'format', 'default': 'webp', 'description': 'Output format: webp (default), avif, jpeg or png. webp, avif and png keep transparency; jpeg flattens it.'}, 'source': {'type': 'string', 'title': 'source', 'description': 'Image source: a public URL (https://...) or a base64-encoded string (optionally as a data URI like data:image/png;base64,...).'}, 'delivery': {'type': 'string', 'oneOf': [{'type': 'object', 'title': 'InlineDelivery', 'properties': {'mode': {'type': 'string', 'const': 'inline', 'title': 'Mode', 'default': 'inline'}}, 'additionalProperties': False}, {'type': 'object', 'title': 'PutUrlDelivery', 'required': ['mode', 'put_url'], 'properties': {'mode': {'type': 'string', 'const': 'put_url', 'title': 'Mode'}, 'headers': {'anyOf': [{'type': 'object', 'additionalProperties': {'type': 'string'}}, {'type': 'null'}], 'title': 'Headers', 'description': 'Optional storage headers to include on the PUT call (Content-Type, Cache-Control, x-amz-acl, etc.). Whitelisted at SSRF layer.'}, 'put_url': {'type': 'string', 'title': 'Put Url', 'format': 'uri', 'maxLength': 2083, 'minLength': 1, 'description': 'Customer-signed presigned PUT URL where the optimized bytes will be written. Must be https://. Cloud credentials never reach our infrastructure; only the URL itself is used and discarded after the request.'}}, 'additionalProperties': False}, {'type': 'object', 'title': 'CallbackDelivery', 'required': ['mode', 'callback_url'], 'properties': {'mode': {'type': 'string', 'const': 'callback_url', 'title': 'Mode'}, 'secret': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Secret', 'description': "Optional HMAC secret. When set, we sign the POST body with HMAC-SHA256 and send 'X-Pig-Signature: sha256=<hex>'. Used per request and never stored. Recompute the HMAC on your endpoint to authenticate the callback (constant-time compare)."}, 'headers': {'anyOf': [{'type': 'object', 'additionalProperties': {'type': 'string'}}, {'type': 'null'}], 'title': 'Headers', 'description': 'Optional headers to include on the POST call (Content-Type, Cache-Control, x-amz-*, etc.). Whitelisted at SSRF layer.'}, 'callback_url': {'type': 'string', 'title': 'Callback Url', 'format': 'uri', 'maxLength': 2083, 'minLength': 1, 'description': 'Customer endpoint where the optimized bytes will be POSTed. Must be https://. For async/large jobs. We send an X-Pig-Sha256 header of the body so the receiver can verify integrity. No credentials are stored on our side; secure the endpoint with a token in the URL itself.'}}, 'additionalProperties': False}], 'title': 'delivery', 'discriminator': {'mapping': {'inline': '#/components/schemas/InlineDelivery', 'put_url': '#/components/schemas/PutUrlDelivery', 'callback_url': '#/components/schemas/CallbackDelivery'}, 'propertyName': 'mode'}}, 'max_dimension': {'type': 'integer', 'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'max_dimension', 'description': 'Cap on the longest side in pixels. Larger images are scaled down to fit, aspect ratio preserved; smaller images are never upscaled.'}, 'quality_target': {'type': 'number', 'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'quality_target', 'description': 'Target SSIM (0-1]: the worker searches for the smallest file that still scores at least this. Alternative to q; mutually exclusive with it. Carries a flat surcharge for the extra encodes.'}}}
Esquema de entrada
{'type': 'object', 'title': 'resize_imageArguments', 'required': ['source'], 'properties': {'scale': {'type': 'number', 'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'scale', 'description': 'Uniform scale factor applied to both axes (e.g. 0.5 = half size). Use this for simple scaling; use scale_x/scale_y for independent axes.'}, 'width': {'type': 'integer', 'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'width', 'description': 'Target width in pixels for fill mode: resize and smart-crop to these exact dimensions in one call. Requires height. Mutually exclusive with scale/scale_x/scale_y. Upscaling is allowed.'}, 'format': {'type': 'string', 'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'format', 'description': 'Output format: jpeg, png, webp, tiff, gif, or avif. If omitted, the original format is preserved.'}, 'height': {'type': 'integer', 'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'height', 'description': 'Target height in pixels for fill mode. Requires width.'}, 'source': {'type': 'string', 'title': 'source', 'description': 'Image source: a public URL (https://...) or a base64-encoded string (optionally as a data URI like data:image/png;base64,...).'}, 'autorot': {'type': 'boolean', 'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'autorot', 'description': 'Apply EXIF orientation before resizing. Opt-in; default false, which preserves current byte-for-byte behavior.'}, 'denoise': {'type': 'integer', 'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'denoise', 'description': 'Median denoise before resizing: radius 1-3 (window 3x3 to 7x7). Opt-in; no surcharge.'}, 'gravity': {'type': 'string', 'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'gravity', 'description': "Fill-mode smart-crop strategy: one of ('attention', 'entropy', 'centre'). Only valid together with width and height; defaults to attention."}, 'scale_x': {'type': 'number', 'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'scale_x', 'description': 'Horizontal scale factor (e.g. 0.5 = half width). If only scale_x is given, scale_y defaults to the same value.'}, 'scale_y': {'type': 'number', 'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'scale_y', 'description': 'Vertical scale factor (e.g. 0.75 = 75% height). Optional; defaults to scale_x if omitted.'}, 'sharpen': {'type': 'boolean', 'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'sharpen', 'description': 'Unsharp-mask sharpen after resizing (libvips defaults). Opt-in.'}, 'delivery': {'type': 'string', 'oneOf': [{'type': 'object', 'title': 'InlineDelivery', 'properties': {'mode': {'type': 'string', 'const': 'inline', 'title': 'Mode', 'default': 'inline'}}, 'additionalProperties': False}, {'type': 'object', 'title': 'PutUrlDelivery', 'required': ['mode', 'put_url'], 'properties': {'mode': {'type': 'string', 'const': 'put_url', 'title': 'Mode'}, 'headers': {'anyOf': [{'type': 'object', 'additionalProperties': {'type': 'string'}}, {'type': 'null'}], 'title': 'Headers', 'description': 'Optional storage headers to include on the PUT call (Content-Type, Cache-Control, x-amz-acl, etc.). Whitelisted at SSRF layer.'}, 'put_url': {'type': 'string', 'title': 'Put Url', 'format': 'uri', 'maxLength': 2083, 'minLength': 1, 'description': 'Customer-signed presigned PUT URL where the optimized bytes will be written. Must be https://. Cloud credentials never reach our infrastructure; only the URL itself is used and discarded after the request.'}}, 'additionalProperties': False}, {'type': 'object', 'title': 'CallbackDelivery', 'required': ['mode', 'callback_url'], 'properties': {'mode': {'type': 'string', 'const': 'callback_url', 'title': 'Mode'}, 'secret': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Secret', 'description': "Optional HMAC secret. When set, we sign the POST body with HMAC-SHA256 and send 'X-Pig-Signature: sha256=<hex>'. Used per request and never stored. Recompute the HMAC on your endpoint to authenticate the callback (constant-time compare)."}, 'headers': {'anyOf': [{'type': 'object', 'additionalProperties': {'type': 'string'}}, {'type': 'null'}], 'title': 'Headers', 'description': 'Optional headers to include on the POST call (Content-Type, Cache-Control, x-amz-*, etc.). Whitelisted at SSRF layer.'}, 'callback_url': {'type': 'string', 'title': 'Callback Url', 'format': 'uri', 'maxLength': 2083, 'minLength': 1, 'description': 'Customer endpoint where the optimized bytes will be POSTed. Must be https://. For async/large jobs. We send an X-Pig-Sha256 header of the body so the receiver can verify integrity. No credentials are stored on our side; secure the endpoint with a token in the URL itself.'}}, 'additionalProperties': False}], 'title': 'delivery', 'discriminator': {'mapping': {'inline': '#/components/schemas/InlineDelivery', 'put_url': '#/components/schemas/PutUrlDelivery', 'callback_url': '#/components/schemas/CallbackDelivery'}, 'propertyName': 'mode'}}, 'equalize': {'type': 'boolean', 'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'equalize', 'description': 'Auto-contrast (histogram equalisation of the value channel; hue and saturation preserved) before resizing. Opt-in.'}}}
Cambios recientes en herramientas
Servidores MCP similares
MiOffice — AI-Powered Workspace Studio
Provides browser-based tools for processing PDFs, images, video, and audio, including generation, enhancement, conversion, transc…
BlitzReels Video Editor
Creates and edits short-form videos, including timelines, captions, transitions, AI-generated visuals, music, voiceovers, sound e…
Morpha
Enables creating, animating, and exporting layered short-form video projects.
switch
Enables management and exploration of an account-scoped library of AI-generated images and videos.
framesail
Creates long-form YouTube videos through script generation, storyboarding, visual assets, voiceover, music, scene composition, an…
Magnific
Provides image enhancement and design tools, AI image and audio generation, text-to-speech, creation management, and reusable cre…
Uwear
Supports AI fashion photoshoot production with garments, outfits, avatars, locations, art direction, image generation, backdrops,…
Creative Claw
Generates and edits branded images, video, audio, speech, and 3D-related creative assets, with media processing and reusable them…