Skip to main content
Glama
qiniu

Qiniu MCP Server

Official
by qiniu

image_scale_by_size

Resizes images stored in Qiniu Cloud by specifying width or height while maintaining aspect ratio, returning a URL for direct access to the scaled image.

Instructions

Image scaling tool that resizes images based on a specified width or height and returns information about the scaled image. The information includes the object_url of the scaled image, which users can directly use for HTTP GET requests to retrieve the image content or open in a browser to view the file. The image must be stored in a Qiniu Cloud Bucket. Supported original image formats: psd, jpeg, png, gif, webp, tiff, bmp, avif, heic. Image width and height cannot exceed 30,000 pixels, and total pixels cannot exceed 150 million.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
object_urlYesThe URL of the image. This can be a URL obtained via the GetObjectURL tool or a URL generated by other Fop tools. Length Constraints: Minimum length of 1.
widthNoSpecifies the width for image scaling. The image will be scaled to the specified width, and the height will be adjusted proportionally.
heightNoSpecifies the height for image scaling. The image will be scaled to the specified height, and the width will be adjusted proportionally.

Implementation Reference

  • The core handler function for the image_scale_by_size tool. It takes object_url (required), optional width and height, constructs the Qiniu FOP string for thumbnail scaling, adds the processing function to the URL, and returns the new object_url.
    def image_scale_by_size( self, **kwargs ) -> list[types.TextContent]: object_url = kwargs.get("object_url", "") width = kwargs.get("width", "") height = kwargs.get("height", "") if object_url is None or len(object_url) == 0: return [types.TextContent(type="text", text="object_url is required")] func = f"{width}x{height}" if len(func) == 1: return [ types.TextContent( type="text", text="At least one width or height must be set" ) ] func = f"imageMogr2/thumbnail/{func}" object_url = utils.url_add_processing_func(auth=self.auth, url=object_url, func=func) return [ types.TextContent( type="text", text=str( { "object_url": object_url, } ), ) ]
  • Input schema for the image_scale_by_size tool, defining object_url as required string, and optional integer width/height with minimum 1, including descriptions.
    inputSchema={ "type": "object", "properties": { "object_url": { "type": "string", "description": _OBJECT_URL_DESC }, "width": { "type": "integer", "description": "Specifies the width for image scaling. The image will be scaled to the specified width, and the height will be adjusted proportionally.", "minimum": 1 }, "height": { "type": "integer", "description": "Specifies the height for image scaling. The image will be scaled to the specified height, and the width will be adjusted proportionally.", "minimum": 1 }, }, "required": ["object_url"] },
  • The register_tools function instantiates _ToolImpl and uses tools.auto_register_tools to register the image_scale_by_size handler along with other media processing tools.
    def register_tools(cfg: config.Config, cli: MediaProcessingService): tool_impl = _ToolImpl(cfg, cli) tools.auto_register_tools( [ tool_impl.image_scale_by_percent, tool_impl.image_scale_by_size, tool_impl.image_round_corner, tool_impl.image_info, ] )

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/qiniu/qiniu-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server