Skip to main content
Glama

Server Details

Hosted MCP server for Retro Diffusion. Generate authentic, grid-aligned pixel art — sprites, characters, animations, and tilesets — from Claude, Cursor, VS Code, Windsurf, or any MCP client. 90+ styles, free cost estimation, pay-per-generation with no subscription and credits that never expire.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

TDQS

A4/5.0

Scored across 20 tools

Disambiguation4/5

Most tools target clearly distinct resource-action pairs, and the sync/async generation and edit workflow tools are well explained. The main ambiguities are create_inference vs. start_inference_job and list_available_models vs. list_available_styles, though their descriptions help resolve the differences.

Naming Consistency5/5

Tool names consistently follow a snake_case verb_noun pattern: create_, get_, list_, estimate_, run_, start_, delete_, update_. The only exceptions are authenticate and logout, which still fit the overall verb-first style and are unambiguous.

Tool Count4/5

Twenty tools is on the higher end, but each one maps to a real API operation or workflow across auth, inference, style management, estimation, jobs, and edit tools. It feels slightly heavy rather than bloated, and no tool is purely redundant.

Completeness4/5

The core generation lifecycle is well covered: create/start/get/list jobs, result retrieval, cost estimation, and edit tools. Minor gaps include no dedicated list/get for user styles and no async job cancellation, but agents can work around these with saved style_ids and polling.

Available Tools

20 tools
authenticateAuthenticateA
Read-onlyIdempotent
Inspect

Authenticate this MCP session with a RetroDiffusion public API key.

ParametersJSON Schema
NameRequiredDescriptionDefault
api_keyYesRetroDiffusion API key (rdpk-...), created free at https://retrodiffusion.ai/app/devtools.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, which effectively communicate the tool's behavioral traits. The description adds the context of using a public API key, which is consistent with annotations.

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 a single, front-loaded sentence of 10 words. Every word is meaningful, with no extraneous information.

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 the simple nature of the tool and the comprehensive parameter description in the schema, the description is largely complete. The output schema (not shown) likely provides success/error details. Some context about when authentication is needed could improve completeness, but it is adequate.

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?

The input schema has 100% descriptive coverage for the single parameter 'api_key', specifying its format and creation URL. The tool description does not add further semantic meaning, so a baseline score 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 clearly states the action 'Authenticate' and the resource 'this MCP session' with a RetroDiffusion public API key. It distinguishes the tool from its sibling 'logout' by being the opposite operation.

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

Usage Guidelines3/5

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

The description implies the tool should be used to authenticate a session but does not explicitly state when to use it (e.g., before other tools) or provide guidance on alternatives. The parameter description hints at key creation but no direct usage context.

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

create_inferenceGenerate Pixel ArtAInspect

Generate images using the public /v2/inferences endpoint.

For the highest quality prefer RD Pro styles (rd_pro__*); they support reference_images for character/style consistency, and most go as small as 12x12 px (check list_available_styles for each style's limits) — a small target size is never a reason to switch to a cheaper model family. Style ids are opaque strings with no uniform format (some RD Fast styles appear as "default:rd_flux"); take them verbatim from the catalog and never infer capabilities from an id's prefix. For animation styles prefer start_inference_job + get_inference_job instead — animations are long-running, and a failed animation is worth one retry with identical parameters (failures auto-refund).

Field-tested workflow rules: N distinct items = N individually usable images (separate calls or num_images=N), never one sheet/grid image unless a sheet IS the deliverable. Variants of ONE image (seasons, day/night, palettes) = generate the base once, then derive each variant with the image_edit tool ("... keep the exact same composition") — independent generations of the "same" scene come out unrelated. Converting an existing image INTO pixel art is rd_pro__pixelate with input_image (16-256 px output, batch<=16); reference_images-based generation re-imagines rather than converts. To animate an image you already have, use rd_advanced_animation__* with input_image (fixed-format rd_animation__* styles generate their own subject from the prompt instead).

Use input_image for the main source image, reference_images for extra per-inference guidance, and style_reference_images only on create_user_style/update_user_style. The response excludes raw base64 image payloads to keep MCP outputs compact.

ParametersJSON Schema
NameRequiredDescriptionDefault
seedNoSeed for reproducible results; reuse the same seed to iterate on one composition.
widthYesOutput width in pixels. Each style enforces its own limits; check list_available_styles or get_style_usage. Genre-native sizes per item: Minecraft 16; items/icons/props 32-64; character sprites 16-48 retro or 96-128 showcase; tiles 16-32; portraits 96-128; full scenes 256 (RD Pro's max; 16:9 scenes = 256x144 — pixel art integer-upscales losslessly).
heightYesOutput height in pixels. Each style enforces its own limits; check list_available_styles or get_style_usage.
promptYesDescribe the SUBJECT only, richly and concretely ('a squat round flask of glowing crimson liquid, cork stopper, bright highlight on the upper-left rim' beats 'a potion'). Never write 'pixel art' — the selected style handles all rendering. For standalone assets, state a flat background color that contrasts the subject (default 'on a plain white background') and pair with remove_bg=true; never write 'transparent background' (that is remove_bg's job), and never leave the background unstated (it drifts to drab dark gray). Scenes instead describe their real environment.
tile_xNoMake the result tile seamlessly on the horizontal axis.
tile_yNoMake the result tile seamlessly on the vertical axis.
strengthNoHow strongly to change input_image, 0-1 (default 0.75). Lower values keep more of the original.
remove_bgNoRemove the background for transparent output. Use true for standalone assets and pair it with a stated contrasting background in the prompt ('on a plain white background') — removal works best on flat contrasting backdrops. Animations inherit the start frame's transparency automatically.
num_imagesNoHow many images to generate in one batch; a batch produces varied takes of one prompt (the right way to get N distinct items as individually usable images — never pack N items into a single sheet/grid image unless a sheet IS the deliverable). Style-specific maximums apply.
rd_api_keyNoRetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth.
input_imageNoBase64 PNG used as the main source image for edits, variations, tilesets, animations, or styles that require a starting frame. Raw base64 or a data URL. Send the NATIVE-resolution image: an upscaled display copy (e.g. a 96px sprite exported at 4x = 384px) exceeds style ranges and gets rejected — downscale to the true pixel grid first. For advanced animations the frame's dimensions must equal width/height, and sprites whose opaque pixels touch the canvas edge animate badly (pad onto a larger transparent canvas first, e.g. 48x48 content onto 64x64).
extra_promptNoSecondary prompt for styles that use one (e.g. the transition texture in advanced tilesets).
prompt_styleYesStyle id from list_available_styles (e.g. 'rd_fast__default', 'rd_pro__isometric', or a custom 'user__...' style).
input_paletteNoBase64 image of a color palette; output colors are constrained to it.
upload_outputsNoHost outputs and return URLs in output_urls (recommended for MCP clients) instead of only base64 payloads.
frames_durationNoAnimation frame count for animation styles: 4, 6, 8, 10, 12, or 16. Pick deliberately: 8 is the sweet spot for loops (walking, idle), 6 for a snappy single action, 10-12 for flowing ambient motion.
timeout_secondsNoRead-timeout override in seconds for this call; increase for animations or large batches.
reference_imagesNoExtra per-inference guidance images (base64), only for styles where supports_reference_images is true. Not for defining custom styles.
extra_input_imageNoSecond base64 input image for styles that use one (e.g. the second texture in rd_tile__tileset_advanced).
return_pre_paletteNoAlso return the render from before palette constraints were applied.
return_spritesheetNoFor animation styles: return a PNG sprite sheet instead of a GIF.
return_non_bg_removedNoAlso return the render from before background removal was applied.
upscale_output_factorNoInteger upscale factor for the output image; 1 returns the native pixel size.
bypass_prompt_expansionNoSkip the automatic LLM prompt enrichment and use the prompt verbatim.
include_downloadable_dataNoInclude extra structured assets when available (e.g. tileset atlas JSON, animation frame data).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior5/5

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

The description discloses critical behavioral traits beyond annotations: 'failures auto-refund', 'The response excludes raw base64 image payloads to keep MCP outputs compact', and 'Style ids are opaque strings... never infer capabilities from an id's prefix'. These are not present in the annotations (readOnlyHint=false, openWorldHint=true) and significantly inform agent behavior.

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 long but well-structured, front-loading the core purpose and then providing actionable workflow rules. Every sentence adds value (quality guidance, animation alternatives, workflow rules, parameter usage, response note). It is not redundant, though it could arguably be trimmed; the thoroughness is justified by the tool's complexity (25 parameters).

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 25-parameter tool with an output schema, the description is exceptionally complete. It covers the endpoint, style selection, animations, pixelation, workflow patterns, parameter roles, and response format. With the output schema already present, the description need not explain return values, and it does not omit any crucial operational context.

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 has 100% coverage, so baseline is 3, but the description adds valuable parameter-use context: it clarifies the roles of input_image vs reference_images ('Use input_image for the main source image, reference_images for extra per-inference guidance') and emphasizes num_images vs single sheet generation. This goes beyond raw parameter definitions, elevating the score to 4.

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: 'Generate images using the public /v2/inferences endpoint.' It clearly distinguishes itself from sibling start_inference_job by stating animations should use that tool instead, and it gives concrete distinctions for pixelating via rd_pro__pixelate. The purpose is unmistakable.

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?

The description provides explicit when-to-use guidance: 'For animation styles prefer start_inference_job + get_inference_job instead' and 'Converting an existing image INTO pixel art is rd_pro__pixelate with input_image'. It also gives workflow rules for N items vs variants, directing when to use num_images versus image_edit. There is no ambiguity about when to use this tool versus alternatives.

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

create_user_styleCreate Custom StyleAInspect

Create a user style from the public RD Pro template using /v2/styles.

Use style_reference_images and style_reference_caption for style-level references. These are baked into the custom style and are not the same as per-inference reference_images.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesDisplay name for the custom style.
min_widthNoForce a fixed width (96-256); must be provided together with min_height.
min_heightNoForce a fixed height (96-256); must be provided together with min_width.
rd_api_keyNoRetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth.
style_iconNoIcon name for the style (e.g. 'sparkles').
descriptionNoShort description of the custom style.
force_paletteNoAlways apply palette constraining for this style.
force_bg_removalNoAlways remove backgrounds for this style.
llm_instructionsNoInstructions for the prompt-expansion LLM when this style is used.
reference_imagesNoAlias for style_reference_images on this tool; prefer style_reference_images and never provide both.
reference_captionNoAlias for style_reference_caption on this tool; prefer style_reference_caption and never provide both.
apply_prompt_fixerNoLet the API tidy prompts automatically for this style (default true).
user_prompt_templateNoPrompt template for the style; must contain the {prompt} token.
style_reference_imagesNoStyle-level reference image(s), base64, baked into the custom style (max 1 via the public API).
style_reference_captionNoCaption describing the style reference image(s).
expanded_llm_instructionsNoExtended instructions for the prompt-expansion LLM.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already flag this as a mutating (non-read-only) operation, so the descrioption does not need to restate that. It adds value by explaining that style_reference_images are baked into the custom style and are not the same as per-inference reference images, which is a non-obvious persistence behavior an agent should know before calling.

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 short, front-loaded, and every sentence earns its keep: it states the endpoint and resource, then highlights the key styling nuance. No fluff or redundant repetition of schema details.

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 16 parameters, 100% schema coverage, an output schema, and annotations marking this as a mutating operation, the description provides enough orienting context. It is slightly light on how this relates to update_user_style or deletion, but those are inferable from the create verb and sibling names.

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?

The schema has 100% parameter coverage, so the baseline is solid. The description supplements this by making the crucial distinction between style-level reference images and per-inference reference images, clarifying that the former are baked in. This adds semantic meaning beyond the schema fields, especially around the reference_image alias warnings.

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 clearly identifies a specific action and resource: it creates a user/custom style via /v2/tyles from the RD Pro template. It also highlights style-level reference semantics, which helps distinguish style creation from ordinary inference. It does not explicitly name a sibling alternative, but the core purpose is unmistakable.

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?

Provides concrete usage guidance by directing agents to use style_reference_images and style_reference_caption for style-level references and warning that these differ from per-inference reference_images. This effectively communicates when to use the style-reference parameters during creation. It does not list exclusions or alternative sibling tools, but the guidance is relevant and operational.

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

delete_user_styleDelete Custom StyleB
DestructiveIdempotent
Inspect

Delete a user style using /v2/styles/{style_id}. style_id can be either internal id or prompt_style/public_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
style_idYesStyle id — the internal id or the prompt_style/public id (e.g. user__mystyle_ab12).
rd_api_keyNoRetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior1/5

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

The description says 'Delete a user style,' which is a destructive mutation, while the annotations declare readOnlyHint: true. This directly contradicts the operation's semantics, so the score must be 1 per the rubric. The description adds no mitigating context about irreversibility or side effects.

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 two short, front-loaded sentences with no filler: the first states the action and endpoint, the second clarifies the accepted id forms. This is appropriately sized for a simple delete operation.

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

Completeness2/5

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

Although an output schema exists and the operation is simple, the readOnlyHint contradiction leaves the behavior ambiguous. The description also does not address ownership/permissions, irreversibility of deletion, or behavior when style_id is not found, so it is not complete enough for a destructive tool carrying conflicting annotations.

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 both style_id and rd_api_key are already documented. The description repeats the fact that style_id can be an internal id or prompt_style/public id, matching the schema description without adding new information. It meets the baseline but does not go beyond it.

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: 'Delete a user style' and identifies the exact endpoint /v2/styles/{style_id}. This clearly distinguishes the tool from siblings such as create_user_style and update_user_style without being a tautology.

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?

The intended use is plainly stated: use this when a user style should be removed. It gives clear context, but it does not explicitly name alternatives or exclusions, such as using update_user_style when only a modification is needed.

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

estimate_edit_tool_costEstimate Edit Cost (Free)A
Read-onlyIdempotent
Inspect

Validate an edit-tool request and estimate its cost and duration without running it. Always free.

ParametersJSON Schema
NameRequiredDescriptionDefault
widthNok_centroid_downscale: target width in pixels (required for that tool).
heightNok_centroid_downscale: target height in pixels (required for that tool).
promptNoWhat to generate or change (required by image_edit and inpainting; optional for outpainting).
tile_xNoseam_tiling: repair the horizontal seam (tool default applies when omitted).
tile_yNoseam_tiling: repair the vertical seam (tool default applies when omitted).
tool_idYesEdit tool id. One of: image_edit, inpainting, outpainting, seam_tiling, background_remover, color_style_transfer, color_reducer, palette_converter, pixel_correction, k_centroid_downscale, rotate. Use list_edit_tools for authoritative fields, costs, and limits.
expand_topNoOutpainting: pixels to add on the top edge.
mask_imageNoBase64 mask for inpainting: white pixels are regenerated, black pixels are kept.
rd_api_keyNoRetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth.
seam_widthNoseam_tiling: width in pixels of the seam band to repair.
color_countNocolor_reducer: target number of colors.
dither_modeNocolor_reducer/palette_converter: dithering mode.
expand_leftNoOutpainting: pixels to add on the left edge.
input_imageYesBase64 PNG of the image to edit (raw base64 or a data URL). Required by every edit tool.
expand_rightNoOutpainting: pixels to add on the right edge.
soft_inpaintNoInpainting/outpainting: blend edits softly with the surrounding pixels.
expand_bottomNoOutpainting: pixels to add on the bottom edge.
input_paletteNoBase64 image of a color palette; output colors are constrained to it.
dither_strengthNocolor_reducer/palette_converter: dithering strength, 0-10 (0 disables, default 5).
timeout_secondsNoRead-timeout override in seconds for this call; increase for animations or large batches.
rotation_degreesNorotate: rotation angle in degrees (clean-edge pixel rotation).
extra_input_imageNoSecond base64 input image for styles that use one (e.g. the second texture in rd_tile__tileset_advanced).
force_solid_pixelsNobackground_remover: force fully solid or fully transparent pixels (tool default applies when omitted).
repair_window_sizeNoseam_tiling: size of the repair window.
transparency_thresholdNobackground_remover: alpha threshold for treating pixels as transparent.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already mark readOnlyHint, idempotentHint, destructiveHint as false. The description adds 'Always free' and 'without running it,' which goes beyond annotations and provides useful cost transparency.

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?

Two concise sentences that pack key info: purpose, cost, and behavior. Efficient and front-loaded.

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 25 parameters with 100% schema coverage and annotations, the description captures the core function well. The 'Always free' note is valuable. Could mention when to use over run_edit_tool explicitly.

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% with detailed descriptions for each parameter. The description adds 'Always free' but no extra parameter info. Baseline 3 is appropriate.

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 clearly states 'validate an edit-tool request and estimate its cost and duration' and notes 'Always free,' distinguishing it from run_edit_tool.

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?

Explicitly says this is for validation and estimation without running, implying use before executing. No direct sibling alternative named, but context with run_edit_tool is implied.

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

estimate_inference_costEstimate Cost (Free)A
Read-onlyIdempotent
Inspect

Estimate generation cost using the public /v2/inferences endpoint with check_cost=true.

Use input_image for the main source image, reference_images for extra per-inference guidance, and style_reference_images only on create_user_style/update_user_style.

ParametersJSON Schema
NameRequiredDescriptionDefault
widthYesOutput width in pixels. Each style enforces its own limits; check list_available_styles or get_style_usage. Genre-native sizes per item: Minecraft 16; items/icons/props 32-64; character sprites 16-48 retro or 96-128 showcase; tiles 16-32; portraits 96-128; full scenes 256 (RD Pro's max; 16:9 scenes = 256x144 — pixel art integer-upscales losslessly).
heightYesOutput height in pixels. Each style enforces its own limits; check list_available_styles or get_style_usage.
promptYesDescribe the SUBJECT only, richly and concretely ('a squat round flask of glowing crimson liquid, cork stopper, bright highlight on the upper-left rim' beats 'a potion'). Never write 'pixel art' — the selected style handles all rendering. For standalone assets, state a flat background color that contrasts the subject (default 'on a plain white background') and pair with remove_bg=true; never write 'transparent background' (that is remove_bg's job), and never leave the background unstated (it drifts to drab dark gray). Scenes instead describe their real environment.
strengthNoHow strongly to change input_image, 0-1 (default 0.75). Lower values keep more of the original.
num_imagesNoHow many images to generate in one batch; a batch produces varied takes of one prompt (the right way to get N distinct items as individually usable images — never pack N items into a single sheet/grid image unless a sheet IS the deliverable). Style-specific maximums apply.
rd_api_keyNoRetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth.
input_imageNoBase64 PNG used as the main source image for edits, variations, tilesets, animations, or styles that require a starting frame. Raw base64 or a data URL. Send the NATIVE-resolution image: an upscaled display copy (e.g. a 96px sprite exported at 4x = 384px) exceeds style ranges and gets rejected — downscale to the true pixel grid first. For advanced animations the frame's dimensions must equal width/height, and sprites whose opaque pixels touch the canvas edge animate badly (pad onto a larger transparent canvas first, e.g. 48x48 content onto 64x64).
extra_promptNoSecondary prompt for styles that use one (e.g. the transition texture in advanced tilesets).
prompt_styleYesStyle id from list_available_styles (e.g. 'rd_fast__default', 'rd_pro__isometric', or a custom 'user__...' style).
input_paletteNoBase64 image of a color palette; output colors are constrained to it.
frames_durationNoAnimation frame count for animation styles: 4, 6, 8, 10, 12, or 16. Pick deliberately: 8 is the sweet spot for loops (walking, idle), 6 for a snappy single action, 10-12 for flowing ambient motion.
timeout_secondsNoRead-timeout override in seconds for this call; increase for animations or large batches.
reference_imagesNoExtra per-inference guidance images (base64), only for styles where supports_reference_images is true. Not for defining custom styles.
extra_input_imageNoSecond base64 input image for styles that use one (e.g. the second texture in rd_tile__tileset_advanced).
return_pre_paletteNoAlso return the render from before palette constraints were applied.
return_spritesheetNoFor animation styles: return a PNG sprite sheet instead of a GIF.
return_non_bg_removedNoAlso return the render from before background removal was applied.
upscale_output_factorNoInteger upscale factor for the output image; 1 returns the native pixel size.
bypass_prompt_expansionNoSkip the automatic LLM prompt enrichment and use the prompt verbatim.
include_downloadable_dataNoInclude extra structured assets when available (e.g. tileset atlas JSON, animation frame data).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, and non-destructive behavior, so the description does not need to repeat that. It adds useful context by naming the public endpoint and check_cost=true, signaling that no actual charged inference occurs. No contradiction with annotations exists.

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 compact and front-loaded: the purpose and endpoint appear in the first sentence, followed by only the most essential parameter-use guidance. Every sentence earns its place with no repetition of schema details.

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 tool's safety profile is fully covered by annotations, the input schema is rich, and an output schema exists, the description supplies exactly the missing contextual framing: endpoint, cost-estimation semantics, and image-parameter roles. Nothing essential is left unexplained.

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 detailed parameter descriptions already bear most of the burden. The description adds meaningful cross-parameter guidance, especially distinguishing input_image vs reference_images and telling users that style_reference_images belongs only to create_user_style/update_user_style, which prevents a likely misuse.

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 clearly states the tool estimates generation cost via the public /v2/inferences endpoint with check_cost=true. This distinguishes it from create_inference/start_inference_job (actual generation) and estimate_edit_tool_cost (edit-tool cost).

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?

The context is clear: this is a free/public cost-estimation call, and the description gives specific guidance on which image parameters to use. It does not explicitly state 'use this instead of create_inference when you only need a cost quote,' but the endpoint and check_cost=true make the intended use readily inferable.

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

fix_pixel_artFix Pixel ArtA
Read-onlyIdempotent
Inspect

Recover the native pixel grid from enlarged, softened, AI-rendered, or compressed pixel art.

Standard uses the native Rust detector. Neural uses the neural reconstruction engine and accepts optional target width and height values. This repairs existing art—it does not generate a new image. Both engines are free and share a limit of 10 requests per minute per API token. Provide exactly one source as base64 input_image or a public HTTPS image_url. URL input avoids the ALB request-body limit. Decoded images may contain up to 16 megapixels. Successful response JSON is limited to 850,000 bytes for AWS ALB compatibility.

ParametersJSON Schema
NameRequiredDescriptionDefault
widthNoOptional neural target dimension in pixels. Accepted only with engine='neural'.
engineNoFixer engine. Standard uses the native Rust detector; neural uses the neural reconstruction engine.standard
heightNoOptional neural target dimension in pixels. Accepted only with engine='neural'.
image_urlNoPublic HTTPS PNG or JPEG URL to reconstruct. Provide this or input_image, not both. URL downloads may contain up to 20 MB and bypass the API request-body limit.
rd_api_keyNoRetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth.
input_imageNoBase64 PNG or JPEG to reconstruct at its native pixel grid. Raw base64 or a data URL; provide this or image_url, not both. Decoded input may contain up to 16 megapixels, and complete base64 request JSON must stay within 900,000 bytes.
timeout_secondsNoRead-timeout override in seconds for this call; increase for animations or large batches.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

Annotations indicate read-only, non-destructive behavior, which the description confirms by stating it 'repairs existing art—it does not generate a new image.' The description adds details beyond annotations: rate limits (10 req/min), image size limits (16 MP), response size (850KB), and URL input benefits. No contradictions. Could mention synchronous/asynchronous behavior, but overall strong.

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 a single paragraph of 7 sentences, starting with the core purpose. It is informative without extraneous details. Could be slightly more structured (e.g., bullet points for limits) but is efficient and front-loaded.

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 tool with 7 parameters, complete schema coverage, annotations, and an output schema, the description covers purpose, engines, input options, and important limits. It does not explain the output format, but that is reasonable given the output schema exists. Minor gaps: no mention of error handling, but overall comprehensive.

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 description's added value over the schema is minimal. It repeats that width/height are for neural engine and that input_image and image_url are mutually exclusive. This is helpful but does not provide new meaning beyond what is already in the structured fields. Baseline 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 clearly identifies the tool's action—recovering the native pixel grid from various degraded pixel art—and distinguishes the two engines (standard and neural). It is specific and differs from sibling tools, which cover authentication, inference, style management, etc. No ambiguity.

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?

The description explains when to use each engine and how to provide input (URL vs base64), including the rate limit. While it doesn't explicitly list alternatives or exclusions, the sibling tools are very different, making usage context clear. Missing explicit 'when not to use' keeps it from a 5.

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

get_balanceGet BalanceA
Read-onlyIdempotent
Inspect

Get credits/balance using the public /v2/inferences/credits endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
rd_api_keyNoRetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false. The description adds only that the endpoint is 'public', which is a mild behavioral trait. It does not describe rate limits, response behavior, or auth interactions beyond that, but the annotations carry most of the safety profile.

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?

One short sentence contains the action, the resource, and the endpoint. There is zero filler, and the most important distinguishing detail (the exact endpoint) is included without extra words.

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?

The tool is simple: one optional parameter, no required inputs, an output schema exists, and annotations cover the safety profile. The description's mention of the public endpoint combined with the schema and annotations is sufficient for an agent to call it correctly.

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 rd_api_key parameter is already fully described in the schema as optional and overriding session/header auth. The description adds no parameter-level information, so the baseline score of 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?

The description names a specific verb ('Get') and resource ('credits/balance') and pins it to the exact endpoint '/v2/inferences/credits'. This is unambiguous and, by naming the endpoint, effectively distinguishes it from other tools without needing to list siblings.

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

Usage Guidelines2/5

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

The description does not state when to use this tool versus alternatives or when not to use it. The word 'public' hints that it may not need authentication, but there is no explicit usage context or exclusion. An agent is left to infer that this is simply the balance-checking tool.

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

get_inference_jobCheck Async JobA
Read-onlyIdempotent
Inspect

Check the status of an async generation started with start_inference_job.

Statuses: pending, running, succeeded, failed. On success the result carries hosted output_urls (raw base64 payloads are excluded to keep MCP outputs compact).

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesAsync job id returned by start_inference_job.
rd_api_keyNoRetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already provide readOnlyHint and idempotentHint. Description adds valuable context about output_urls and omission of base64 payloads, enhancing transparency.

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?

Two sentences, front-loaded with purpose, no fluff. Every sentence adds value.

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 output schema exists, description covers statuses and output details adequately. No gaps for this simple tool.

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 description adds helpful context for task_id (links to start_inference_job). Slight added value beyond schema.

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?

Description clearly states it checks async job status, using specific verb and resource. Distinguishes from sibling tools like start_inference_job and list_inference_jobs.

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?

Explicitly links to start_inference_job and mentions statuses, but could more explicitly differentiate from list_inference_jobs for batch queries.

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

get_inference_resultGet Generated OutputsA
Read-onlyIdempotent
Inspect

Retrieve retained outputs for a synchronous generation.

Use the request_id returned by create_inference to recover or refresh signed output URLs. This lookup is read-only; never repeat a paid create_inference call just because delivery URLs are temporarily missing.

ParametersJSON Schema
NameRequiredDescriptionDefault
rd_api_keyNoRetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth.
request_idYesInference request id returned by create_inference.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

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, and the description reinforces this with 'This lookup is read-only.' It adds valuable context beyond annotations: the tool returns signed output URLs and warns against unnecessary paid calls, which is a meaningful economic/behavioral nuance. No contradiction.

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 three short, purposeful paragraphs: purpose, usage, and warning. Every sentence earns its place, with no filler. The front-loaded purpose makes it immediately clear what the tool does.

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?

This is a simple lookup tool with an output schema and strong annotations. The description covers the synchronous generation context, how to obtain the request_id, and the read-only nature. There are no significant gaps for an agent to invoke it correctly.

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% (both request_id and rd_api_key are documented). The description adds contextual meaning by linking request_id to create_inference's return value, clarifying the parameter's origin. This goes beyond the schema description, justifying a score above the baseline 3.

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 clearly states the tool's purpose: 'Retrieve retained outputs for a synchronous generation.' It uses a specific verb ('retrieve') and resource ('retained outputs'), and distinguishes itself from siblings like get_inference_job and create_inference by focusing on output retrieval via request_id.

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?

The description provides explicit usage context: use the request_id from create_inference to recover/refresh signed URLs. It also cautions against repeating a paid create_inference call, which is a clear anti-pattern. It doesn't explicitly contrast with alternative tools like get_inference_job, but the guidance is strong.

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

get_service_statusService StatusA
Read-onlyIdempotent
Inspect

Check RetroDiffusion subsystem health (/v2/status, no auth). Useful before bulk generation runs.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already indicate read-only and idempotent behavior, and the description adds the no-auth detail and the health-check scope. No contradiction with annotations; the additional context around intended use complements them.

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?

One sentence conveys purpose, endpoint, auth status, and usage context with zero waste. Front-loaded with the action and resource before the context.

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 parameters and an output schema present, the description covers the essential call-time context (auth, health-check purpose). Could mention what status values are returned, but the output schema likely covers that.

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?

The tool has zero parameters, and schema coverage is 100% (trivially). The description doesn't need to document parameters; the no-auth note and health-check context provide all needed semantics.

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?

Description states a specific verb ('Check'), resource ('RetroDiffusion subsystem health'), path ('/v2/status'), and no-auth requirement. It clearly distinguishes this health-check tool from sibling inference/job/balance tools.

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?

Provides usage context ('before bulk generation runs') without naming alternatives. No explicit when-not-to-use, but the context is enough for an agent to select it appropriately.

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

get_style_usageGet Style UsageA
Read-onlyIdempotent
Inspect

Explain how to use a public prompt_style from the RetroDiffusion API.

Use this before create_inference if you are unsure whether a style expects input_image, supports per-inference reference_images, or whether you meant style-level style_reference_images.

ParametersJSON Schema
NameRequiredDescriptionDefault
rd_api_keyNoRetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth.
prompt_styleYesStyle id from list_available_styles (e.g. 'rd_fast__default', 'rd_pro__isometric', or a custom 'user__...' style).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already indicate readOnly, openWorld, idempotent, non-destructive. The description adds behavioral context about what the tool explains (style expectations), going beyond annotations to clarify its role as a consultation tool.

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?

Two sentences: first states purpose, second gives usage guidance. No superfluous words; every sentence earns its place. Front-loaded with the essential action.

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 presence of output schema and comprehensive annotations, the description provides all necessary context: it explains the tool's purpose and when to use it, fitting the complexity of a style usage query.

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?

Input schema has 100% coverage with descriptions for both parameters. The description does not repeat param details but adds meaningful context about how the tool's output informs the usage of those parameters in create_inference, thus enhancing semantic understanding.

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 clearly states 'Explain how to use a public prompt_style', using a specific verb and resource. It distinguishes from sibling tools like 'create_inference' and 'list_available_styles' by focusing on usage explanation.

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?

Directly advises 'Use this before create_inference if you are unsure...' and lists specific scenarios (input_image, reference_images, style_reference_images). Provides explicit when-to-use guidance and implies alternative by referencing create_inference.

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

list_available_modelsList ModelsA
Read-onlyIdempotent
Inspect

Return unique public model identifiers available in /v2/styles/selector.

ParametersJSON Schema
NameRequiredDescriptionDefault
rd_api_keyNoRetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and non-destructive behavior. The description adds the endpoint path and the uniqueness/public qualifiers, but provides no further behavioral context such as authentication behavior, ordering, or open-world implications.

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?

A single front-loaded sentence conveys the core purpose with no filler. Every word contributes meaning, and the most important information appears immediately.

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?

The tool is simple, has full parameter documentation, a complete output schema, and annotations covering safety and idempotency. The description covers what is returned and where, though it does not help an agent disambiguate between this and sibling list tools.

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%: the only parameter, rd_api_key, is fully documented in the input schema. The description adds no parameter-level detail, so the baseline of 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?

The description uses a specific verb 'Return' and identifies the resource as 'unique public model identifiers available in /v2/styles/selector'. This clearly distinguishes it from sibling tools like list_available_styles and list_edit_tools.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus alternative list tools, and does not mention any exclusion criteria or contexts where a sibling would be more appropriate. Usage must be inferred entirely from the tool's name and endpoint.

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

list_available_stylesList StylesA
Read-onlyIdempotent
Inspect

List publicly available styles from /v2/styles/selector. Use this to discover valid prompt_style values plus style metadata such as require_input_image and supports_reference_images.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabNoFilter styles by tab: tab:image, tab:animation, tab:advanced-animation, or tab:tileset.
modelNoFilter styles by model: rd_fast, rd_plus, rd_pro, or rd_mini.
rd_api_keyNoRetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so no safety contradiction exists. The description adds useful behavioral context by naming the exact endpoint and the metadata fields returned, which goes beyond the annotations. It does not go into details like pagination or response envelope, but the output schema likely covers that.

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 two sentences with no filler. The primary action and endpoint are front-loaded, followed immediately by the practical purpose and example metadata fields. Every sentence earns its place.

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?

The tool has no required parameters, a complete input schema, an output schema, and annotations that clearly establish it as a safe read-only operation. The description adds endpoint and purpose context, making the tool fully understandable for an agent without any apparent missing information.

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 explains tab, model, and rd_api_key with their filtering values and defaults. The description adds overall purpose but does not enrich the meaning of individual parameters beyond what the schema provides. Therefore, the baseline 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 uses a specific verb and resource: 'List publicly available styles from /v2/styles/selector.' It also clearly states the tool's purpose: discovering valid prompt_style values and style metadata such as require_input_image and supports_reference_images. This clearly differentiates it from sibling tools like list_available_models or style-management tools.

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?

The description gives clear usage context: 'Use this to discover valid prompt_style values plus style metadata.' This implies the right time to call it when an agent needs style options before creating or running an inference. It does not explicitly mention alternatives or exclusions, such as not using it for user-defined styles, so it stops short of a 5.

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

list_edit_toolsList Edit ToolsA
Read-onlyIdempotent
Inspect

List the enabled canvas edit tools from /v2/edit/tools with their fields, costs, and limits.

Edit tools are the recommended way to post-process generated pixel art: background removal, palette conversion, color reduction, pixel correction, rotation, inpainting, outpainting, seam tiling, and prompt-driven edits.

ParametersJSON Schema
NameRequiredDescriptionDefault
rd_api_keyNoRetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds the endpoint and the fact that it lists only enabled tools with their fields, costs, and limits, which is useful but not extensive. No contradiction with annotations.

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?

Two sentences, both purposeful. The first sentence states the core action and endpoint, and the second adds useful context about why edit tools matter. There is no wasted text or repetition of schema details.

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 simple, read-only listing tool with a single optional parameter, an output schema, and strong annotations, the description is complete enough. It names the endpoint, the data returned, and the domain context, leaving no significant gaps for an agent to call it correctly.

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?

The only parameter, rd_api_key, has full schema description coverage. The description does not need to explain the parameter, and the schema already provides its type, default, and purpose. Baseline 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 uses specific language: 'List the enabled canvas edit tools from /v2/edit/tools with their fields, costs, and limits.' This clearly identifies the verb, resource, endpoint, and what is returned, distinguishing it from sibling tools like run_edit_tool and estimate_edit_tool_cost.

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

Usage Guidelines3/5

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

The description provides helpful context by positioning edit tools as the recommended post-processing approach, but it does not explicitly state when to use this listing tool versus alternatives such as run_edit_tool or estimate_edit_tool_cost. Usage context is implied rather than directly stated.

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

list_inference_jobsList Async JobsA
Read-onlyIdempotent
Inspect

List your most recent async jobs, newest first (GET /v2/inferences/tasks).

Recovery path: if a submission response was lost (timeout, disconnect) before the task_id arrived, the job was still accepted — find it here instead of re-submitting and being charged twice. Then poll it with get_inference_job.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of recent jobs to return (1-100, default 20).
statusNoOptional: only return jobs with this status.
rd_api_keyNoRetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the annotations, it discloses non-obvious durability behavior: a job may be accepted even if the response was lost, and listing it here is the safe way to recover it without re-submitting. This adds real value beyond readOnly/idempotent hints and has no contradiction with annotations.

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?

Two concise, purpose-driven sentences followed by a useful recovery note. Every sentence contributes: the first defines the operation, the second explains why an agent might need this tool, and the sibling pointer adds actional guidance.

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 simple list operation with an output schema and complete annotations, the description covers purpose, ordering, recovery behavior, and the next-step sibling. Nothing needed for correct invocation is missing.

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?

Input schema coverage is 100%, with clear descriptions for limit, status, and rd_api_key. The description itself adds little parameter-specific meaning besides confirming the list is reverse-chronological, so the baseline of 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?

The description clearly states a specific verb and resource: 'List your most recent async jobs, newest first', and includes the exact endpoint. It also distinguishes itself from the sibling get_inference_job by positioning it as the polling tool to use after this listing.

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 provides an explicit recovery path: when a submission response is lost before task_id arrives, use this tool instead of re-submitting to avoid double charges. It also names get_inference_job as the next step, but doesn't explicitly state when not to use this tool for single-job lookups.

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

logoutLog OutA
Idempotent
Inspect

Clear the authenticated RetroDiffusion API key for this MCP session.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

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

The description adds valuable context beyond annotations: it specifies the exact behavior of clearing the API key per session, confirming idempotency and non-destructiveness. No contradictions.

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?

Single sentence, no waste, front-loaded with the action and resource.

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 zero-parameter tool with an output schema, the description is complete and leaves no ambiguity about its function.

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?

No parameters exist; baseline 4 is appropriate. The description covers the tool's purpose sufficiently.

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 clearly states the action ('clear') and the specific resource ('authenticated RetroDiffusion API key' for this MCP session). It effectively distinguishes from sibling 'authenticate'.

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?

The description implies usage for ending an authenticated session but lacks explicit when-to-use or when-not-to-use guidance compared to alternatives.

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

run_edit_toolRun Edit ToolAInspect

Run a canvas edit tool on an image via /v2/edit/tools/{tool_id}.

Free tools: color_reducer, palette_converter, pixel_correction, k_centroid_downscale, rotate. $0.01 tools: background_remover, color_style_transfer. Premium ($0.18): image_edit, inpainting, outpainting, seam_tiling. Use estimate_edit_tool_cost first for anything that charges — estimation is free. The edited image is returned in base64_images.

ParametersJSON Schema
NameRequiredDescriptionDefault
seedNoSeed for reproducible results; reuse the same seed to iterate on one composition.
widthNok_centroid_downscale: target width in pixels (required for that tool).
heightNok_centroid_downscale: target height in pixels (required for that tool).
promptNoWhat to generate or change (required by image_edit and inpainting; optional for outpainting).
tile_xNoseam_tiling: repair the horizontal seam (tool default applies when omitted).
tile_yNoseam_tiling: repair the vertical seam (tool default applies when omitted).
tool_idYesEdit tool id. One of: image_edit, inpainting, outpainting, seam_tiling, background_remover, color_style_transfer, color_reducer, palette_converter, pixel_correction, k_centroid_downscale, rotate. Use list_edit_tools for authoritative fields, costs, and limits.
expand_topNoOutpainting: pixels to add on the top edge.
mask_imageNoBase64 mask for inpainting: white pixels are regenerated, black pixels are kept.
rd_api_keyNoRetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth.
seam_widthNoseam_tiling: width in pixels of the seam band to repair.
color_countNocolor_reducer: target number of colors.
dither_modeNocolor_reducer/palette_converter: dithering mode.
expand_leftNoOutpainting: pixels to add on the left edge.
input_imageYesBase64 PNG of the image to edit (raw base64 or a data URL). Required by every edit tool.
expand_rightNoOutpainting: pixels to add on the right edge.
soft_inpaintNoInpainting/outpainting: blend edits softly with the surrounding pixels.
expand_bottomNoOutpainting: pixels to add on the bottom edge.
input_paletteNoBase64 image of a color palette; output colors are constrained to it.
dither_strengthNocolor_reducer/palette_converter: dithering strength, 0-10 (0 disables, default 5).
timeout_secondsNoRead-timeout override in seconds for this call; increase for animations or large batches.
rotation_degreesNorotate: rotation angle in degrees (clean-edge pixel rotation).
extra_input_imageNoSecond base64 input image for styles that use one (e.g. the second texture in rd_tile__tileset_advanced).
force_solid_pixelsNobackground_remover: force fully solid or fully transparent pixels (tool default applies when omitted).
repair_window_sizeNoseam_tiling: size of the repair window.
transparency_thresholdNobackground_remover: alpha threshold for treating pixels as transparent.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

The description adds useful operational behavior beyond the annotations: per-tool pricing, the endpoint pattern, and the base64_images return format. Annotations already cover read-only/idempotent/destructive hints, so the description isn't burdened with those, and there is no contradiction.

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: endpoint, tool list with costs, free estimation caveat, and output format. It is compact, scannable, and front-loaded with the primary action.

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 26-parameter tool with 100% schema coverage and an output schema, the description does not need to enumerate parameters. It covers the critical workflow (estimate before paid calls), cost, and output representation, making the definition complete enough for safe 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?

With 100% schema coverage, the schema already documents most parameters, but the description adds cost categories attached to specific tool_id values, which helps an agent select the right tool parameter. It also notes that the edited image returns in base64, which is relevant to handling the output but not a schema parameter.

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 action and resource—'Run a canvas edit tool on an image via /v2/edit/tools/{tool_id}'—and enumerates the valid tool IDs, making the tool's job unmistakable and separating it from cost-estimation and listing siblings. The name alone is generic, but the description removes ambiguity.

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 an explicit workflow rule: call estimate_edit_tool_cost first for any paid tool, and flags which tools are free versus paid. It does not explicitly say 'use list_edit_tools instead when you only need metadata' or list exclusions, but the pricing guidance is concrete and actionable.

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

start_inference_jobStart Async GenerationAInspect

Start a generation as an async job (POST /v2/inferences with async=true) and return a task_id.

Recommended for advanced animations (rd_advanced_animation__*), other animation styles, and batches — they run for tens of seconds and can outlive a synchronous MCP call. Poll the returned task_id with get_inference_job roughly every 2-5 seconds.

ParametersJSON Schema
NameRequiredDescriptionDefault
seedNoSeed for reproducible results; reuse the same seed to iterate on one composition.
widthYesOutput width in pixels. Each style enforces its own limits; check list_available_styles or get_style_usage. Genre-native sizes per item: Minecraft 16; items/icons/props 32-64; character sprites 16-48 retro or 96-128 showcase; tiles 16-32; portraits 96-128; full scenes 256 (RD Pro's max; 16:9 scenes = 256x144 — pixel art integer-upscales losslessly).
heightYesOutput height in pixels. Each style enforces its own limits; check list_available_styles or get_style_usage.
promptYesDescribe the SUBJECT only, richly and concretely ('a squat round flask of glowing crimson liquid, cork stopper, bright highlight on the upper-left rim' beats 'a potion'). Never write 'pixel art' — the selected style handles all rendering. For standalone assets, state a flat background color that contrasts the subject (default 'on a plain white background') and pair with remove_bg=true; never write 'transparent background' (that is remove_bg's job), and never leave the background unstated (it drifts to drab dark gray). Scenes instead describe their real environment.
tile_xNoMake the result tile seamlessly on the horizontal axis.
tile_yNoMake the result tile seamlessly on the vertical axis.
strengthNoHow strongly to change input_image, 0-1 (default 0.75). Lower values keep more of the original.
remove_bgNoRemove the background for transparent output. Use true for standalone assets and pair it with a stated contrasting background in the prompt ('on a plain white background') — removal works best on flat contrasting backdrops. Animations inherit the start frame's transparency automatically.
num_imagesNoHow many images to generate in one batch; a batch produces varied takes of one prompt (the right way to get N distinct items as individually usable images — never pack N items into a single sheet/grid image unless a sheet IS the deliverable). Style-specific maximums apply.
rd_api_keyNoRetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth.
input_imageNoBase64 PNG used as the main source image for edits, variations, tilesets, animations, or styles that require a starting frame. Raw base64 or a data URL. Send the NATIVE-resolution image: an upscaled display copy (e.g. a 96px sprite exported at 4x = 384px) exceeds style ranges and gets rejected — downscale to the true pixel grid first. For advanced animations the frame's dimensions must equal width/height, and sprites whose opaque pixels touch the canvas edge animate badly (pad onto a larger transparent canvas first, e.g. 48x48 content onto 64x64).
extra_promptNoSecondary prompt for styles that use one (e.g. the transition texture in advanced tilesets).
prompt_styleYesStyle id from list_available_styles (e.g. 'rd_fast__default', 'rd_pro__isometric', or a custom 'user__...' style).
input_paletteNoBase64 image of a color palette; output colors are constrained to it.
upload_outputsNoHost outputs and return URLs in output_urls (recommended for MCP clients) instead of only base64 payloads.
frames_durationNoAnimation frame count for animation styles: 4, 6, 8, 10, 12, or 16. Pick deliberately: 8 is the sweet spot for loops (walking, idle), 6 for a snappy single action, 10-12 for flowing ambient motion.
timeout_secondsNoRead-timeout override in seconds for this call; increase for animations or large batches.
reference_imagesNoExtra per-inference guidance images (base64), only for styles where supports_reference_images is true. Not for defining custom styles.
extra_input_imageNoSecond base64 input image for styles that use one (e.g. the second texture in rd_tile__tileset_advanced).
return_pre_paletteNoAlso return the render from before palette constraints were applied.
return_spritesheetNoFor animation styles: return a PNG sprite sheet instead of a GIF.
return_non_bg_removedNoAlso return the render from before background removal was applied.
upscale_output_factorNoInteger upscale factor for the output image; 1 returns the native pixel size.
bypass_prompt_expansionNoSkip the automatic LLM prompt enrichment and use the prompt verbatim.
include_downloadable_dataNoInclude extra structured assets when available (e.g. tileset atlas JSON, animation frame data).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already frame this as a non-read-only, non-idempotent write; the description adds real behavioral detail beyond that — the call returns immediately with task_id, the job runs asynchronously for tens of seconds, and the agent must poll rather than expect a synchronous result. It does not mention cost or failure-mode behavior, but nothing contradits the annotations.

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 sentences, each earning its place: the core action and return value, the when-to-use recommendation, and the polling cadence. The most important fact (async=true returns task_id) is front-loaded before the use-case context. No filler or repeated schema content.

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 25-param tool with an output schema and 100% param coverage, the description covers the two decisions that matter: whether to route here (animations, batches, long-running jobs) and what to do next (poll task_id). It could have named create_inference explicitly as the sync alternative and pointed at estimate_inference_cost for pre-flight cost checks, but nothing critical to correct invocation is missing.

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% and each of the 25 parameters already carries rich documentation (prompt style constraints, base64 image notes, animation frame counts, upscaling, palette flags). The description adds no per-param semantics, but with coverage above 80% the rubric baselines this at 3; no compensation is needed.

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 (start), resource (a generation/inference job), mechanism (POST /v2/inferences with async=true), and return (task_id). The phrase 'async job' differentiates it from the synchronous sibling create_inference, and it names its poll companion get_inference_job. No ambiguity as to what operation this performs.

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?

Explicitly recommends the tool for advanced animations (rd_advanced_animation__*), other animation styles, and batch, with the concrete rationale that they run for tens of seconds and can outlive a synchronous MCP call. It also gives an actionable follow-through: poll the returned task_id with get_inference_job every 2-5 seconds. It stops short of naming create_inference as the explicit alternative for short simple request, but the sync/async contrast is strongly implied.

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

update_user_styleUpdate Custom StyleA
Idempotent
Inspect

Update a public RD Pro user style using /v2/styles/{style_id}.

Use style_reference_images and style_reference_caption for style-level references. These are baked into the custom style and are not the same as per-inference reference_images.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNew display name for the custom style.
style_idYesStyle id — the internal id or the prompt_style/public id (e.g. user__mystyle_ab12).
min_widthNoForce a fixed width (96-256); must be provided together with min_height.
min_heightNoForce a fixed height (96-256); must be provided together with min_width.
rd_api_keyNoRetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth.
style_iconNoIcon name for the style (e.g. 'sparkles').
descriptionNoShort description of the custom style.
force_paletteNoAlways apply palette constraining for this style.
force_bg_removalNoAlways remove backgrounds for this style.
llm_instructionsNoInstructions for the prompt-expansion LLM when this style is used.
reference_imagesNoAlias for style_reference_images on this tool; prefer style_reference_images and never provide both.
reference_captionNoAlias for style_reference_caption on this tool; prefer style_reference_caption and never provide both.
apply_prompt_fixerNoLet the API tidy prompts automatically for this style (default true).
user_prompt_templateNoPrompt template for the style; must contain the {prompt} token.
style_reference_imagesNoStyle-level reference image(s), base64, baked into the custom style (max 1 via the public API).
reset_forced_dimensionsNoClear previously forced dimensions; do not combine with min_width/min_height.
style_reference_captionNoCaption describing the style reference image(s).
expanded_llm_instructionsNoExtended instructions for the prompt-expansion LLM.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

The description adds one meaningful behavioral detail: style-level references are 'baked into the custom style' and are distinct from per-inference reference_images. It does not disclose whether unspecified fields are preserved or reset, what side effects updating a style has, or any auth-related behavior. The annotations are also internally inconsistent because destructiveHint appears twice with conflicting values.

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 three short sentences with no filler. The core operation is front-loaded, and the important caveat about style-level references is stated clearly and compactly.

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

Completeness3/5

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

For a tool with 18 parameters, an output schema, and several mutual-exclusion constraints, the description is somewhat thin. It covers the endpoint and the reference distinction, and the schema compensates for parameter-level details, but it omits update semantics such as whether omitted fields are preserved and does not guide the agent on when to update versus create or delete a style.

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 parameter meanings, defaults, and constraints such as min_width being required together with min_height. The description adds only the style-level versus per-inference reference distinction, which is useful but only partially extends beyond the schema text.

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 opens with 'Update a public RD Pro user style using /v2/styles/{style_id}', which names a specific verb, resource, and endpoint. This clearly identifies the operation as an update rather than a read or list operation, though it does not explicitly contrast with create_user_style or delete_user_style.

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

Usage Guidelines3/5

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

The description gives useful guidance for choosing style_reference_images/style_reference_caption over per-inference reference_images, which helps with parameter selection. However, it does not explain when to prefer update_user_style over create_user_style or delete_user_style, nor does it mention preconditions or when not to use this tool.

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. 3 tool updates
    • Changedcreate_inference6 fields changed
      • changedInput schema / properties / frames_duration / description
        Previous value: -"Animation frame count for animation styles: 4, 6, 8, 10, 12, or 16."New value: +"Animation frame count for animation styles: 4, 6, 8, 10, 12, or 16. Pick deliberately: 8 is the sweet spot for loops (walking, idle), 6 for a snappy single action, 10-12 for flowing ambient motion."
      • changedInput schema / properties / input_image / description
        Previous value: -"Base64 PNG used as the main source image for edits, variations, tilesets, animations, or styles that require a starting frame. Raw base64 or a data URL."New value: +"Base64 PNG used as the main source image for edits, variations, tilesets, animations, or styles that require a starting frame. Raw base64 or a data URL. Send the NATIVE-resolution image: an upscaled display copy (e.g. a 96px sprite exported at 4x = 384px) exceeds style ranges and gets rejected — downscale to the true pixel grid first. For advanced animations the frame's dimensions must equal width/height, and sprites whose opaque pixels touch the canvas edge animate badly (pad onto a larger transparent canvas first, e.g. 48x48 content onto 64x64)."
      • changedInput schema / properties / num_images / description
        Previous value: -"How many images to generate in one batch. Style-specific maximums apply."New value: +"How many images to generate in one batch; a batch produces varied takes of one prompt (the right way to get N distinct items as individually usable images — never pack N items into a single sheet/grid image unless a sheet IS the deliverable). Style-specific maximums apply."
      • changedInput schema / properties / prompt / description
        Previous value: -"Describe the SUBJECT only (e.g. 'a knight resting by a campfire'). Never write 'pixel art' — the selected style handles all rendering."New value: +"Describe the SUBJECT only, richly and concretely ('a squat round flask of glowing crimson liquid, cork stopper, bright highlight on the upper-left rim' beats 'a potion'). Never write 'pixel art' — the selected style handles all rendering. For standalone assets, state a flat background color that contrasts the subject (default 'on a plain white background') and pair with remove_bg=true; never write 'transparent background' (that is remove_bg's job), and never leave the background unstated (it drifts to drab dark gray). Scenes instead describe their real environment."
      • changedInput schema / properties / remove_bg / description
        Previous value: -"Remove the background for transparent output."New value: +"Remove the background for transparent output. Use true for standalone assets and pair it with a stated contrasting background in the prompt ('on a plain white background') — removal works best on flat contrasting backdrops. Animations inherit the start frame's transparency automatically."
      • changedInput schema / properties / width / description
        Previous value: -"Output width in pixels. Each style enforces its own limits; check list_available_styles or get_style_usage."New value: +"Output width in pixels. Each style enforces its own limits; check list_available_styles or get_style_usage. Genre-native sizes per item: Minecraft 16; items/icons/props 32-64; character sprites 16-48 retro or 96-128 showcase; tiles 16-32; portraits 96-128; full scenes 256 (RD Pro's max; 16:9 scenes = 256x144 — pixel art integer-upscales losslessly)."
    • Changedestimate_inference_cost5 fields changed
      • changedInput schema / properties / frames_duration / description
        Previous value: -"Animation frame count for animation styles: 4, 6, 8, 10, 12, or 16."New value: +"Animation frame count for animation styles: 4, 6, 8, 10, 12, or 16. Pick deliberately: 8 is the sweet spot for loops (walking, idle), 6 for a snappy single action, 10-12 for flowing ambient motion."
      • changedInput schema / properties / input_image / description
        Previous value: -"Base64 PNG used as the main source image for edits, variations, tilesets, animations, or styles that require a starting frame. Raw base64 or a data URL."New value: +"Base64 PNG used as the main source image for edits, variations, tilesets, animations, or styles that require a starting frame. Raw base64 or a data URL. Send the NATIVE-resolution image: an upscaled display copy (e.g. a 96px sprite exported at 4x = 384px) exceeds style ranges and gets rejected — downscale to the true pixel grid first. For advanced animations the frame's dimensions must equal width/height, and sprites whose opaque pixels touch the canvas edge animate badly (pad onto a larger transparent canvas first, e.g. 48x48 content onto 64x64)."
      • changedInput schema / properties / num_images / description
        Previous value: -"How many images to generate in one batch. Style-specific maximums apply."New value: +"How many images to generate in one batch; a batch produces varied takes of one prompt (the right way to get N distinct items as individually usable images — never pack N items into a single sheet/grid image unless a sheet IS the deliverable). Style-specific maximums apply."
      • changedInput schema / properties / prompt / description
        Previous value: -"Describe the SUBJECT only (e.g. 'a knight resting by a campfire'). Never write 'pixel art' — the selected style handles all rendering."New value: +"Describe the SUBJECT only, richly and concretely ('a squat round flask of glowing crimson liquid, cork stopper, bright highlight on the upper-left rim' beats 'a potion'). Never write 'pixel art' — the selected style handles all rendering. For standalone assets, state a flat background color that contrasts the subject (default 'on a plain white background') and pair with remove_bg=true; never write 'transparent background' (that is remove_bg's job), and never leave the background unstated (it drifts to drab dark gray). Scenes instead describe their real environment."
      • changedInput schema / properties / width / description
        Previous value: -"Output width in pixels. Each style enforces its own limits; check list_available_styles or get_style_usage."New value: +"Output width in pixels. Each style enforces its own limits; check list_available_styles or get_style_usage. Genre-native sizes per item: Minecraft 16; items/icons/props 32-64; character sprites 16-48 retro or 96-128 showcase; tiles 16-32; portraits 96-128; full scenes 256 (RD Pro's max; 16:9 scenes = 256x144 — pixel art integer-upscales losslessly)."
    • Changedstart_inference_job6 fields changed
      • changedInput schema / properties / frames_duration / description
        Previous value: -"Animation frame count for animation styles: 4, 6, 8, 10, 12, or 16."New value: +"Animation frame count for animation styles: 4, 6, 8, 10, 12, or 16. Pick deliberately: 8 is the sweet spot for loops (walking, idle), 6 for a snappy single action, 10-12 for flowing ambient motion."
      • changedInput schema / properties / input_image / description
        Previous value: -"Base64 PNG used as the main source image for edits, variations, tilesets, animations, or styles that require a starting frame. Raw base64 or a data URL."New value: +"Base64 PNG used as the main source image for edits, variations, tilesets, animations, or styles that require a starting frame. Raw base64 or a data URL. Send the NATIVE-resolution image: an upscaled display copy (e.g. a 96px sprite exported at 4x = 384px) exceeds style ranges and gets rejected — downscale to the true pixel grid first. For advanced animations the frame's dimensions must equal width/height, and sprites whose opaque pixels touch the canvas edge animate badly (pad onto a larger transparent canvas first, e.g. 48x48 content onto 64x64)."
      • changedInput schema / properties / num_images / description
        Previous value: -"How many images to generate in one batch. Style-specific maximums apply."New value: +"How many images to generate in one batch; a batch produces varied takes of one prompt (the right way to get N distinct items as individually usable images — never pack N items into a single sheet/grid image unless a sheet IS the deliverable). Style-specific maximums apply."
      • changedInput schema / properties / prompt / description
        Previous value: -"Describe the SUBJECT only (e.g. 'a knight resting by a campfire'). Never write 'pixel art' — the selected style handles all rendering."New value: +"Describe the SUBJECT only, richly and concretely ('a squat round flask of glowing crimson liquid, cork stopper, bright highlight on the upper-left rim' beats 'a potion'). Never write 'pixel art' — the selected style handles all rendering. For standalone assets, state a flat background color that contrasts the subject (default 'on a plain white background') and pair with remove_bg=true; never write 'transparent background' (that is remove_bg's job), and never leave the background unstated (it drifts to drab dark gray). Scenes instead describe their real environment."
      • changedInput schema / properties / remove_bg / description
        Previous value: -"Remove the background for transparent output."New value: +"Remove the background for transparent output. Use true for standalone assets and pair it with a stated contrasting background in the prompt ('on a plain white background') — removal works best on flat contrasting backdrops. Animations inherit the start frame's transparency automatically."
      • changedInput schema / properties / width / description
        Previous value: -"Output width in pixels. Each style enforces its own limits; check list_available_styles or get_style_usage."New value: +"Output width in pixels. Each style enforces its own limits; check list_available_styles or get_style_usage. Genre-native sizes per item: Minecraft 16; items/icons/props 32-64; character sprites 16-48 retro or 96-128 showcase; tiles 16-32; portraits 96-128; full scenes 256 (RD Pro's max; 16:9 scenes = 256x144 — pixel art integer-upscales losslessly)."
  2. 2 tool updates
    • Changedestimate_edit_tool_cost1 field changed
      • changedInput schema / properties / dither_strength / description
        Previous value: -"color_reducer/palette_converter: dithering strength."New value: +"color_reducer/palette_converter: dithering strength, 0-10 (0 disables, default 5)."
    • Changedrun_edit_tool1 field changed
      • changedInput schema / properties / dither_strength / description
        Previous value: -"color_reducer/palette_converter: dithering strength."New value: +"color_reducer/palette_converter: dithering strength, 0-10 (0 disables, default 5)."
  3. 1 tool update
    • Addedget_inference_result
  4. 1 tool update
    • Addedlist_inference_jobs
  5. 1 tool update
    • Changedfix_pixel_art6 fields changed
      • addedInput schema / properties / image_url
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Public HTTPS PNG or JPEG URL to reconstruct. Provide this or input_image, not both. URL downloads may contain up to 20 MB and bypass the API request-body limit."
        +}
      • addedInput schema / properties / input_image / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • addedInput schema / properties / input_image / default
        Added value: +null
      • changedInput schema / properties / input_image / description
        Previous value: -"Base64 PNG or JPEG to reconstruct at its native pixel grid. Raw base64 or a data URL; minimum 16x16, maximum 4 megapixels, and the complete request JSON must stay within 900,000 bytes."New value: +"Base64 PNG or JPEG to reconstruct at its native pixel grid. Raw base64 or a data URL; provide this or image_url, not both. Decoded input may contain up to 16 megapixels, and complete base64 request JSON must stay within 900,000 bytes."
      • removedInput schema / properties / input_image / type
        Removed value: -"string"
      • removedInput schema / required
        Removed value: -[
        -  "input_image"
        -]
  6. 1 tool update
    • Addedfix_pixel_art
  7. 16 tool updates
    • Changedauthenticate1 field changed
      • addedInput schema / properties / api_key / description
        Added value: +"RetroDiffusion API key (rdpk-...), created free at https://retrodiffusion.ai/app/devtools."
    • Changedcreate_inference25 fields changed
      • addedInput schema / properties / bypass_prompt_expansion / description
        Added value: +"Skip the automatic LLM prompt enrichment and use the prompt verbatim."
      • addedInput schema / properties / extra_input_image / description
        Added value: +"Second base64 input image for styles that use one (e.g. the second texture in rd_tile__tileset_advanced)."
      • addedInput schema / properties / extra_prompt / description
        Added value: +"Secondary prompt for styles that use one (e.g. the transition texture in advanced tilesets)."
      • addedInput schema / properties / frames_duration / description
        Added value: +"Animation frame count for animation styles: 4, 6, 8, 10, 12, or 16."
      • addedInput schema / properties / height / description
        Added value: +"Output height in pixels. Each style enforces its own limits; check list_available_styles or get_style_usage."
      • addedInput schema / properties / include_downloadable_data / description
        Added value: +"Include extra structured assets when available (e.g. tileset atlas JSON, animation frame data)."
      • addedInput schema / properties / input_image / description
        Added value: +"Base64 PNG used as the main source image for edits, variations, tilesets, animations, or styles that require a starting frame. Raw base64 or a data URL."
      • addedInput schema / properties / input_palette / description
        Added value: +"Base64 image of a color palette; output colors are constrained to it."
      • addedInput schema / properties / num_images / description
        Added value: +"How many images to generate in one batch. Style-specific maximums apply."
      • addedInput schema / properties / prompt / description
        Added value: +"Describe the SUBJECT only (e.g. 'a knight resting by a campfire'). Never write 'pixel art' — the selected style handles all rendering."
      • addedInput schema / properties / prompt_style / description
        Added value: +"Style id from list_available_styles (e.g. 'rd_fast__default', 'rd_pro__isometric', or a custom 'user__...' style)."
      • addedInput schema / properties / rd_api_key / description
        Added value: +"RetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth."
      • addedInput schema / properties / reference_images / description
        Added value: +"Extra per-inference guidance images (base64), only for styles where supports_reference_images is true. Not for defining custom styles."
      • addedInput schema / properties / remove_bg / description
        Added value: +"Remove the background for transparent output."
      • addedInput schema / properties / return_non_bg_removed / description
        Added value: +"Also return the render from before background removal was applied."
      • addedInput schema / properties / return_pre_palette / description
        Added value: +"Also return the render from before palette constraints were applied."
      • addedInput schema / properties / return_spritesheet / description
        Added value: +"For animation styles: return a PNG sprite sheet instead of a GIF."
      • addedInput schema / properties / seed / description
        Added value: +"Seed for reproducible results; reuse the same seed to iterate on one composition."
      • addedInput schema / properties / strength / description
        Added value: +"How strongly to change input_image, 0-1 (default 0.75). Lower values keep more of the original."
      • addedInput schema / properties / tile_x / description
        Added value: +"Make the result tile seamlessly on the horizontal axis."
      • addedInput schema / properties / tile_y / description
        Added value: +"Make the result tile seamlessly on the vertical axis."
      • addedInput schema / properties / timeout_seconds / description
        Added value: +"Read-timeout override in seconds for this call; increase for animations or large batches."
      • addedInput schema / properties / upload_outputs / description
        Added value: +"Host outputs and return URLs in output_urls (recommended for MCP clients) instead of only base64 payloads."
      • addedInput schema / properties / upscale_output_factor / description
        Added value: +"Integer upscale factor for the output image; 1 returns the native pixel size."
      • addedInput schema / properties / width / description
        Added value: +"Output width in pixels. Each style enforces its own limits; check list_available_styles or get_style_usage."
    • Changedcreate_user_style16 fields changed
      • addedInput schema / properties / apply_prompt_fixer / description
        Added value: +"Let the API tidy prompts automatically for this style (default true)."
      • addedInput schema / properties / description / description
        Added value: +"Short description of the custom style."
      • addedInput schema / properties / expanded_llm_instructions / description
        Added value: +"Extended instructions for the prompt-expansion LLM."
      • addedInput schema / properties / force_bg_removal / description
        Added value: +"Always remove backgrounds for this style."
      • addedInput schema / properties / force_palette / description
        Added value: +"Always apply palette constraining for this style."
      • addedInput schema / properties / llm_instructions / description
        Added value: +"Instructions for the prompt-expansion LLM when this style is used."
      • addedInput schema / properties / min_height / description
        Added value: +"Force a fixed height (96-256); must be provided together with min_width."
      • addedInput schema / properties / min_width / description
        Added value: +"Force a fixed width (96-256); must be provided together with min_height."
      • addedInput schema / properties / name / description
        Added value: +"Display name for the custom style."
      • addedInput schema / properties / rd_api_key / description
        Added value: +"RetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth."
      • addedInput schema / properties / reference_caption / description
        Added value: +"Alias for style_reference_caption on this tool; prefer style_reference_caption and never provide both."
      • addedInput schema / properties / reference_images / description
        Added value: +"Alias for style_reference_images on this tool; prefer style_reference_images and never provide both."
      • addedInput schema / properties / style_icon / description
        Added value: +"Icon name for the style (e.g. 'sparkles')."
      • addedInput schema / properties / style_reference_caption / description
        Added value: +"Caption describing the style reference image(s)."
      • addedInput schema / properties / style_reference_images / description
        Added value: +"Style-level reference image(s), base64, baked into the custom style (max 1 via the public API)."
      • addedInput schema / properties / user_prompt_template / description
        Added value: +"Prompt template for the style; must contain the {prompt} token."
    • Changeddelete_user_style2 fields changed
      • addedInput schema / properties / rd_api_key / description
        Added value: +"RetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth."
      • addedInput schema / properties / style_id / description
        Added value: +"Style id — the internal id or the prompt_style/public id (e.g. user__mystyle_ab12)."
    • Addedestimate_edit_tool_cost
    • Changedestimate_inference_cost20 fields changed
      • addedInput schema / properties / bypass_prompt_expansion / description
        Added value: +"Skip the automatic LLM prompt enrichment and use the prompt verbatim."
      • addedInput schema / properties / extra_input_image / description
        Added value: +"Second base64 input image for styles that use one (e.g. the second texture in rd_tile__tileset_advanced)."
      • addedInput schema / properties / extra_prompt / description
        Added value: +"Secondary prompt for styles that use one (e.g. the transition texture in advanced tilesets)."
      • addedInput schema / properties / frames_duration / description
        Added value: +"Animation frame count for animation styles: 4, 6, 8, 10, 12, or 16."
      • addedInput schema / properties / height / description
        Added value: +"Output height in pixels. Each style enforces its own limits; check list_available_styles or get_style_usage."
      • addedInput schema / properties / include_downloadable_data / description
        Added value: +"Include extra structured assets when available (e.g. tileset atlas JSON, animation frame data)."
      • addedInput schema / properties / input_image / description
        Added value: +"Base64 PNG used as the main source image for edits, variations, tilesets, animations, or styles that require a starting frame. Raw base64 or a data URL."
      • addedInput schema / properties / input_palette / description
        Added value: +"Base64 image of a color palette; output colors are constrained to it."
      • addedInput schema / properties / num_images / description
        Added value: +"How many images to generate in one batch. Style-specific maximums apply."
      • addedInput schema / properties / prompt / description
        Added value: +"Describe the SUBJECT only (e.g. 'a knight resting by a campfire'). Never write 'pixel art' — the selected style handles all rendering."
      • addedInput schema / properties / prompt_style / description
        Added value: +"Style id from list_available_styles (e.g. 'rd_fast__default', 'rd_pro__isometric', or a custom 'user__...' style)."
      • addedInput schema / properties / rd_api_key / description
        Added value: +"RetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth."
      • addedInput schema / properties / reference_images / description
        Added value: +"Extra per-inference guidance images (base64), only for styles where supports_reference_images is true. Not for defining custom styles."
      • addedInput schema / properties / return_non_bg_removed / description
        Added value: +"Also return the render from before background removal was applied."
      • addedInput schema / properties / return_pre_palette / description
        Added value: +"Also return the render from before palette constraints were applied."
      • addedInput schema / properties / return_spritesheet / description
        Added value: +"For animation styles: return a PNG sprite sheet instead of a GIF."
      • addedInput schema / properties / strength / description
        Added value: +"How strongly to change input_image, 0-1 (default 0.75). Lower values keep more of the original."
      • addedInput schema / properties / timeout_seconds / description
        Added value: +"Read-timeout override in seconds for this call; increase for animations or large batches."
      • addedInput schema / properties / upscale_output_factor / description
        Added value: +"Integer upscale factor for the output image; 1 returns the native pixel size."
      • addedInput schema / properties / width / description
        Added value: +"Output width in pixels. Each style enforces its own limits; check list_available_styles or get_style_usage."
    • Changedget_balance1 field changed
      • addedInput schema / properties / rd_api_key / description
        Added value: +"RetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth."
    • Addedget_inference_job
    • Addedget_service_status
    • Changedget_style_usage2 fields changed
      • addedInput schema / properties / prompt_style / description
        Added value: +"Style id from list_available_styles (e.g. 'rd_fast__default', 'rd_pro__isometric', or a custom 'user__...' style)."
      • addedInput schema / properties / rd_api_key / description
        Added value: +"RetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth."
    • Changedlist_available_models1 field changed
      • addedInput schema / properties / rd_api_key / description
        Added value: +"RetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth."
    • Changedlist_available_styles3 fields changed
      • addedInput schema / properties / model / description
        Added value: +"Filter styles by model: rd_fast, rd_plus, rd_pro, or rd_mini."
      • addedInput schema / properties / rd_api_key / description
        Added value: +"RetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth."
      • addedInput schema / properties / tab / description
        Added value: +"Filter styles by tab: tab:image, tab:animation, tab:advanced-animation, or tab:tileset."
    • Addedlist_edit_tools
    • Addedrun_edit_tool
    • Addedstart_inference_job
    • Changedupdate_user_style18 fields changed
      • addedInput schema / properties / apply_prompt_fixer / description
        Added value: +"Let the API tidy prompts automatically for this style (default true)."
      • addedInput schema / properties / description / description
        Added value: +"Short description of the custom style."
      • addedInput schema / properties / expanded_llm_instructions / description
        Added value: +"Extended instructions for the prompt-expansion LLM."
      • addedInput schema / properties / force_bg_removal / description
        Added value: +"Always remove backgrounds for this style."
      • addedInput schema / properties / force_palette / description
        Added value: +"Always apply palette constraining for this style."
      • addedInput schema / properties / llm_instructions / description
        Added value: +"Instructions for the prompt-expansion LLM when this style is used."
      • addedInput schema / properties / min_height / description
        Added value: +"Force a fixed height (96-256); must be provided together with min_width."
      • addedInput schema / properties / min_width / description
        Added value: +"Force a fixed width (96-256); must be provided together with min_height."
      • addedInput schema / properties / name / description
        Added value: +"New display name for the custom style."
      • addedInput schema / properties / rd_api_key / description
        Added value: +"RetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth."
      • addedInput schema / properties / reference_caption / description
        Added value: +"Alias for style_reference_caption on this tool; prefer style_reference_caption and never provide both."
      • addedInput schema / properties / reference_images / description
        Added value: +"Alias for style_reference_images on this tool; prefer style_reference_images and never provide both."
      • addedInput schema / properties / reset_forced_dimensions / description
        Added value: +"Clear previously forced dimensions; do not combine with min_width/min_height."
      • addedInput schema / properties / style_icon / description
        Added value: +"Icon name for the style (e.g. 'sparkles')."
      • addedInput schema / properties / style_id / description
        Added value: +"Style id — the internal id or the prompt_style/public id (e.g. user__mystyle_ab12)."
      • addedInput schema / properties / style_reference_caption / description
        Added value: +"Caption describing the style reference image(s)."
      • addedInput schema / properties / style_reference_images / description
        Added value: +"Style-level reference image(s), base64, baked into the custom style (max 1 via the public API)."
      • addedInput schema / properties / user_prompt_template / description
        Added value: +"Prompt template for the style; must contain the {prompt} token."
  8. 11 tool updates
    • First observedauthenticate
    • First observedcreate_inference
    • First observedcreate_user_style
    • First observeddelete_user_style
    • First observedestimate_inference_cost
    • First observedget_balance
    • First observedget_style_usage
    • First observedlist_available_models
    • First observedlist_available_styles
    • First observedlogout
    • First observedupdate_user_style

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables detection and analysis of pre-public product launches through web search, content extraction, AI-powered scoring, and automated alerting. Provides comprehensive tools for surfacing stealth startup signals before they trend publicly.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Browse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Analyze LinkedIn & email outreach campaigns, track pipeline performance, and review lead conversations for RevOps, Sales Managers, and SDR teams.
    Apache 2.0
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources