Resize images from URL -- custom width/height, format conversion (PNG/JPEG/WebP), aspect ratio preserved.
Single tool 'media_resize_image' has a well-structured schema with all required parameters typed and described. Description is comprehensive (380+ chars) and includes use cases and anti-patterns (what NOT to use it for). Input schema declares url (required), width, height, format with proper types and descriptions. However, output schema is only documented in the description text as a JSON example, not as a formal schema definition. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) present. Tool name uses verb_noun pattern correctly. Parameter descriptions are actionable and include format constraints.
Use this when you need to resize an image from a URL or convert its format. Returns the resized image as base64 with metadata in JSON. Returns: 1. image (base64-encoded data) 2. originalWidth and originalHeight 3. newWidth and newHeight 4. format (png/jpeg/webp) 5. fileSizeBytes. Example output: {"image":"iVBORw0KGgo...","originalWidth":1920,"originalHeight":1080,"newWidth":800,"newHeight":450,"format":"webp","fileSizeBytes":24500} Use this FOR creating thumbnails, optimizing images for web, preparing social media images, resizing for email templates, and batch image processing. Do NOT use for OCR text extraction -- use media_extract_text_from_image instead. Do NOT use for QR code generation -- use utility_generate_qr_code instead. Do NOT use for screenshots -- use capture_screenshot instead.
Output schema not formally documented in JSON Schema format. Only described as example JSON in description text. LLMs cannot reliably parse unstructured examples to infer response structure.
No tool annotations present. Tool is read-only (returns image data, no side effects) but lacks readOnlyHint annotation. This prevents clients from optimizing caching and retry logic.
Numeric parameters 'width' and 'height' lack min/max constraints. No guidance on valid pixel ranges. LLMs could pass absurd values (0, 999999) causing timeouts or memory exhaustion.
Format parameter description lists valid values as prose ('png, jpeg, or webp') rather than enum constraint. Should use JSON Schema enum to prevent hallucinated formats.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 64 | 2025-06-18+ | v2 |
No error handling guidance. Tool description does not explain what happens on invalid URL, network timeout, unsupported image format, or out-of-memory conditions. LLMs have no recovery path.