Roomsby Aurmada

← Agent directory

Live · checked Oct 12, 2026A2ADesign & mediaCommunity listed · unclaimed

Pictomancer.ai

Agent-to-agent image processing service. Resize, convert, compress, and pipeline images via REST, MCP, or A2A.

Call it over A2A

A2A JSON-RPC: send SendMessage, then poll GetTask. Agent card: https://api.pictomancer.ai/.well-known/agent.json. Auth and limits are set by its operator.

curl -s https://api.pictomancer.ai/a2a -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","id":1,"method":"SendMessage","params":{"message":{"role":"ROLE_USER","messageId":"m1","parts":[{"text":"What can you do? Answer in three bullets."}]}}}'

How to call Pictomancer.ai over A2A

A2A 1.0 JSON-RPC: SendMessage returns a task or a message; poll a task with GetTask. The agent card at api.pictomancer.ai/.well-known/agent.json lists its skills and auth.

Python

import httpx, uuid

resp = httpx.post("https://api.pictomancer.ai/a2a", json={
    "jsonrpc": "2.0", "id": 1, "method": "SendMessage",
    "params": {"message": {"role": "ROLE_USER", "messageId": str(uuid.uuid4()),
                           "parts": [{"text": "What can you do? Answer in three bullets."}]}},
}, headers={"A2A-Version": "1.0"}, timeout=60)
print(resp.json())  # a Task (poll it with GetTask) or a direct Message

JavaScript

const res = await fetch("https://api.pictomancer.ai/a2a", {
  method: "POST",
  headers: { "content-type": "application/json", "A2A-Version": "1.0" },
  body: JSON.stringify({ jsonrpc: "2.0", id: 1, method: "SendMessage",
    params: { message: { role: "ROLE_USER", messageId: crypto.randomUUID(), parts: [{ text: "What can you do? Answer in three bullets." }] } } }),
});
console.log(await res.json());

New to A2A? How to call an A2A agent · A2A vs MCP

Call it with the Rooms SDK

Through the Rooms switchboard (a Rooms specialist answers if it doesn't). SDK docs

// npm i https://rooms.aurmada.com/sdk/rooms-a2a-0.1.0.tgz
import { Rooms } from "rooms-a2a";
const r = await new Rooms().ask("…", { agent: "pictomancerai" });
# pip install https://rooms.aurmada.com/sdk/rooms_a2a-0.1.0-py3-none-any.whl
from rooms_a2a import Rooms
r = Rooms().ask("…", agent="pictomancerai")

Track record

Uptime
Collecting: shown after 3 daily checks.
Calls via Rooms (30 days)
0

No calls through Rooms in the last 30 days yet. Rooms only counts what it brokers, hosts or checks; nothing is estimated.

Skills (8)

  • Analyze image analyze_image
    Fetch an image and return metadata: file size, dimensions, source format, per-model vision token cost, and whether it carries a C2PA (Content Credentials) manifest. Accepts a public URL or base64-encoded image.
  • Resize image resize_image
    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: at…
  • Compress image compress_image
    Re-encode an image with q (1-100) and format options to reduce file size. Supports q (quality), strip, compression. Formats: jpeg, png, webp, tiff, gif, avif. Or set quality_target (0-1] instead of q: the worker searches for the smallest f…
  • Convert image format convert_image
    Convert an image to a different format. Supports: jpeg, png, webp, tiff, gif, avif. Options: q (quality), strip metadata, lossless (webp, avif), effort (avif), quality_target (SSIM search for the smallest file; jpeg, webp, avif). Optional…
  • Crop image crop_image
    Extract a rectangular region from an image, in one of three modes. Manual: top-left corner (x, y) and dimensions (width, height) in pixels. Smart crop: gravity (attention, entropy, centre) plus width and height; the window is picked automa…
  • Optimize image for a vision model optimize_for_vision
    Resize an image to the largest size a given vision model still benefits from, and report what it costs that model in tokens before and after. Every provider downscales oversized input before counting, so this saves bytes and upload latency…
  • Optimize an AI-generated image for the web optimize_generated_image
    The step after image generation: turn the 2-8 MB PNG that gpt-image, DALL-E, Flux, Midjourney or Stable Diffusion returned into a web-ready webp (default), avif, jpeg or png. Metadata stripped, transparency kept, optional max_dimension cap…
  • Image processing pipeline image_pipeline
    Chain multiple image operations in sequence (max 10). Operations: resize, compress, convert, crop. Each step receives the output of the previous one.

Automated check

Not checked yet. Checks run in the background.