image-resize-convert-compress-watermark
What this MCP does
Resizes, crops, converts, compresses, thumbnails, inspects, analyzes colors, and strips metadata from uploaded images.
Tools
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['paths', 'out_dir'], 'properties': {'paths': {'type': 'array', 'items': {'type': 'string'}, 'minItems': 1, 'description': 'Names of images uploaded with image_upload'}, 'width': {'type': 'integer', 'maximum': 10000, 'minimum': 1, 'description': 'Target width in pixels'}, 'height': {'type': 'integer', 'maximum': 10000, 'minimum': 1, 'description': 'Target height in pixels'}, 'out_dir': {'type': 'string', 'description': 'Not a directory here: every output comes back as its own download link valid for one hour. Any value is accepted and ignored'}, 'overwrite': {'type': 'boolean', 'description': 'Replace out_path if it already exists. Default false. Never allows an output to be one of the inputs'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['path', 'out_path'], 'properties': {'path': {'type': 'string', 'description': 'Name of an image uploaded with image_upload, or one this server wrote earlier'}, 'quality': {'type': 'integer', 'default': 80, 'maximum': 100, 'minimum': 1, 'description': 'JPEG quality 1-100, default 80'}, 'out_path': {'type': 'string', 'description': "Name for the file to write; it comes back as a download link valid for one hour. The extension decides the output format; without a known one the input's format is kept"}, 'max_bytes': {'type': 'integer', 'minimum': 1024, 'description': 'Largest the output may be, in bytes. The server searches JPEG quality down from `quality` until it fits and reports the quality it used. JPEG output only'}, 'max_width': {'type': 'integer', 'maximum': 10000, 'minimum': 1, 'description': 'Scale down so the width is at most this, keeping the aspect ratio. Never scales up'}, 'overwrite': {'type': 'boolean', 'description': 'Replace out_path if it already exists. Default false. Never allows an output to be one of the inputs'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['path', 'format', 'out_path'], 'properties': {'path': {'type': 'string', 'description': 'Name of an image uploaded with image_upload, or one this server wrote earlier'}, 'format': {'enum': ['png', 'jpeg', 'bmp', 'gif', 'tiff'], 'type': 'string', 'description': 'The output format'}, 'quality': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'JPEG quality 1-100, default 80. Ignored for the other formats'}, 'out_path': {'type': 'string', 'description': "Name for the file to write; it comes back as a download link valid for one hour. The extension decides the output format; without a known one the input's format is kept"}, 'overwrite': {'type': 'boolean', 'description': 'Replace out_path if it already exists. Default false. Never allows an output to be one of the inputs'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['path', 'x', 'y', 'width', 'height', 'out_path'], 'properties': {'x': {'type': 'integer', 'minimum': 0, 'description': 'Left edge of the crop, in pixels from the left of the image'}, 'y': {'type': 'integer', 'minimum': 0, 'description': 'Top edge of the crop, in pixels from the top of the image'}, 'path': {'type': 'string', 'description': 'Name of an image uploaded with image_upload, or one this server wrote earlier'}, 'width': {'type': 'integer', 'minimum': 1, 'description': 'Width of the crop in pixels'}, 'height': {'type': 'integer', 'minimum': 1, 'description': 'Height of the crop in pixels'}, 'out_path': {'type': 'string', 'description': "Name for the file to write; it comes back as a download link valid for one hour. The extension decides the output format; without a known one the input's format is kept"}, 'overwrite': {'type': 'boolean', 'description': 'Replace out_path if it already exists. Default false. Never allows an output to be one of the inputs'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name'], 'properties': {'name': {'type': 'string', 'maxLength': 70, 'minLength': 1}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['path'], 'properties': {'path': {'type': 'string', 'description': 'Name of an image uploaded with image_upload, or one this server wrote earlier'}, 'count': {'type': 'integer', 'default': 5, 'maximum': 16, 'minimum': 1, 'description': 'How many colours to report, default 5'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['path'], 'properties': {'path': {'type': 'string', 'description': 'Name of an image uploaded with image_upload, or one this server wrote earlier'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['path', 'out_path'], 'properties': {'fit': {'enum': ['inside', 'cover', 'exact'], 'type': 'string', 'default': 'inside', 'description': 'inside = fit within the box, cover = fill and crop, exact = stretch'}, 'path': {'type': 'string', 'description': 'Name of an image uploaded with image_upload, or one this server wrote earlier'}, 'width': {'type': 'integer', 'maximum': 10000, 'minimum': 1, 'description': 'Target width in pixels'}, 'height': {'type': 'integer', 'maximum': 10000, 'minimum': 1, 'description': 'Target height in pixels'}, 'out_path': {'type': 'string', 'description': "Name for the file to write; it comes back as a download link valid for one hour. The extension decides the output format; without a known one the input's format is kept"}, 'overwrite': {'type': 'boolean', 'description': 'Replace out_path if it already exists. Default false. Never allows an output to be one of the inputs'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['path', 'out_path'], 'properties': {'path': {'type': 'string', 'description': 'Name of an image uploaded with image_upload, or one this server wrote earlier'}, 'out_path': {'type': 'string', 'description': "Name for the file to write; it comes back as a download link valid for one hour. The extension decides the output format; without a known one the input's format is kept"}, 'overwrite': {'type': 'boolean', 'description': 'Replace out_path if it already exists. Default false. Never allows an output to be one of the inputs'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['paths', 'out_dir'], 'properties': {'size': {'type': 'integer', 'default': 256, 'maximum': 10000, 'minimum': 8, 'description': 'Longest side of the thumbnail in pixels, default 256'}, 'paths': {'type': 'array', 'items': {'type': 'string'}, 'minItems': 1, 'description': 'Names of images uploaded with image_upload'}, 'out_dir': {'type': 'string', 'description': 'Not a directory here: every output comes back as its own download link valid for one hour. Any value is accepted and ignored'}, 'overwrite': {'type': 'boolean', 'description': 'Replace out_path if it already exists. Default false. Never allows an output to be one of the inputs'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name'], 'properties': {'url': {'type': 'string', 'description': "url: fetch a public file instead of pasting base64 (recommended above about 10 KB). Public http(s) only; private, link-local and this endpoint's own zone are refused"}, 'name': {'type': 'string', 'maxLength': 70, 'minLength': 1, 'description': 'Name to refer to this image by: 1-64 characters of letters, digits, underscore or dash, e.g. "shot"'}, 'image_base64': {'type': 'string', 'description': 'The image file, base64-encoded'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['path', 'out_path'], 'properties': {'path': {'type': 'string', 'description': 'Name of an image uploaded with image_upload, or one this server wrote earlier'}, 'text': {'type': 'string', 'description': 'The watermark text. Default: the business name from the shared profile. Custom text is Pro'}, 'opacity': {'type': 'number', 'default': 0.5, 'maximum': 1, 'minimum': 0.05, 'description': '0.05 to 1, default 0.5'}, 'out_path': {'type': 'string', 'description': "Name for the file to write; it comes back as a download link valid for one hour. The extension decides the output format; without a known one the input's format is kept"}, 'position': {'enum': ['bottom-right', 'bottom-left', 'bottom-center', 'top-right', 'top-left', 'top-center', 'center'], 'type': 'string', 'default': 'bottom-right', 'description': 'Where to draw it'}, 'overwrite': {'type': 'boolean', 'description': 'Replace out_path if it already exists. Default false. Never allows an output to be one of the inputs'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['key'], 'properties': {'key': {'type': 'string', 'description': 'License key from checkout, MCPL1.<payload>.<signature>'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Recent tool changes
Similar MCP servers
GripForge
Generates, rigs, animates, analyzes, and packages game characters, weapons, armor, effects, environments, and engine-ready assets.
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.
Colour Memory
Provides historical color archive research, color analysis, accessibility checks, cultural context, and brand palette and asset g…
spriteship
Generates and manages 2D game characters, assets, animations, tilesets, UI packs, maps, and engine-ready exports for multiple gam…
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…