{"name":"Pictomancer.ai","description":"Agent-to-agent image processing service. Resize, convert, compress, and pipeline images via REST, MCP, or A2A.","supportedInterfaces":[{"url":"https://api.pictomancer.ai/a2a","protocolBinding":"JSONRPC"},{"url":"https://api.pictomancer.ai","protocolBinding":"HTTP+JSON"},{"url":"https://api.pictomancer.ai/mcp","protocolBinding":"MCP"}],"version":"0.1.0","capabilities":{"streaming":false,"pushNotifications":false,"extendedAgentCard":true},"defaultInputModes":["application/json"],"defaultOutputModes":["application/json","image/jpeg","image/png","image/webp"],"skills":[{"id":"analyze_image","name":"Analyze image","description":"Fetch an image and return metadata (file size in bytes). Always free.","tags":["image","metadata","analyze","size"],"examples":["How big is this image? https://example.com/photo.jpg","Get the file size of this PNG"],"inputModes":["application/json"],"outputModes":["application/json"]},{"id":"resize_image","name":"Resize image","description":"Scale an image by a factor, or fill an exact box. Supports uniform scaling (scale) or independent axes (scale_x, scale_y). Or set width+height for fill mode: resize and smart-crop to those exact dimensions in one call (optional gravity).","tags":["image","resize","scale","dimensions","smart-crop","fill"],"examples":["Resize this image to half size: https://example.com/photo.jpg","Resize and fill a 400x400 box, smart-cropped: https://example.com/photo.jpg"],"inputModes":["application/json"],"outputModes":["image/jpeg","image/png","image/webp"]},{"id":"compress_image","name":"Compress image","description":"Re-encode an image with q (1-100) and format options to reduce file size. Or set quality_target (0-1] instead of q: SSIM search for the smallest file at or above the target (jpeg, webp, avif), outcome returned as a quality-report data artifact.","tags":["image","compress","optimize","quality","ssim"],"examples":["Compress this JPEG to q=60","Smallest webp with SSIM >= 0.95"],"inputModes":["application/json"],"outputModes":["image/jpeg","image/png","image/webp"]},{"id":"convert_image","name":"Convert image format","description":"Convert an image to a different format. Supports jpeg, png, webp, tiff, gif, avif. Accepts quality_target (0-1] as an SSIM-searched alternative to q (jpeg, webp, avif).","tags":["image","convert","format"],"examples":["Convert this PNG to WebP"],"inputModes":["application/json"],"outputModes":["image/jpeg","image/png","image/webp","image/tiff","image/gif","image/avif"]},{"id":"crop_image","name":"Crop image","description":"Extract a rectangular region from an image, in one of three modes: manual (x, y, width, height), smart crop (gravity + width + height), or trim (trim=true, removes a uniform background border; applied rect returned as a trim-report data artifact).","tags":["image","crop","cut","region","trim","smart-crop","gravity"],"examples":["Crop a 200x200 square at (10, 10)","Smart-crop this to 512x512, focused on the subject","Trim the white border off this scanned page"],"inputModes":["application/json"],"outputModes":["image/jpeg","image/png","image/webp"]},{"id":"optimize_for_vision","name":"Optimize image for a vision model","description":"Resize an image to the largest size a given vision model still benefits from, and report its token cost before and after. Providers cap oversized input themselves, so this saves bytes and upload latency; pass max_tokens to trade resolution for tokens.","tags":["image","vision","tokens","llm","resize","cost"],"examples":["Prepare this screenshot for claude-opus-5","Resize this photo for gpt-4o","Get this under 1500 tokens for claude-opus-5"],"inputModes":["application/json"],"outputModes":["image/jpeg","image/png","image/webp"]},{"id":"image_pipeline","name":"Image processing pipeline","description":"Chain multiple image operations in sequence (max 10).","tags":["image","pipeline","batch","chain"],"examples":["Resize to 50% then convert to WebP"],"inputModes":["application/json"],"outputModes":["image/jpeg","image/png","image/webp"]}],"additionalInterfaces":[{"transport":"HTTP+JSON","url":"https://api.pictomancer.ai"},{"transport":"MCP","url":"https://api.pictomancer.ai/mcp"}],"preferredTransport":"JSONRPC","protocolVersion":"0.3","supportsAuthenticatedExtendedCard":true,"url":"https://api.pictomancer.ai/a2a"}