Skip to main content
Glama

Server Details

Generate, edit and upscale images with references, batch jobs, cost previews and original downloads.

Ownership verified
Status
Healthy
Uptime
99.3% over 21 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
ChatGPT
–
Claude
–

TDQS

A4.1/5.0

Scored across 12 tools

Disambiguation4/5

The image-operation tools (generate_image, derive_image, upscale_image) are explicitly scoped against each other, and generation_status vs. wait_images is clarified. However, some adjacent tools such as account, spending_policy, and list_models still require careful reading to avoid momentary misselection.

Naming Consistency3/5

All names use snake_case, but the set mixes verb_noun names (generate_image, list_models, wait_images) with noun-only names (account, prompts, help, spending_policy). The pattern is still readable, but it is not a consistent verb_noun convention.

Tool Count5/5

Twelve tools is well within the appropriate range for an image-generation platform with supporting billing, policy, prompt, and delivery functions. Each listed tool maps to a distinct capability or workflow stage.

Completeness3/5

Core single-image workflows are covered: generation, derivation, upscaling, status, waiting, model listing, billing, and policy. The notable gap is batch_generate, which is referenced repeatedly in multiple tool descriptions as the correct tool for multiple jobs or edits but is absent from the tool list.

Available Tools

12 tools
accountA
Read-onlyIdempotent
Inspect

Read personal balance/access (summary) or paginated billing (usage), not spending authorization. Returns action plus summary or usage (items, page, pageSize, total, hasMore); increment page only while hasMore. Use spending_policy for automatic-spending limits and list_models for model prices.

NameRequiredDescriptionDefault
toNoUsage end, RFC3339 or YYYY-MM-DD.
fromNoInclusive usage start, RFC3339 or YYYY-MM-DD.
pageNoUsage page, starting at 1.
typeNoOptional credit-log type, e.g. mcp_call or ai_refund.
actionNoRead account summary or paginated billing; defaults to the permitted action.
pageSizeNoUsage rows per page; default 5, maximum 20.

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint, so safety is covered; the description adds genuinely new behavior beyond that—the return shape (action plus summary or usage fields) and the pagination rule 'increment page only while hasMore'. It stops short of disclosing auth/permission requirements or rate limits, but the pagination and return contract are meaningful additions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three dense sentences with zero filler: purpose and scope first, then return/pagination contract, then alternative routing. Front-loaded and every clause carries information an agent needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, yet the description enumerates the return fields (items, page, pageSize, total, hasMore) and the iteration rule. All six parameters are schema-documented, and the alternatives are named, leaving nothing critical missing for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description nevertheless adds semantics the schema lacks—the conditional pagination rule tied to hasMore and the notion of a default/permitted action value. This goes slightly past restating schema fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (read) and resource (personal balance/access or paginated billing) and immediately scopes it with 'not spending authorization', which separates it from the financially-adjacent sibling spending_policy. An agent can identify the tool's function without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes the agent: 'Use spending_policy for automatic-spending limits and list_models for model prices,' and clarifies the tool is not for spending authorization. It also notes the action defaults to 'the permitted action', covering the no-arg case.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

derive_imageA
DestructiveIdempotent
Inspect

Edit one source from referenceImages or parentTaskId; select parentImageIndex for a multi-image parent. Prompt provenance alone is not an image. Use generate_image without a source, upscale_image for dedicated processing, and batch_generate for multiple edits. Preview returns requestId and cost/readiness in preview; auto/run reuse that receipt. Run requires approval. Execution returns task/status or nextAction; resume the original receipt after interruption.

NameRequiredDescriptionDefault
sizeNoGPT: pixel size e.g. 3840x2160. Others: list_models sizes.
countNoImage count; default 1, maximum 16. Zero retains the legacy default.
modelNoPublic image model ID from list_models; omit for the configured recommendation.
actionYespreview freezes inputs and quotes cost; auto checks saved spending authorization; run requires explicit user approval.
promptNoImage instructions; required for a fresh preview.
qualityNoGPT: auto (default), low, medium, high; 2.5 Sunburst/Flare also xhigh, max; affects the quote. Others: list_models qualities.
promptIdNoOptional source prompt provenance; does not supply an original image.
requestIdNoOriginal preview receipt for auto/run; reuse it after interruption, without re-previewing.
deliveryModeNonative returns previews and original links; links returns original links; metadata omits image delivery.
outputFormatNoOriginal image format; default png.
parentTaskIdNoCompleted owned task supplying the original image; alternative to referenceImages.
thinkingLevelNoGemini reasoning level; supported values and price multipliers come from list_models.
derivationTypeNoLineage label, e.g. variant, edit, change-model or change-size.
promptExampleIdNoOptional source example provenance; does not supply an original image.
referenceImagesNoUp to 8 source images; preview freezes their bytes. Use derive_image for editing.
parentImageIndexNoZero-based source image index; required when the parent has multiple images.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and idempotentHint=true, and the description adds valuable workflow behavior: preview freezes inputs and quotes cost, auto/run reuse the preview receipt, run requires approval, and interrupted executions can resume from the original receipt. It does not spell out exactly what is destructive or how the original source is preserved, which keeps it below a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but front-loads the core purpose and then moves through alternatives and workflow details. It is appropriately sized for a complex 16-parameter tool, though the semicolon-heavy style and the phrase 'in preview' make it slightly harder to parse than necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex editing tool with no output schema, the description covers the essential execution model: preview produces a requestId with cost/readiness, run requires approval, and execution returns task/status or nextAction. It is close to complete, though it could say more about what destructive editing means and what the original source guarantees are.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all 16 parameters, including action, requestId, referenceImages, and parentImageIndex. The description reinforces the key source and preview-receipt semantics, but mostly repeats what the schema says rather than adding new syntax or format details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: editing one image from either referenceImages or parentTaskId. It also immediately distinguishes this from generate_image, upscale_image, and batch_generate, so an agent can identify the tool's role without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit routing guidance: use generate_image when there is no source, upscale_image for dedicated processing, and batch_generate for multiple edits. It also clarifies source selection between referenceImages and parentTaskId, including parentImageIndex for multi-image parents.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_imageA
DestructiveIdempotent
Inspect

Create one image without a source; use derive_image for source-guided edits, upscale_image for dedicated processing, or batch_generate for multiple jobs. Preview returns requestId and preview (parameters, readiness, expiry, estimatedChargePoints); auto/run reuse that ID. Run requires user approval. Execution returns task/status and possibly nextAction; resume it after interruption, never resubmit. Retry a failed task with preview retryTaskId only.

NameRequiredDescriptionDefault
sizeNoGPT: pixel size e.g. 3840x2160. Others: list_models sizes.
countNoImage count; default 1, maximum 16. Zero retains the legacy default.
modelNoPublic image model ID from list_models; omit for the configured recommendation.
actionYespreview freezes inputs and quotes cost; auto checks saved spending authorization; run requires explicit user approval.
promptNoImage instructions; required for a fresh preview.
qualityNoGPT: auto (default), low, medium, high; 2.5 Sunburst/Flare also xhigh, max; affects the quote. Others: list_models qualities.
requestIdNoOriginal preview receipt for auto/run; reuse it after interruption, without re-previewing.
retryTaskIdNoFailed task ID; preview only, without replacement image parameters.
deliveryModeNonative returns previews and original links; links returns original links; metadata omits image delivery.
outputFormatNoOriginal image format; default png.
thinkingLevelNoGemini reasoning level; supported values and price multipliers come from list_models.
referenceImagesNoUp to 8 source images; preview freezes their bytes. Use derive_image for editing.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare non-read-only, idempotent, and destructive behavior. The description adds meaningful context beyond them: previews quote estimatedChargePoints, run requires user approval, interrupted tasks should be resumed rather than resubmitted, and failed tasks are retried only through retryTaskId.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but front-loaded with purpose and alternatives before the workflow details. Every sentence adds operational value for a complex 12-parameter tool, with no redundant filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex generation tool with no output schema, the description covers the main lifecycle, return signals, approval, and retry semantics well. It could more explicitly mention generation_status or wait_images for polling, but the essential calling behavior is complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already documents action, requestId, retryTaskId, and most parameters in detail. The description reinforces the requestId/retry workflow but adds little parameter meaning beyond the schema and does not discuss many fields such as size, count, model, or quality.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb, resource, and scope: 'Create one image without a source.' It immediately distinguishes the tool from derive_image, upscale_image, and batch_generate, so an agent can identify the correct sibling without inspecting schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit routing guidance for source-guided edits, dedicated processing, and multiple jobs. It also explains the preview/auto/run lifecycle, approval requirement, interruption resume behavior, and retry path, leaving little to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generation_statusA
DestructiveIdempotent
Inspect

Read or cancel one owned taskId. Returns that task: taskId, status, and images or error/settlement when present. Use wait_images for bounded waiting and image pagination; do not repeatedly poll get. Use batch_generate for several generation jobs, not this tool. Cancellation does not authorize a paid retry.

NameRequiredDescriptionDefault
actionNoget reads one task; cancel stops that task. Default get; use wait_images to await image delivery.
taskIdYesOwned task ID returned by generation; not a requestId or batchId.

Output Schema

NameRequiredDescription
errorNo
imagesNo
noticeNo
statusYesCurrent task state, including running and terminal success, failure or cancellation.
taskIdYesExisting owned task ID.
timingNo
failureNo
lineageNo
generationNo
settlementNo
failedImagesNo
imageProgressNo
deliveryStatusNo
outputContractNo
cancelRequestedNo

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and idempotentHint=true, so the bar is lower. The description still adds real context: cancellation does not authorize a paid retry, and repeated polling is discouraged — non-obvious consequences the annotations do not convey. It stops short of describing rate limits or exactly what cancellation destroys on an in-flight task.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Every sentence earns its place: purpose and return shape first, then routing to wait_images, then the polling prohibition, then the cancellation caveat. No filler and no repetition of schema detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values needn't be fully spelled out, and the description still summarizes the key ones (status, images, error/settlement). Routing and cancellation caveats are covered; only ownership/auth expectations are left implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, including an enum on action and a note distinguishing taskId from requestId/batchId, so the schema already carries the semantics. The description only reinforces the 'owned, single task' scoping; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb set (read/cancel) and resource (one owned taskId), plus the exact return payload. It explicitly names the sibling tools it is not (wait_images, batch_generate), so an agent can route without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit alternatives and conditions: wait_images for bounded waiting and image pagination, batch_generate for multiple jobs, and an explicit 'do not repeatedly poll get' prohibition. This is a complete when/when-not map.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

helpA
Read-onlyIdempotent
Inspect

Read capability or troubleshooting guidance when needed; generation does not require this call. Returns topic, summary, capabilities or steps, docsUrl and version metadata. Use list_models for current model prices, account for personal access, and spending_policy for automatic-spending authorization.

NameRequiredDescriptionDefault
topicNoHelp topic; omit for the capability matrix.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint, so safety is covered. The description adds real value by disclosing the return shape (topic, summary, capabilities or steps, docsUrl, version metadata), which matters because no output schema exists, and by stating the call is optional. It stops short of describing size/limits of the capability matrix, so not a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, all load-bearing, with the optionality caveat and return shape front-loaded. The final routing sentence is slightly compressed ('account for personal access') but still parses correctly, costing little.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description correctly compensates by enumerating the returned fields, and it covers the optional-use case and sibling routing. For a single-enum-parameter read tool this is essentially complete; only finer detail about the capability matrix itself is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the enum description already covers 'omit for the capability matrix', so the baseline is 3. The description adds topic-selection guidance beyond the schema by implying which subject areas belong to other tools (prices, account, spending), helping an agent pick a topic rather than guessing.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: reading capability or troubleshooting guidance, and immediately scopes it as optional ('generation does not require this call'). It also names the sibling tools that own adjacent needs (list_models, account, spending_policy), so an agent can distinguish it from them without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly gives the when-not condition ('generation does not require this call') and routes three concrete needs to alternatives: model prices to list_models, personal access to account, automatic-spending authorization to spending_policy. This is close to a complete routing table for the help/account/billing cluster.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_modelsA
Read-onlyIdempotent
Inspect

List models, parameters and prices. With models:read, returns account models, processingOperations, visibleCount, callableCount, mcpEnabled and publicCatalog. Existing models[].pricing keeps its rounded-up maximum-charge display; exact public selling prices are in publicCatalog.models[].offers[].pricing. Preview confirms final charges. Anonymous or missing-scope access returns only public data, without evaluating account access. Use account for balance and spending_policy for limits.

NameRequiredDescriptionDefault
includeUnavailableNoWith models:read, false (default) lists callable account models; true also includes unavailable public models. Anonymous or missing-scope requests return only public catalog data; neither value grants access.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark this as read-only and idempotent, but the description adds substantial behavioral detail: scope-dependent return fields, anonymous/missing-scope behavior, pricing display differences, and the role of Preview in confirming final charges. This is unusually transparent for a read-only listing tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening sentence is front-loaded and every subsequent sentence carries useful information about access, return fields, or pricing. It is somewhat dense and run-on, but not padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description must carry return-value context, and it does: it names the relevant fields and explains the publicCatalog pricing nuance. For a one-parameter read-only listing tool with annotations, this is complete enough for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the single includeUnavailable parameter is already fully documented in the schema. The description does not add meaning beyond that schema detail, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: "List models, parameters and prices." It also distinguishes the tool from siblings by explicitly pointing to account for balance and spending_policy for limits.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear usage context by explaining authenticated vs anonymous behavior and naming account and spending_policy as alternatives for related but different needs. It does not explicitly state when not to use this tool beyond those alternative routes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

promptsA
Read-onlyIdempotent
Inspect

Read public prompts without an MCP Token, model call or credit charge. search (default) queries published, reviewed system recommendations; get reads a currently public detail by the id returned from search. scope must be omitted or recommended; mine, favorites and private data remain authenticated. Returns scope, accountAuthorization=not_evaluated, action and list (items/pagination) or item (original text/public link). Never generates, syncs, evaluates or rewrites prompts.

NameRequiredDescriptionDefault
idNoPrompt ID returned by search; required for get.
pageNoSearch page, starting at 1.
tagsNoOptional tag filters.
groupNoOptional group filter.
scopeNoRecommended public cases or this authenticated user's own prompts.
actionNosearch lists cases; get reads one full prompt. Default search.
keywordNoOptional search text.
categoryNoOptional category filter.
pageSizeNoResults per page; default 5, maximum 20.

Output Schema

NameRequiredDescription
itemNo
listNo
scopeYes
actionYes
accountAuthorizationYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint/idempotentHint; the description adds that no MCP Token, model call, or credit charge is involved, that authenticated scopes are excluded, and that responses carry scope, accountAuthorization=not_evaluated, action, and either list or item. Those auth and cost disclosures go meaningfully beyond the structured annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dense and front-loaded: cost/auth exemption first, then the search/get distinction, then scope limits, then return shape and exclusions. Some return-field detail duplicates the output schema, which is mild redundancy, but no sentence is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema exists, the description need not spell out return fields, yet it does so briefly while still covering auth, cost, scope restrictions, and the search/get split. Nothing essential for correct invocation is missing; only the non-scope filters go undescribed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description still adds value by clarifying the omission-or-recommended constraint on scope, the id linkage to search results, and how action drives list vs item output. It doesn't document pagination or filter params (tags, group, category, keyword), so it stops short of a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (read public prompts) with two named modes, search (default) and get, and defines exactly what search returns (published, reviewed system recommendations) versus get (one public detail by id). An agent can distinguish this read-only prompt library from mutation-oriented siblings like generate_image or reverse_prompt without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states search is the default, that get requires an id returned from search, that scope must be omitted or set to recommended, and that mine/favorites/private remain authenticated and out of scope. It also names what the tool will never do (generate, sync, evaluate, rewrite), which is a clear when-not-to-use boundary.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

report_image_deliveryA
Idempotent
Inspect

核验原图下载失败。使用原 taskId 和 imageIndex;服务端只核验自己签发的有效链接,明确 403/404/410 才按对应图片原扣款幂等补偿。超时、临时故障、正常过期、主动删除和本地保存失败不自动退款。不会重新生成。结果区分 reachable、unconfirmed、refund_pending、refunded;退款金额见 settlement。

NameRequiredDescriptionDefault
taskIdYesOriginal task ID from the image metadata; never submit a new generation
resultIdNoOriginal stable result ID when available
imageIndexYesZero-based image index from inkroom/image metadata

Output Schema

NameRequiredDescription
statusYes
taskIdYes
artifactNo
evidenceYes
imageIndexYes
settlementNo

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only flag idempotency and non-destructiveness; the description adds the real behavioural payload — this is an idempotent refund/compensation path, not a regeneration, and the refund trigger set is precisely bounded by HTTP status codes. The enumerated result states (reachable, unconfirmed, refund_pending, refunded) and the pointer to settlement for amounts give the agent the side effects it must anticipate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the purpose in four characters, then layers conditions, exclusions, and outcomes in dense semicolon-delimited clauses; essentially every clause carries new information. Slightly dense for skim-reading, but no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be spelled out, yet the description still names the status vocabulary and where refund amounts live, so the agent knows what to expect. Combined with the explicit refund/exclusion rules, nothing material is missing for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so taskId/resultId/imageIndex are already fully documented in the schema. The description only restates that the original taskId and imageIndex must be reused, adding marginal meaning (no new-generation taskId) beyond the schema's own wording.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: verify/report that the original image download failed, with the exact identifiers to supply. It is clearly distinguishable from generate/derive/upscale siblings, though it never explicitly contrasts itself with the closest neighbour, generation_status, which an agent might otherwise reach for.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit inclusion criteria (only server-issued links, only explicit 403/404/410) and an explicit exclusion list (timeouts, transient failures, normal expiry, manual deletion, local save failures do not auto-refund), plus the instruction not to submit a new generation. That is a full when/when-not contract.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reverse_promptImage | Reverse promptA
DestructiveIdempotent
Inspect

Reconstruct Chinese/English generation prompts, negative terms and visual anchors from one image. Same MCP Key. Administrator-configured model and per-image price; default 2 credits. Free preview(image:URL/data URL) freezes bytes and quote. auto/run/get accept only the original requestId; auto obeys spending policy, run needs explicit approval. running means background analysis: wait briefly, then follow nextAction to get the original receipt for free, without restarting analysis. No automatic image generation; use generate_image with a separate quote to validate.

NameRequiredDescriptionDefault
imageNoOne public image URL or image data URL. The standalone client also accepts a local file.
actionYespreview freezes one image and quotes analysis; auto checks authorization; run requires approval; get resumes the original receipt for free.
requestIdNoOriginal analysis receipt; auto/run/get only. Reuse after interruption without a new analysis.

Output Schema

NameRequiredDescription
actionYes
resultNo
statusYes
previewNo
requestIdNo
nextActionNo
authorizationNo

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnly=false, idempotent=true, destructive=true; the description adds cost and authorization behavior (administrator-configured model, per-image price, default 2 credits), spending-policy vs approval semantics, and the fact that 'running' means background analysis where the agent should wait and follow nextAction to retrieve a free receipt without restarting. That is substantial behavior beyond the structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose, then the cost/approval model, then the workflow and the sibling redirect. Dense and information-rich, though the middle sentences are packed close together and would read better as separated clauses.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a four-action paid tool with an output schema, the description covers pricing, approval, resumption, and the background-running state machine — including the nextAction follow-up — so nothing an agent needs to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline would be 3, but the description adds real meaning: auto/run/get accept only the original requestId, and requestId reuse avoids a new analysis. The action enum's intent is reinforced rather than merely repeated.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — reconstructing Chinese/English generation prompts, negative terms and visual anchors from one image — which is unambiguous and clearly distinct from sibling tools like generate_image or derive_image. It also explicitly marks its boundary against generation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives per-action guidance (preview freezes and quotes, auto obeys spending policy, run needs explicit approval, get resumes a receipt for free) and states an exclusion plus alternative: 'No automatic image generation; use generate_image with a separate quote to validate.' An agent knows both when to use each action and when to route elsewhere.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

spending_policyApproval | Spending limitsA
Destructive
Inspect

Read account-wide authorization or update only with explicit user consent. 1 credit=USD 0.01. New accounts default to unlimited automatic execution; users can set task/5h/day/week limits, with suggested values 50/500/1000/5000. Existing saved policies remain unchanged. Wallet balance, token hard caps and permissions still apply. Never raise autonomously. action=get reads without other arguments; action=update requires the complete policy (including unlimited and its latest revision) and confirmed:true after explicit consent. Keep allowance and reset/recovery countdown in the same table, not separate prose. Used includes reservations; never subtract twice.

NameRequiredDescriptionDefault
actionYesget reads the policy without other parameters; update requires the complete policy with its latest revision and confirmed:true after explicit user approval. An explicit empty action retains legacy get behavior.
policyNoComplete replacement policy from the latest get result; never raise limits autonomously
confirmedNotrue only after the user explicitly approves this policy update

Output Schema

NameRequiredDescription
asOfNo
policyYes
windowsNo
timezoneYes
usdPerPointYes
dayUsedMillisYes
reservedMillisYes
weekUsedMillisYes
fiveHourUsedMillisYes

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds substantial behavioral context beyond annotations: explicit consent requirements, default unlimited behavior for new accounts, suggested limit values, preservation of existing policies, interaction with wallet balance/token caps/permissions, revision staleness, and reservation accounting. This is rich disclosure for a destructive update-capable tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core read/update distinction, but it is a dense paragraph with multiple operational clauses. Some sentences, such as table-formatting and reservation-counting instructions, are tangential to invoking the tool and reduce conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the destructive-update nature, rich annotations, full schema coverage, and an output schema, the description provides enough context for correct invocation. It covers consent, defaults, revision handling, and constraints that an agent needs before calling this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents action, policy, and confirmed in detail. The description reinforces key semantics such as complete policy replacement, including unlimited and latest revision, but largely duplicates schema-level guidance rather than adding new parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific read/update purpose for an account-wide spending policy, with action=get and action=update behavior made explicit. It distinguishes the two modes and names the policy object, though the opening phrase 'account-wide authorization' is slightly less direct than 'spending policy'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear usage conditions: get reads without other arguments, update requires the complete policy and confirmed:true, and updates must only occur after explicit user consent. It also explicitly forbids autonomous limit increases, which is a strong when-not-to-use rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

upscale_imageA
DestructiveIdempotent
Inspect

Apply x2/x4/anime/face to one image; use derive_image for general edits and generate_image for new images. Preview returns requestId and cost/readiness in preview; auto/run reuse that receipt. Run requires approval. Execution returns task/status and possibly nextAction; recover the original receipt instead of generating again.

NameRequiredDescriptionDefault
imageNoOne public image URL or image data URL; preview only.
actionYespreview quotes one image; auto checks saved authorization; run requires user approval.
operationNoDedicated processing operation; default x2. Use derive_image for general editing.
requestIdNoOriginal preview receipt; auto/run only, without new image inputs.
deliveryModeNonative returns previews and original links; links returns original links; metadata omits image delivery.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare destructiveHint=true and idempotentHint=true, and the description adds genuinely non-structured behavior: run requires user approval, preview produces a requestId/cost/readiness receipt that auto/run reuse, and execution returns task/status and possibly nextAction. It does not explain why the operation is flagged destructive or what the approval/rate-limit flow looks like, so it falls just short of full disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose and alternatives, then a compact workflow clause. It is information-dense with no filler, though the telegraphic 'receipt' phrasing and run-on clauses require careful reading.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-parameter tool with one required param, no output schema and a destructive annotation, the description covers inputs, execution flow, approval gating, and even return fields (task/status, nextAction). What it omits is the specific consequence behind the destructiveHint and any failure/recovery modes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (baseline 3), but the description adds operational meaning the schema lacks: requestId is a reusable preview receipt rather than a fresh input ('auto/run only, without new image inputs'), and action semantics tie into the preview/approval lifecycle. This is real value beyond the enum descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a concrete verb plus resource and enumerated operations ('Apply x2/x4/anime/face to one image'), immediately distinguishing it from sibling tools. An agent can tell this is the dedicated upscaling tool without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes to alternatives: 'use derive_image for general edits and generate_image for new images.' It also explains the preview/auto/run lifecycle and that run requires approval, so the when-to-use decision is fully specified.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wait_imagesA
Read-onlyIdempotent
Inspect

Await existing requestId, batchId or taskIds; never submit new generation. Wait defaults to 24 seconds, maximum 45; native pages deliver 6 previews, links pages 32 originals. Returns status, complete, tasks, counts, pendingTaskIds, resultManifest and nextAction when continuation is needed. Display ready images, then call nextAction.tool with its exact arguments/cursor. Pending is not failure; report actual failed tasks with error/settlement. For one-task cancellation use generation_status. When the wait expires, return the latest snapshot with complete=false while work or delivery remains; resume nextAction without regenerating. Failed tasks remain in tasks with error/failure and settlement. Invalid or unauthorized lookups return a tool error, not a new task.

NameRequiredDescriptionDefault
cursorNoOpaque nextAction continuation cursor; copy unchanged. Omit only to replay already delivered images.
batchIdNoOriginal batch receipt; choose exactly one of batchId, requestId or taskIds.
taskIdsNoExplicit task IDs; alternative to batchId or requestId.
requestIdNoOriginal single-image preview receipt; alternative to batchId or taskIds.
deliveryModeNonative returns previews and original links; links returns original links; metadata omits image delivery.
timeoutSecondsNoBounded server wait; default 24 seconds, maximum 45. A pending response is not a failed task.

Output Schema

NameRequiredDescription
tasksYes
failedYes
statusYes
batchIdNo
completeYes
failuresNo
requestIdNo
succeededYes
nextActionNo
settlementNo
deliveryModeNonative returns previews and original links; links returns original links; metadata omits image delivery.
imageProgressYes
acceptedImagesNo
pendingTaskIdsNo
resultManifestNo
requestedImagesNo
unsubmittedImagesNo
submissionCompleteYes
readyImagesRemainingNo

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Despite annotations already marking it read-only and idempotent, the description adds substantial behavioral detail: timeout bounds, delivery-mode preview counts, pending versus failed semantics, expiration snapshots, continuation behavior, and tool-error behavior for invalid or unauthorized lookups.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose and timeout facts are front-loaded, but the paragraph is dense and repeats failure semantics: pending is not failure, failed tasks carry error/settlement, and failed tasks remain with error/failure and settlement. Some tightening would improve it.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex wait/continuation tool, the description covers the important operational cases: bounded waiting, continuation via nextAction, pending versus failed states, expiration behavior, and invalid lookup errors. An output schema exists, so return-field enumeration is supplementary rather than necessary.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description still adds meaning beyond the schema by explaining delivery-mode differences such as 6 native previews versus 32 original links, and by framing cursor as a nextAction continuation value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: wait for existing requestId, batchId, or taskIds, and explicitly says it never submits a new generation. It distinguishes the tool from generation and cancellation siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly directs the agent to await existing receipts and not submit new generation, and it names generation_status for one-task cancellation. However, it does not fully explain when to choose wait_images versus generation_status beyond the cancellation case.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updates
    • Changedderive_image2 fields changed
      • changedInput schema / properties / quality / description
        Previous value: -"Supported quality tier from list_models; affects the quote."New value: +"GPT: auto (default), low, medium, high; 2.5 Sunburst/Flare also xhigh, max; affects the quote. Others: list_models qualities."
      • changedInput schema / properties / size / description
        Previous value: -"Supported aspect ratio from list_models, e.g. 1:1."New value: +"GPT: pixel size e.g. 3840x2160. Others: list_models sizes."
    • Changedgenerate_image2 fields changed
      • changedInput schema / properties / quality / description
        Previous value: -"Supported quality tier from list_models; affects the quote."New value: +"GPT: auto (default), low, medium, high; 2.5 Sunburst/Flare also xhigh, max; affects the quote. Others: list_models qualities."
      • changedInput schema / properties / size / description
        Previous value: -"Supported aspect ratio from list_models, e.g. 1:1."New value: +"GPT: pixel size e.g. 3840x2160. Others: list_models sizes."
  2. 4 tool updates
    • Changedgeneration_status1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "cancelRequested": {
        +      "type": "boolean"
        +    },
        +    "deliveryStatus": {
        +      "type": "string"
        +    },
        +    "error": {
        +      "type": "string"
        +    },
        +    "failedImages": {
        +      "items": {
        +        "properties": {
        +          "error": {
        +            "type": "string"
        +          },
        +          "failure": {
        +            "properties": {
        +              "code": {
        +                "type": "string"
        +              },
        +              "nextAction": {
        +                "type": "string"
        +              },
        +              "retryable": {
        +                "type": "boolean"
        +              }
        +            },
        +            "required": [
        +              "code",
        +              "retryable",
        +              "nextAction"
        +            ],
        +            "type": "object"
        +          },
        +          "index": {
        +            "type": "integer"
        +          },
        +          "settlement": {
        +            "properties": {
        +              "chargedPoints": {
        +                "minimum": 0,
        +                "type": "number"
        +              },
        +              "estimatedMaxPoints": {
        +                "minimum": 0,
        +                "type": "number"
        +              },
        +              "netChargedPoints": {
        +                "minimum": 0,
        +                "type": "number"
        +              },
        +              "quotedMaxPoints": {
        +                "minimum": 0,
        +                "type": "number"
        +              },
        +              "refundedPoints": {
        +                "minimum": 0,
        +                "type": "number"
        +              },
        +              "status": {
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "status"
        +            ],
        +            "type": "object"
        +          }
        +        },
        +        "required": [
        +          "index",
        +          "error"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "failure": {
        +      "properties": {
        +        "code": {
        +          "type": "string"
        +        },
        +        "nextAction": {
        +          "type": "string"
        +        },
        +        "retryable": {
        +          "type": "boolean"
        +        }
        +      },
        +      "required": [
        +        "code",
        +        "retryable",
        +        "nextAction"
        +      ],
        +      "type": "object"
        +    },
        +    "generation": {
        +      "type": "object"
        +    },
        +    "imageProgress": {
        +      "properties": {
        +        "failed": {
        +          "type": "integer"
        +        },
        +        "pending": {
        +          "type": "integer"
        +        },
        +        "ready": {
        +          "type": "integer"
        +        },
        +        "total": {
        +          "type": "integer"
        +        }
        +      },
        +      "required": [
        +        "total",
        +        "ready",
        +        "failed",
        +        "pending"
        +      ],
        +      "type": "object"
        +    },
        +    "images": {
        +      "items": {
        +        "properties": {
        +          "deliveryStatus": {
        +            "type": "string"
        +          },
        +          "expired": {
        +            "type": "boolean"
        +          },
        +          "expiresAt": {
        +            "type": "string"
        +          },
        +          "height": {
        +            "type": "integer"
        +          },
        +          "index": {
        +            "type": "integer"
        +          },
        +          "linkExpiresAt": {
        +            "type": "string"
        +          },
        +          "mimeType": {
        +            "type": "string"
        +          },
        +          "retainedUntil": {
        +            "type": "string"
        +          },
        +          "revisedPrompt": {
        +            "type": "string"
        +          },
        +          "width": {
        +            "type": "integer"
        +          }
        +        },
        +        "required": [
        +          "index"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "lineage": {
        +      "type": "object"
        +    },
        +    "notice": {
        +      "type": "string"
        +    },
        +    "outputContract": {
        +      "type": "object"
        +    },
        +    "settlement": {
        +      "properties": {
        +        "chargedPoints": {
        +          "minimum": 0,
        +          "type": "number"
        +        },
        +        "estimatedMaxPoints": {
        +          "minimum": 0,
        +          "type": "number"
        +        },
        +        "netChargedPoints": {
        +          "minimum": 0,
        +          "type": "number"
        +        },
        +        "quotedMaxPoints": {
        +          "minimum": 0,
        +          "type": "number"
        +        },
        +        "refundedPoints": {
        +          "minimum": 0,
        +          "type": "number"
        +        },
        +        "status": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "status"
        +      ],
        +      "type": "object"
        +    },
        +    "status": {
        +      "description": "Current task state, including running and terminal success, failure or cancellation.",
        +      "type": "string"
        +    },
        +    "taskId": {
        +      "description": "Existing owned task ID.",
        +      "type": "string"
        +    },
        +    "timing": {
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "taskId",
        +    "status"
        +  ],
        +  "type": "object"
        +}
    • Changedlist_models1 field changed
      • changedInput schema / properties / includeUnavailable / description
        Previous value: -"With a Token, also show public models blocked for that account; anonymous results never evaluate account access."New value: +"With models:read, false (default) lists callable account models; true also includes unavailable public models. Anonymous or missing-scope requests return only public catalog data; neither value grants access."
    • Changedspending_policy2 fields changed
      • addedInput schema / properties / action / anyOf
        Added value: +[
        +  {
        +    "enum": [
        +      "get",
        +      "update"
        +    ],
        +    "type": "string"
        +  },
        +  {
        +    "const": "",
        +    "description": "Legacy empty action is treated as get; new clients should send get explicitly."
        +  }
        +]
      • changedInput schema / properties / action / description
        Previous value: -"get reads account-wide spending authorization; update requires explicit user approval"New value: +"get reads the policy without other parameters; update requires the complete policy with its latest revision and confirmed:true after explicit user approval. An explicit empty action retains legacy get behavior."
    • Changedwait_images1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "acceptedImages": {
        +      "type": "integer"
        +    },
        +    "batchId": {
        +      "type": "string"
        +    },
        +    "complete": {
        +      "type": "boolean"
        +    },
        +    "deliveryMode": {
        +      "description": "native returns previews and original links; links returns original links; metadata omits image delivery.",
        +      "enum": [
        +        "native",
        +        "links",
        +        "metadata"
        +      ],
        +      "type": "string"
        +    },
        +    "failed": {
        +      "type": "integer"
        +    },
        +    "failures": {
        +      "items": {
        +        "properties": {
        +          "error": {
        +            "type": "string"
        +          },
        +          "index": {
        +            "type": "integer"
        +          }
        +        },
        +        "required": [
        +          "index",
        +          "error"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "imageProgress": {
        +      "properties": {
        +        "failed": {
        +          "type": "integer"
        +        },
        +        "pending": {
        +          "type": "integer"
        +        },
        +        "ready": {
        +          "type": "integer"
        +        },
        +        "total": {
        +          "type": "integer"
        +        }
        +      },
        +      "required": [
        +        "total",
        +        "ready",
        +        "failed",
        +        "pending"
        +      ],
        +      "type": "object"
        +    },
        +    "nextAction": {
        +      "properties": {
        +        "arguments": {
        +          "properties": {
        +            "action": {
        +              "type": "string"
        +            },
        +            "batchId": {
        +              "type": "string"
        +            },
        +            "cursor": {
        +              "type": "string"
        +            },
        +            "deliveryMode": {
        +              "enum": [
        +                "native",
        +                "links",
        +                "metadata"
        +              ],
        +              "type": "string"
        +            },
        +            "requestId": {
        +              "type": "string"
        +            },
        +            "seenImages": {
        +              "additionalProperties": {
        +                "items": {
        +                  "type": "integer"
        +                },
        +                "type": "array"
        +              },
        +              "type": "object"
        +            },
        +            "taskIds": {
        +              "items": {
        +                "type": "string"
        +              },
        +              "type": "array"
        +            },
        +            "timeoutSeconds": {
        +              "type": "integer"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "presentReadyFirst": {
        +          "type": "boolean"
        +        },
        +        "silent": {
        +          "type": "boolean"
        +        },
        +        "tool": {
        +          "enum": [
        +            "wait_images",
        +            "batch_generate"
        +          ],
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "tool",
        +        "arguments",
        +        "silent",
        +        "presentReadyFirst"
        +      ],
        +      "type": "object"
        +    },
        +    "pendingTaskIds": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "readyImagesRemaining": {
        +      "type": "integer"
        +    },
        +    "requestId": {
        +      "type": "string"
        +    },
        +    "requestedImages": {
        +      "type": "integer"
        +    },
        +    "resultManifest": {
        +      "properties": {
        +        "inputs": {
        +          "items": {
        +            "properties": {
        +              "count": {
        +                "type": "integer"
        +              },
        +              "index": {
        +                "type": "integer"
        +              },
        +              "status": {
        +                "type": "string"
        +              },
        +              "taskId": {
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "index",
        +              "taskId",
        +              "count",
        +              "status"
        +            ],
        +            "type": "object"
        +          },
        +          "type": [
        +            "array",
        +            "null"
        +          ]
        +        },
        +        "requestedImages": {
        +          "type": "integer"
        +        },
        +        "results": {
        +          "items": {
        +            "properties": {
        +              "imageIndex": {
        +                "type": "integer"
        +              },
        +              "inputIndex": {
        +                "type": "integer"
        +              },
        +              "resultId": {
        +                "type": "string"
        +              },
        +              "saved": {
        +                "type": "boolean"
        +              },
        +              "settlement": {
        +                "properties": {
        +                  "chargedPoints": {
        +                    "minimum": 0,
        +                    "type": "number"
        +                  },
        +                  "estimatedMaxPoints": {
        +                    "minimum": 0,
        +                    "type": "number"
        +                  },
        +                  "netChargedPoints": {
        +                    "minimum": 0,
        +                    "type": "number"
        +                  },
        +                  "quotedMaxPoints": {
        +                    "minimum": 0,
        +                    "type": "number"
        +                  },
        +                  "refundedPoints": {
        +                    "minimum": 0,
        +                    "type": "number"
        +                  },
        +                  "status": {
        +                    "type": "string"
        +                  }
        +                },
        +                "required": [
        +                  "status"
        +                ],
        +                "type": "object"
        +              },
        +              "status": {
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "resultId",
        +              "inputIndex",
        +              "imageIndex",
        +              "status",
        +              "saved"
        +            ],
        +            "type": "object"
        +          },
        +          "type": [
        +            "array",
        +            "null"
        +          ]
        +        },
        +        "version": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "version",
        +        "requestedImages",
        +        "inputs",
        +        "results"
        +      ],
        +      "type": "object"
        +    },
        +    "settlement": {
        +      "properties": {
        +        "chargedPoints": {
        +          "minimum": 0,
        +          "type": "number"
        +        },
        +        "estimatedMaxPoints": {
        +          "minimum": 0,
        +          "type": "number"
        +        },
        +        "netChargedPoints": {
        +          "minimum": 0,
        +          "type": "number"
        +        },
        +        "quotedMaxPoints": {
        +          "minimum": 0,
        +          "type": "number"
        +        },
        +        "refundedPoints": {
        +          "minimum": 0,
        +          "type": "number"
        +        },
        +        "status": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "status"
        +      ],
        +      "type": "object"
        +    },
        +    "status": {
        +      "type": "string"
        +    },
        +    "submissionComplete": {
        +      "type": "boolean"
        +    },
        +    "succeeded": {
        +      "type": "integer"
        +    },
        +    "tasks": {
        +      "items": {
        +        "properties": {
        +          "cancelRequested": {
        +            "type": "boolean"
        +          },
        +          "deliveryStatus": {
        +            "type": "string"
        +          },
        +          "error": {
        +            "type": "string"
        +          },
        +          "failedImages": {
        +            "items": {
        +              "properties": {
        +                "error": {
        +                  "type": "string"
        +                },
        +                "failure": {
        +                  "properties": {
        +                    "code": {
        +                      "type": "string"
        +                    },
        +                    "nextAction": {
        +                      "type": "string"
        +                    },
        +                    "retryable": {
        +                      "type": "boolean"
        +                    }
        +                  },
        +                  "required": [
        +                    "code",
        +                    "retryable",
        +                    "nextAction"
        +                  ],
        +                  "type": "object"
        +                },
        +                "index": {
        +                  "type": "integer"
        +                },
        +                "settlement": {
        +                  "properties": {
        +                    "chargedPoints": {
        +                      "minimum": 0,
        +                      "type": "number"
        +                    },
        +                    "estimatedMaxPoints": {
        +                      "minimum": 0,
        +                      "type": "number"
        +                    },
        +                    "netChargedPoints": {
        +                      "minimum": 0,
        +                      "type": "number"
        +                    },
        +                    "quotedMaxPoints": {
        +                      "minimum": 0,
        +                      "type": "number"
        +                    },
        +                    "refundedPoints": {
        +                      "minimum": 0,
        +                      "type": "number"
        +                    },
        +                    "status": {
        +                      "type": "string"
        +                    }
        +                  },
        +                  "required": [
        +                    "status"
        +                  ],
        +                  "type": "object"
        +                }
        +              },
        +              "required": [
        +                "index",
        +                "error"
        +              ],
        +              "type": "object"
        +            },
        +            "type": "array"
        +          },
        +          "failure": {
        +            "properties": {
        +              "code": {
        +                "type": "string"
        +              },
        +              "nextAction": {
        +                "type": "string"
        +              },
        +              "retryable": {
        +                "type": "boolean"
        +              }
        +            },
        +            "required": [
        +              "code",
        +              "retryable",
        +              "nextAction"
        +            ],
        +            "type": "object"
        +          },
        +          "generation": {
        +            "type": "object"
        +          },
        +          "imageProgress": {
        +            "properties": {
        +              "failed": {
        +                "type": "integer"
        +              },
        +              "pending": {
        +                "type": "integer"
        +              },
        +              "ready": {
        +                "type": "integer"
        +              },
        +              "total": {
        +                "type": "integer"
        +              }
        +            },
        +            "required": [
        +              "total",
        +              "ready",
        +              "failed",
        +              "pending"
        +            ],
        +            "type": "object"
        +          },
        +          "images": {
        +            "items": {
        +              "properties": {
        +                "deliveryStatus": {
        +                  "type": "string"
        +                },
        +                "expired": {
        +                  "type": "boolean"
        +                },
        +                "expiresAt": {
        +                  "type": "string"
        +                },
        +                "height": {
        +                  "type": "integer"
        +                },
        +                "index": {
        +                  "type": "integer"
        +                },
        +                "linkExpiresAt": {
        +                  "type": "string"
        +                },
        +                "mimeType": {
        +                  "type": "string"
        +                },
        +                "retainedUntil": {
        +                  "type": "string"
        +                },
        +                "revisedPrompt": {
        +                  "type": "string"
        +                },
        +                "width": {
        +                  "type": "integer"
        +                }
        +              },
        +              "required": [
        +                "index"
        +              ],
        +              "type": "object"
        +            },
        +            "type": "array"
        +          },
        +          "lineage": {
        +            "type": "object"
        +          },
        +          "notice": {
        +            "type": "string"
        +          },
        +          "outputContract": {
        +            "type": "object"
        +          },
        +          "settlement": {
        +            "properties": {
        +              "chargedPoints": {
        +                "minimum": 0,
        +                "type": "number"
        +              },
        +              "estimatedMaxPoints": {
        +                "minimum": 0,
        +                "type": "number"
        +              },
        +              "netChargedPoints": {
        +                "minimum": 0,
        +                "type": "number"
        +              },
        +              "quotedMaxPoints": {
        +                "minimum": 0,
        +                "type": "number"
        +              },
        +              "refundedPoints": {
        +                "minimum": 0,
        +                "type": "number"
        +              },
        +              "status": {
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "status"
        +            ],
        +            "type": "object"
        +          },
        +          "status": {
        +            "description": "Current task state, including running and terminal success, failure or cancellation.",
        +            "type": "string"
        +          },
        +          "taskId": {
        +            "description": "Existing owned task ID.",
        +            "type": "string"
        +          },
        +          "timing": {
        +            "type": "object"
        +          }
        +        },
        +        "required": [
        +          "taskId",
        +          "status"
        +        ],
        +        "type": "object"
        +      },
        +      "type": [
        +        "array",
        +        "null"
        +      ]
        +    },
        +    "unsubmittedImages": {
        +      "type": "integer"
        +    }
        +  },
        +  "required": [
        +    "status",
        +    "complete",
        +    "succeeded",
        +    "failed",
        +    "submissionComplete",
        +    "imageProgress",
        +    "tasks"
        +  ],
        +  "type": "object"
        +}
  3. 11 tool updates
    • Changedaccount6 fields changed
      • addedInput schema / properties / action / description
        Added value: +"Read account summary or paginated billing; defaults to the permitted action."
      • addedInput schema / properties / from / description
        Added value: +"Inclusive usage start, RFC3339 or YYYY-MM-DD."
      • addedInput schema / properties / page / description
        Added value: +"Usage page, starting at 1."
      • addedInput schema / properties / pageSize / description
        Added value: +"Usage rows per page; default 5, maximum 20."
      • addedInput schema / properties / to / description
        Added value: +"Usage end, RFC3339 or YYYY-MM-DD."
      • addedInput schema / properties / type / description
        Added value: +"Optional credit-log type, e.g. mcp_call or ai_refund."
    • Changedderive_image17 fields changed
      • addedInput schema / properties / action / description
        Added value: +"preview freezes inputs and quotes cost; auto checks saved spending authorization; run requires explicit user approval."
      • addedInput schema / properties / count / description
        Added value: +"Image count; default 1, maximum 16. Zero retains the legacy default."
      • addedInput schema / properties / deliveryMode / description
        Added value: +"native returns previews and original links; links returns original links; metadata omits image delivery."
      • addedInput schema / properties / derivationType / description
        Added value: +"Lineage label, e.g. variant, edit, change-model or change-size."
      • addedInput schema / properties / model / description
        Added value: +"Public image model ID from list_models; omit for the configured recommendation."
      • addedInput schema / properties / outputFormat / description
        Added value: +"Original image format; default png."
      • changedInput schema / properties / parentImageIndex / description
        Previous value: -"Zero-based; required for multiple images."New value: +"Zero-based source image index; required when the parent has multiple images."
      • addedInput schema / properties / parentTaskId / description
        Added value: +"Completed owned task supplying the original image; alternative to referenceImages."
      • addedInput schema / properties / prompt / description
        Added value: +"Image instructions; required for a fresh preview."
      • addedInput schema / properties / promptExampleId / description
        Added value: +"Optional source example provenance; does not supply an original image."
      • addedInput schema / properties / promptId / description
        Added value: +"Optional source prompt provenance; does not supply an original image."
      • addedInput schema / properties / quality / description
        Added value: +"Supported quality tier from list_models; affects the quote."
      • changedInput schema / properties / referenceImages / description
        Previous value: -"URL/data URL."New value: +"Up to 8 source images; preview freezes their bytes. Use derive_image for editing."
      • addedInput schema / properties / referenceImages / items / description
        Added value: +"Public image URL or image data URL."
      • addedInput schema / properties / requestId / description
        Added value: +"Original preview receipt for auto/run; reuse it after interruption, without re-previewing."
      • changedInput schema / properties / size / description
        Previous value: -"Ratio."New value: +"Supported aspect ratio from list_models, e.g. 1:1."
      • changedInput schema / properties / thinkingLevel / description
        Previous value: -"Gemini thinking; extended=高级模式."New value: +"Gemini reasoning level; supported values and price multipliers come from list_models."
    • Changedgenerate_image13 fields changed
      • addedInput schema / properties / action / description
        Added value: +"preview freezes inputs and quotes cost; auto checks saved spending authorization; run requires explicit user approval."
      • addedInput schema / properties / count / description
        Added value: +"Image count; default 1, maximum 16. Zero retains the legacy default."
      • addedInput schema / properties / deliveryMode / description
        Added value: +"native returns previews and original links; links returns original links; metadata omits image delivery."
      • addedInput schema / properties / model / description
        Added value: +"Public image model ID from list_models; omit for the configured recommendation."
      • addedInput schema / properties / outputFormat / description
        Added value: +"Original image format; default png."
      • addedInput schema / properties / prompt / description
        Added value: +"Image instructions; required for a fresh preview."
      • addedInput schema / properties / quality / description
        Added value: +"Supported quality tier from list_models; affects the quote."
      • changedInput schema / properties / referenceImages / description
        Previous value: -"URL/data URL."New value: +"Up to 8 source images; preview freezes their bytes. Use derive_image for editing."
      • addedInput schema / properties / referenceImages / items / description
        Added value: +"Public image URL or image data URL."
      • addedInput schema / properties / requestId / description
        Added value: +"Original preview receipt for auto/run; reuse it after interruption, without re-previewing."
      • addedInput schema / properties / retryTaskId / description
        Added value: +"Failed task ID; preview only, without replacement image parameters."
      • changedInput schema / properties / size / description
        Previous value: -"Ratio."New value: +"Supported aspect ratio from list_models, e.g. 1:1."
      • changedInput schema / properties / thinkingLevel / description
        Previous value: -"Gemini thinking; extended=高级模式."New value: +"Gemini reasoning level; supported values and price multipliers come from list_models."
    • Changedgeneration_status2 fields changed
      • addedInput schema / properties / action / description
        Added value: +"get reads one task; cancel stops that task. Default get; use wait_images to await image delivery."
      • addedInput schema / properties / taskId / description
        Added value: +"Owned task ID returned by generation; not a requestId or batchId."
    • Changedhelp2 fields changed
      • addedInput schema / properties / topic / description
        Added value: +"Help topic; omit for the capability matrix."
      • changedInput schema / properties / topic / enum
        Previous value: -[
        -  "quickstart",
        -  "generate",
        -  "derive",
        -  "enhance",
        -  "compare",
        -  "models",
        -  "async_batch",
        -  "prompts",
        -  "account",
        -  "billing",
        -  "tasks",
        -  "examples",
        -  "update",
        -  "troubleshooting"
        -]New value: +[
        +  "quickstart",
        +  "generate",
        +  "derive",
        +  "enhance",
        +  "reverse",
        +  "compare",
        +  "models",
        +  "async_batch",
        +  "prompts",
        +  "account",
        +  "billing",
        +  "tasks",
        +  "examples",
        +  "update",
        +  "troubleshooting"
        +]
    • Changedlist_models1 field changed
      • addedInput schema / properties / includeUnavailable / description
        Added value: +"With a Token, also show public models blocked for that account; anonymous results never evaluate account access."
    • Addedprompts
    • Addedreverse_prompt
    • Changedspending_policy10 fields changed
      • addedInput schema / properties / action / description
        Added value: +"get reads account-wide spending authorization; update requires explicit user approval"
      • addedInput schema / properties / confirmed / description
        Added value: +"true only after the user explicitly approves this policy update"
      • addedInput schema / properties / policy / description
        Added value: +"Complete replacement policy from the latest get result; never raise limits autonomously"
      • addedInput schema / properties / policy / properties / dayPoints / description
        Added value: +"Maximum credits across the daily window when finite"
      • addedInput schema / properties / policy / properties / enabled / description
        Added value: +"Whether saved automatic-spending authorization is enabled"
      • addedInput schema / properties / policy / properties / fiveHourPoints / description
        Added value: +"Maximum credits across the rolling five-hour window when finite"
      • addedInput schema / properties / policy / properties / revision / description
        Added value: +"Latest policy revision from get; stale updates are rejected"
      • addedInput schema / properties / policy / properties / taskPoints / description
        Added value: +"Maximum credits per task when finite; 1 credit is USD 0.01"
      • addedInput schema / properties / policy / properties / unlimited / description
        Added value: +"Explicit unlimited choice; wallet balance, Token hard caps and permissions still apply"
      • addedInput schema / properties / policy / properties / weekPoints / description
        Added value: +"Maximum credits across the weekly window when finite"
    • Changedupscale_image5 fields changed
      • addedInput schema / properties / action / description
        Added value: +"preview quotes one image; auto checks saved authorization; run requires user approval."
      • addedInput schema / properties / deliveryMode / description
        Added value: +"native returns previews and original links; links returns original links; metadata omits image delivery."
      • changedInput schema / properties / image / description
        Previous value: -"URL/data URL."New value: +"One public image URL or image data URL; preview only."
      • addedInput schema / properties / operation / description
        Added value: +"Dedicated processing operation; default x2. Use derive_image for general editing."
      • addedInput schema / properties / requestId / description
        Added value: +"Original preview receipt; auto/run only, without new image inputs."
    • Changedwait_images7 fields changed
      • addedInput schema / properties / batchId / description
        Added value: +"Original batch receipt; choose exactly one of batchId, requestId or taskIds."
      • changedInput schema / properties / cursor / description
        Previous value: -"Copy nextAction; omit to replay images."New value: +"Opaque nextAction continuation cursor; copy unchanged. Omit only to replay already delivered images."
      • addedInput schema / properties / deliveryMode / description
        Added value: +"native returns previews and original links; links returns original links; metadata omits image delivery."
      • addedInput schema / properties / requestId / description
        Added value: +"Original single-image preview receipt; alternative to batchId or taskIds."
      • addedInput schema / properties / taskIds / description
        Added value: +"Explicit task IDs; alternative to batchId or requestId."
      • addedInput schema / properties / taskIds / items / description
        Added value: +"Owned generation task ID."
      • addedInput schema / properties / timeoutSeconds / description
        Added value: +"Bounded server wait; default 24 seconds, maximum 45. A pending response is not a failed task."
  4. 10 tool updates
    • First observedaccount
    • First observedderive_image
    • First observedgenerate_image
    • First observedgeneration_status
    • First observedhelp
    • First observedlist_models
    • First observedreport_image_delivery
    • First observedspending_policy
    • First observedupscale_image
    • First observedwait_images

Publisher details

Operator
InkRoom · Publisher source
Vendor relationship
Unknown
Trust center
Unknown
Restrictions
Image generation requires the user’s InkRoom account and Key, with a cost preview before paid execution. · Publisher source

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources