Image generation MCP server: how Sume's generate_image works

Sume's hosted MCP server has a paid generate_image tool: a prompt in, a job id back in milliseconds, then jobs_wait and jobs_result for the images.

5 min readSume
All posts

An image generation MCP server gives an AI agent a tool that turns a text prompt, and optionally reference images, into image files, from any client that speaks MCP. Sume's hosted MCP server at https://mcp.sume.com/mcp has one, generate_image: a paid tool that routes to sume/auto unless you name a catalog model and answers with a job id, which the agent waits on with jobs_wait.

The contract comes from Sume's MCP overview, MCP tools and gates, Image API, and Jobs and results docs, read on 2026-09-28; details marked current come from the server's code. The basics page says hosted MCP still works but is not the primary path today: it fits an agent that already speaks remote MCP, while a backend calls POST /v1/images directly. The video counterpart is Video generation MCP server.

How do I connect an agent to it?

Add https://mcp.sume.com/mcp to your MCP client as a streamable HTTP server. Sume has no official connector for any client; this is a plain remote MCP connection. Under OAuth the default sign-in is read-only (mcp:read), and paid tools such as generate_image return insufficient_scope until you turn Write on at consent. An API key, sent as Authorization: Bearer $SUME_API_KEY or x-api-key, sees the full hosted tool set. Client setup is in Connect Claude Code, Cursor, or Codex to Sume and, for opencode.json, MCP server for OpenCode.

What does a generate_image call look like?

Paid tools take idempotency_key and payload, and in current code every generation field goes inside payload. This call only previews admission and cost; send it again with dry_run omitted or false to submit:

{
  "idempotency_key": "desk-mug-001",
  "dry_run": true,
  "max_spend_usd": 1,
  "payload": {
    "prompt": "a ceramic mug on a wooden desk, morning light",
    "aspect_ratio": "16:9"
  }
}

Which payload fields does generate_image take?

In current code the tool submits to POST /v1/images, so the fields follow that endpoint. Each model publishes what it accepts as capability descriptors, and a parameter the selected model doesn't list is rejected with 400 unsupported_parameter rather than dropped. image-models_list shows the catalog before you pin a model.

From Image API and the MCP overview, read 2026-09-28.
`payload` fieldWhat the docs say
promptRequired. Text description of the image
modelOmit to route to sume/auto, or send a catalog id from image-models_list
nUp to 10 images per call; per-model ceilings are lower
aspect_ratio, resolutionNormalized ratio (1:1, 16:9, 9:16, …) and tier (512, 1K, 2K, 4K); use "auto" on edits to match the reference
quality, output_formatauto to max (catalog-gated); png, jpeg, webp, or svg
input_referencesReference images for image-to-image, as public HTTPS URLs
seed, streamNot served: 400 unsupported_parameter and 400 streaming_not_supported

How does the agent get the finished images?

It waits, then reads. In current code, generate_image submits asynchronously by default and answers within milliseconds with a job id, and its description puts stills at typically 10 to 60 seconds, one or two waits.

  • jobs_wait holds at most 55 seconds per call and takes up to 20 job ids, so an agent that starts several stills waits on all of them in one call.
  • jobs_result then returns the job. Completed jobs can include artifacts, each with a media.sume.com URL, a type such as image, and a content_type.
  • The agent gets links, not image bytes: Sume returns hosted URLs rather than inline base64. Download the files you want to keep. MCP tool call timeouts on long-running video jobs covers the wait loop.

Is Sume's image generation MCP server free?

No. generate_image is a paid tool, and spend comes from the workspace wallet. Image generation billing is all-or-nothing, so a completed generation is billed in full and a failed or canceled one is not billed. For a catalog model, the endpoint pricing lines are what the wallet is charged, so cost_usd × n is what you pay.

  • dry_run=true gives an admission and cost preview and does not submit the job.
  • max_spend_usd caps a call, enforced only when you send it.
  • idempotency_key is a stable key for transport and deduplication, not a human approval. Reuse a key only to resend the same call with the same payload.

What doesn't Sume's image tool do?

  • Name the model behind sume/auto. Responses echo sume/auto, and Sume never discloses which family ran.
  • Return a transparent background. Its current tool description says transparent output isn't available on generate_image: generate the still, then run rmbg_create, which returns a PNG with alpha (MCP server for image editing).
  • Read files from your computer. Hosted MCP can't, so references must be public HTTPS URLs; localhost, private-network, and non-HTTPS URLs are rejected before submission.

Sources

Related posts

More in Agents

All Agents posts

Written by Sume