Retro Diffusion Pixel Art
Server Details
Generate authentic pixel art - sprites, animations, and tilesets - from any MCP client
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.1/5 across 17 of 17 tools scored. Lowest: 3.4/5.
Each tool has a clearly distinct purpose with no overlapping functionality. The descriptions effectively differentiate between sync and async inference, edit tools vs cost estimation, and style management vs listing.
The majority of tools follow a consistent verb_noun pattern (e.g., create_inference, get_balance). However, 'authenticate' and 'logout' are standalone verbs without a noun, creating a minor inconsistency.
With 17 tools covering authentication, inference, style management, estimation, editing, and system status, the count is well-scoped for a generative art API without being overwhelming or sparse.
The tool surface covers core workflows (CRUD for styles, sync/async inference, cost estimation, edit tools). A minor gap is the lack of a tool to list user-created styles, as only public styles are listed.
Available Tools
17 toolsauthenticateAuthenticateARead-onlyIdempotentInspect
Authenticate this MCP session with a RetroDiffusion public API key.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | RetroDiffusion API key (rdpk-...), created free at https://retrodiffusion.ai/app/devtools. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds context about the key format and source, but does not explain side effects like session state changes or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with the purpose, no wasted words. Highly concise and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a single parameter with full schema, output schema exists, and annotations cover safety, the description is nearly complete. Minor gap: could clarify session effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already describes the api_key parameter in detail. The description adds no new meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'authenticate' and the resource 'this MCP session with a RetroDiffusion public API key'. It is specific and distinguished from sibling tools like 'create_inference' or 'logout'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The description does not mention prerequisites, ordering (e.g., must be called before other tools), or when not to use it.
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 /v1/inferences endpoint.
For the highest quality prefer RD Pro styles (rd_pro__*); they support reference_images for
character/style consistency. For animation styles prefer start_inference_job + get_inference_job
instead — animations are long-running. 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.
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | Seed for reproducible results; reuse the same seed to iterate on one composition. | |
| width | Yes | Output width in pixels. Each style enforces its own limits; check list_available_styles or get_style_usage. | |
| height | Yes | Output height in pixels. Each style enforces its own limits; check list_available_styles or get_style_usage. | |
| prompt | Yes | Describe the SUBJECT only (e.g. 'a knight resting by a campfire'). Never write 'pixel art' — the selected style handles all rendering. | |
| tile_x | No | Make the result tile seamlessly on the horizontal axis. | |
| tile_y | No | Make the result tile seamlessly on the vertical axis. | |
| strength | No | How strongly to change input_image, 0-1 (default 0.75). Lower values keep more of the original. | |
| remove_bg | No | Remove the background for transparent output. | |
| num_images | No | How many images to generate in one batch. Style-specific maximums apply. | |
| rd_api_key | No | RetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth. | |
| input_image | No | 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. | |
| extra_prompt | No | Secondary prompt for styles that use one (e.g. the transition texture in advanced tilesets). | |
| prompt_style | Yes | Style id from list_available_styles (e.g. 'rd_fast__default', 'rd_pro__isometric', or a custom 'user__...' style). | |
| input_palette | No | Base64 image of a color palette; output colors are constrained to it. | |
| upload_outputs | No | Host outputs and return URLs in output_urls (recommended for MCP clients) instead of only base64 payloads. | |
| frames_duration | No | Animation frame count for animation styles: 4, 6, 8, 10, 12, or 16. | |
| timeout_seconds | No | Read-timeout override in seconds for this call; increase for animations or large batches. | |
| reference_images | No | Extra per-inference guidance images (base64), only for styles where supports_reference_images is true. Not for defining custom styles. | |
| extra_input_image | No | Second base64 input image for styles that use one (e.g. the second texture in rd_tile__tileset_advanced). | |
| return_pre_palette | No | Also return the render from before palette constraints were applied. | |
| return_spritesheet | No | For animation styles: return a PNG sprite sheet instead of a GIF. | |
| return_non_bg_removed | No | Also return the render from before background removal was applied. | |
| upscale_output_factor | No | Integer upscale factor for the output image; 1 returns the native pixel size. | |
| bypass_prompt_expansion | No | Skip the automatic LLM prompt enrichment and use the prompt verbatim. | |
| include_downloadable_data | No | Include extra structured assets when available (e.g. tileset atlas JSON, animation frame data). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds significant behavioral context beyond the annotations: it states that the endpoint is public, that responses exclude raw base64 payloads to keep outputs compact, and that the tool is not suitable for animations (delegating to other tools). Since annotations only provide readOnlyHint=false, openWorldHint=true, etc., the description fills in the gaps about what the tool does and does not return, and its 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loads the main purpose, followed by usage tips and response format notes. It is not overly verbose, though some sentences could be tightened (e.g., 'For the highest quality prefer RD Pro styles...' and later 'Use input_image for...' are somewhat redundant). Still, it is concise enough for an agent to quickly grasp key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (25 parameters, 4 required, with output schema present), the description covers essential contextual information: main use cases, parameter constraints, alternatives for animations, and response behavior. It is sufficient for an AI agent to understand when and how to invoke this tool appropriately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for all 25 parameters, so the description does not need to add per-parameter details. However, the description provides general guidance on parameter usage (e.g., 'Use input_image for the main source image'), but not new semantics beyond the schema. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's purpose: generating images via the public /v1/inferences endpoint, with a focus on pixel art (as indicated by the title and style guidance). It distinguishes itself from sibling tools like start_inference_job for animations, and provides specific scope by mentioning preferred style classes and parameter usage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers explicit usage guidance: it recommends RD Pro styles for highest quality and using start_inference_job + get_inference_job for animations. It also clarifies when to use certain parameters (e.g., reference_images only on create_user_style/update_user_style), helping the agent select the right tool and parameters for the task.
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 /v1/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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Display name for the custom style. | |
| min_width | No | Force a fixed width (96-256); must be provided together with min_height. | |
| min_height | No | Force a fixed height (96-256); must be provided together with min_width. | |
| rd_api_key | No | RetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth. | |
| style_icon | No | Icon name for the style (e.g. 'sparkles'). | |
| description | No | Short description of the custom style. | |
| force_palette | No | Always apply palette constraining for this style. | |
| force_bg_removal | No | Always remove backgrounds for this style. | |
| llm_instructions | No | Instructions for the prompt-expansion LLM when this style is used. | |
| reference_images | No | Alias for style_reference_images on this tool; prefer style_reference_images and never provide both. | |
| reference_caption | No | Alias for style_reference_caption on this tool; prefer style_reference_caption and never provide both. | |
| apply_prompt_fixer | No | Let the API tidy prompts automatically for this style (default true). | |
| user_prompt_template | No | Prompt template for the style; must contain the {prompt} token. | |
| style_reference_images | No | Style-level reference image(s), base64, baked into the custom style (max 1 via the public API). | |
| style_reference_caption | No | Caption describing the style reference image(s). | |
| expanded_llm_instructions | No | Extended instructions for the prompt-expansion LLM. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Disclosures beyond annotations: explains that style_reference_images and style_reference_caption are baked into the custom style (persistent) and are not the same as per_inference reference_images. This clarifies the behavioral trait of style creation versus inference. Annotations were minimal (readOnlyHint, destructiveHint), so the description adds meaningful behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short, front-loaded sentences. First sentence states the primary purpose and endpoint. Second sentence adds critical clarification about parameter semantics. No filler. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 16 parameters, the description only highlights two. While the schema covers all parameters, the description could mention the required name parameter or common optional ones like description. The output schema exists, so return values are covered, but overall completeness is adequate but not rich.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, baseline is 3. The description adds value by clarifying the semantic distinction between style_reference_images (baked in) and per_inference reference_images (not baked in), and by directing the agent to prefer style_reference_images over the alias reference_images. This reduces ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool creates a user style from the RD Pro template using the /v1/styles endpoint. The verb 'create' and resource 'user style' are specific, distinguishing it from sibling tools like update_user_style and 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides some context about when to use the tool (creating a style from a template) but does not explicitly guide on when not to use it or contrast with alternatives like update_user_style. The distinction between style_level and per_inference references is helpful but more parameter guidance than usage context.
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 StyleADestructiveIdempotentInspect
Delete a user style using /v1/styles/{style_id}. style_id can be either internal id or prompt_style/public_id.
| Name | Required | Description | Default |
|---|---|---|---|
| style_id | Yes | Style id — the internal id or the prompt_style/public id (e.g. user__mystyle_ab12). | |
| rd_api_key | No | RetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, covering destructiveness and non-read-only nature. The description adds that style_id can be internal or public id, which is useful but not deep behavioral context. No mention of error handling or side effects beyond the annotation indications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loads the action, and is free of redundant content. Every sentence provides information: the endpoint and the acceptable id formats.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete tool with two parameters and an output schema, the description is minimally adequate. It lacks usage guidelines, irreversibility warning (though destructiveHint implies it), and details about the output. With richer annotations, it is passable but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with detailed descriptions for both parameters. The tool description repeats part of style_id's description (internal or public id) but adds no new semantic information beyond what the schema already provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool deletes a user style using the /v1/styles/{style_id} endpoint, specifying the verb and resource. It distinguishes from siblings like create_user_style and update_user_style by focusing on deletion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for deleting a custom style but provides no explicit guidance on when to use it versus alternatives, nor prerequisites or consequences. The action is straightforward, so implied usage is acceptable but not exemplary.
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)ARead-onlyIdempotentInspect
Validate an edit-tool request and estimate its cost and duration without running it. Always free.
| Name | Required | Description | Default |
|---|---|---|---|
| width | No | k_centroid_downscale: target width in pixels (required for that tool). | |
| height | No | k_centroid_downscale: target height in pixels (required for that tool). | |
| prompt | No | What to generate or change (required by image_edit and inpainting; optional for outpainting). | |
| tile_x | No | seam_tiling: repair the horizontal seam (tool default applies when omitted). | |
| tile_y | No | seam_tiling: repair the vertical seam (tool default applies when omitted). | |
| tool_id | Yes | Edit 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_top | No | Outpainting: pixels to add on the top edge. | |
| mask_image | No | Base64 mask for inpainting: white pixels are regenerated, black pixels are kept. | |
| rd_api_key | No | RetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth. | |
| seam_width | No | seam_tiling: width in pixels of the seam band to repair. | |
| color_count | No | color_reducer: target number of colors. | |
| dither_mode | No | color_reducer/palette_converter: dithering mode. | |
| expand_left | No | Outpainting: pixels to add on the left edge. | |
| input_image | Yes | Base64 PNG of the image to edit (raw base64 or a data URL). Required by every edit tool. | |
| expand_right | No | Outpainting: pixels to add on the right edge. | |
| soft_inpaint | No | Inpainting/outpainting: blend edits softly with the surrounding pixels. | |
| expand_bottom | No | Outpainting: pixels to add on the bottom edge. | |
| input_palette | No | Base64 image of a color palette; output colors are constrained to it. | |
| dither_strength | No | color_reducer/palette_converter: dithering strength. | |
| timeout_seconds | No | Read-timeout override in seconds for this call; increase for animations or large batches. | |
| rotation_degrees | No | rotate: rotation angle in degrees (clean-edge pixel rotation). | |
| extra_input_image | No | Second base64 input image for styles that use one (e.g. the second texture in rd_tile__tileset_advanced). | |
| force_solid_pixels | No | background_remover: force fully solid or fully transparent pixels (tool default applies when omitted). | |
| repair_window_size | No | seam_tiling: size of the repair window. | |
| transparency_threshold | No | background_remover: alpha threshold for treating pixels as transparent. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description adds value by stating 'Always free' and 'without running it', reinforcing safety and cost-free behavior. No contradictions. It doesn't detail what the cost/duration estimate looks like, but it's sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste. Every word serves a purpose: validates, estimates, cost, duration, without running, always free. Ideal for quick scanning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and the presence of an output schema, the description completely covers what the tool does: validate and estimate cost/duration without executing. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already provides individual parameter descriptions. The description adds no extra parameter-level meaning. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it validates an edit-tool request and estimates cost/duration without running it. It uses a specific verb (validate/estimate) and resource (edit-tool request). It distinguishes itself from sibling tools like run_edit_tool (which executes) and estimate_inference_cost (inference vs edit).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for pre-checking edit tool requests before execution, and 'Always free' encourages use. However, it lacks explicit when-not-to-use or alternatives. The context of siblings helps, but the description alone provides clear context.
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)ARead-onlyIdempotentInspect
Estimate generation cost using the public /v1/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.
| Name | Required | Description | Default |
|---|---|---|---|
| width | Yes | Output width in pixels. Each style enforces its own limits; check list_available_styles or get_style_usage. | |
| height | Yes | Output height in pixels. Each style enforces its own limits; check list_available_styles or get_style_usage. | |
| prompt | Yes | Describe the SUBJECT only (e.g. 'a knight resting by a campfire'). Never write 'pixel art' — the selected style handles all rendering. | |
| strength | No | How strongly to change input_image, 0-1 (default 0.75). Lower values keep more of the original. | |
| num_images | No | How many images to generate in one batch. Style-specific maximums apply. | |
| rd_api_key | No | RetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth. | |
| input_image | No | 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. | |
| extra_prompt | No | Secondary prompt for styles that use one (e.g. the transition texture in advanced tilesets). | |
| prompt_style | Yes | Style id from list_available_styles (e.g. 'rd_fast__default', 'rd_pro__isometric', or a custom 'user__...' style). | |
| input_palette | No | Base64 image of a color palette; output colors are constrained to it. | |
| frames_duration | No | Animation frame count for animation styles: 4, 6, 8, 10, 12, or 16. | |
| timeout_seconds | No | Read-timeout override in seconds for this call; increase for animations or large batches. | |
| reference_images | No | Extra per-inference guidance images (base64), only for styles where supports_reference_images is true. Not for defining custom styles. | |
| extra_input_image | No | Second base64 input image for styles that use one (e.g. the second texture in rd_tile__tileset_advanced). | |
| return_pre_palette | No | Also return the render from before palette constraints were applied. | |
| return_spritesheet | No | For animation styles: return a PNG sprite sheet instead of a GIF. | |
| return_non_bg_removed | No | Also return the render from before background removal was applied. | |
| upscale_output_factor | No | Integer upscale factor for the output image; 1 returns the native pixel size. | |
| bypass_prompt_expansion | No | Skip the automatic LLM prompt enrichment and use the prompt verbatim. | |
| include_downloadable_data | No | Include extra structured assets when available (e.g. tileset atlas JSON, animation frame data). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and destructiveHint=false, so the description's addition of 'Estimate generation cost' aligns with these but does not add beyond. It is consistent, but the behavioral insights are already captured by annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the main purpose. Every sentence adds value: first states the core function, second and third provide parameter guidance. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 20 parameters and an output schema, the description gives a high-level purpose and some parameter usage hints. It does not explain the output structure (cost response), but the presence of an output schema compensates. Slightly more guidance on parameter combinations would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds marginal value by suggesting when to use certain parameters (e.g., input_image for main source), but also mentions 'style_reference_images' which is not in the schema, potentially causing confusion.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Estimate generation cost using the public /v1/inferences endpoint with check_cost=true.' It uses a specific verb('estimate') and resource('cost'), and distinguishes it from siblings like create_inference 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage hints for parameters like input_image and reference_images, but does not explicitly state when to use this tool versus alternatives (e.g., create_inference). It lacks 'when not to use' guidance, though the purpose implies cost-checking before generation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_balanceGet BalanceBRead-onlyIdempotentInspect
Get credits/balance using the public /v1/inferences/credits endpoint.
| Name | Required | Description | Default |
|---|---|---|---|
| rd_api_key | No | RetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, destructiveHint, and idempotentHint. The description adds that the endpoint is 'public', which is a behavioral trait not in annotations. However, it does not elaborate on other behaviors like rate limits or auth requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that directly states the purpose and endpoint. No unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 (one optional parameter, output schema exists), the description is adequate. It covers the core functionality and endpoint. Could be improved by mentioning that it is a simple get of balance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for the one parameter. The description does not add any parameter-specific meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'credits/balance', and specifies the endpoint. It is clear what the tool does, but it does not explicitly distinguish from sibling tools like get_inference_job or get_service_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives or when not to use it. The description only states what it does, lacking usage context.
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 JobARead-onlyIdempotentInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | Async job id returned by start_inference_job. | |
| rd_api_key | No | RetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, etc. The description adds that raw base64 payloads are excluded from output, which is useful behavioral info beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no waste. Important info is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With annotations, full schema, and output schema present, the description is complete enough for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with descriptions. The tool description does not add additional parameter-level detail, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it checks the status of an async generation started with start_inference_job, lists possible statuses, and describes the result. This differentiates it from siblings like start_inference_job.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage after starting a job via start_inference_job, but does not explicitly state when not to use or exclude alternatives. Still, the context is clear enough for an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_service_statusService StatusARead-onlyIdempotentInspect
Check RetroDiffusion subsystem health (/v1/status, no auth). Useful before bulk generation runs.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, and destructiveHint=false. The description adds context by specifying the endpoint and that no authentication is needed, which aligns with annotations. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no wasted words. The first sentence states the purpose and endpoint, the second provides usage guidance. Front-loaded with essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters, complete annotation coverage, and existence of an output schema, the description fully addresses the tool's purpose and usage context. It is complete for a health check tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, so the description correctly avoids parameter details. Baseline for zero params is 4. The description adds value by mentioning the endpoint path.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks RetroDiffusion subsystem health via specific endpoint /v1/status. It distinguishes from siblings by being a health check requiring no authentication, which is unique among the listed sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Useful before bulk generation runs', providing clear context for when to use this tool. It does not mention when not to use, but the guidance is sufficient for a simple health check.
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 UsageARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| rd_api_key | No | RetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth. | |
| prompt_style | Yes | Style id from list_available_styles (e.g. 'rd_fast__default', 'rd_pro__isometric', or a custom 'user__...' style). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, so description adds value by detailing what it explains (input_image, reference_images, style_reference_images). 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded purpose, zero waste. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complete for a read-only info tool with output schema. Explains usage context and parameter purpose sufficiently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so description does not need to add parameter details. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it explains how to use a public prompt_style, with specific verb 'explain' and resource 'prompt_style'. Distinguished from sibling tools like create_inference and list_available_styles.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises use before create_inference when unsure about style parameters, providing clear context and alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_available_modelsList ModelsARead-onlyIdempotentInspect
Return unique public model identifiers available in /v1/styles/selector.
| Name | Required | Description | Default |
|---|---|---|---|
| rd_api_key | No | RetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false. The description adds 'unique public' qualifiers, which provide marginal behavioral context beyond annotations. However, there is no mention of potential side effects, authentication requirements, or pagination, which would elevate the score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is focused and direct. Every word is necessary to convey the tool's purpose. No fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with an output schema (not provided here) and rich annotations, the description adequately defines what is returned. It could be improved by noting that the list is of public models (already stated) and whether authentication is required (optional key implies optional auth).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the schema fully documents the sole parameter (rd_api_key). The tool description does not add any parameter-specific meaning, so it meets the baseline expectation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'Return' and resource 'unique public model identifiers' with a clear endpoint reference '/v1/styles/selector'. It distinguishes the tool from sibling tools like list_available_styles and list_edit_tools by specifying 'models' and 'public'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives (e.g., list_available_styles). The description only states what the tool does without context of prerequisites, limitations, or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_available_stylesList StylesARead-onlyIdempotentInspect
List publicly available styles from /v1/styles/selector. Use this to discover valid prompt_style values plus style metadata such as require_input_image and supports_reference_images.
| Name | Required | Description | Default |
|---|---|---|---|
| tab | No | Filter styles by tab: tab:image, tab:animation, tab:advanced-animation, or tab:tileset. | |
| model | No | Filter styles by model: rd_fast, rd_plus, rd_pro, or rd_mini. | |
| rd_api_key | No | RetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is clear. The description adds the specific endpoint and mentions the metadata fields returned, providing useful behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff, front-loaded with purpose. Every word serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema and 3 parameters with full schema coverage, the description adequately explains what the tool does and what can be discovered. It mentions key metadata fields, making it complete for a listing tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All three parameters have descriptions in the input schema (100% coverage). The description does not add additional meaning to the parameters; it only mentions the output metadata. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists publicly available styles from a specific endpoint, and highlights that it provides valid prompt_style values and metadata like require_input_image and supports_reference_images. This is specific and distinguishes it from sibling tools like create_user_style.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use this to discover valid prompt_style values...', indicating when to use the tool. While it doesn't explicitly state when not to use or list alternatives, the sibling context implies differentiation, and for a listing tool this is sufficient.
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 ToolsARead-onlyIdempotentInspect
List the enabled canvas edit tools from /v1/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.
| Name | Required | Description | Default |
|---|---|---|---|
| rd_api_key | No | RetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds that the tool returns fields, costs, and limits, which is consistent and provides useful context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, no wasted words. First sentence states the action and endpoint, second adds context about what edit tools are for. Well front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one optional parameter and an output schema, the description sufficiently covers the tool's purpose and what it returns (fields, costs, limits). Annotations cover safety, so no gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter (rd_api_key), and the description adds no additional parameter information. The schema already describes the parameter adequately, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool lists enabled canvas edit tools from a specific endpoint, with details on fields, costs, and limits. This clearly distinguishes it from sibling tools like run_edit_tool or 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains that edit tools are the recommended way to post-process pixel art, implying use for discovery. However, it does not explicitly provide when-not-to-use or contrast with alternatives like estimate_edit_tool_cost.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
logoutLog OutAIdempotentInspect
Clear the authenticated RetroDiffusion API key for this MCP session.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the operation as idempotent and non-destructive. The description adds the specific effect (clearing the API key) but does not elaborate on additional behavioral traits like session state or error scenarios.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with no unnecessary words. It is 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no parameters, simple side effects (idempotent, non-destructive), and a clear purpose, the description is fully adequate to guide correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, and schema coverage is 100%, so the description does not need to add parameter details. The baseline for zero-parameter tools is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (clear) and resource (authenticated API key), making the purpose immediately obvious. It effectively distinguishes from the sibling 'authenticate' tool which handles login.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when logging out of a session. While no explicit when-not or alternatives are provided, the context of a single-function logout tool makes this sufficient.
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 /v1/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.
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | Seed for reproducible results; reuse the same seed to iterate on one composition. | |
| width | No | k_centroid_downscale: target width in pixels (required for that tool). | |
| height | No | k_centroid_downscale: target height in pixels (required for that tool). | |
| prompt | No | What to generate or change (required by image_edit and inpainting; optional for outpainting). | |
| tile_x | No | seam_tiling: repair the horizontal seam (tool default applies when omitted). | |
| tile_y | No | seam_tiling: repair the vertical seam (tool default applies when omitted). | |
| tool_id | Yes | Edit 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_top | No | Outpainting: pixels to add on the top edge. | |
| mask_image | No | Base64 mask for inpainting: white pixels are regenerated, black pixels are kept. | |
| rd_api_key | No | RetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth. | |
| seam_width | No | seam_tiling: width in pixels of the seam band to repair. | |
| color_count | No | color_reducer: target number of colors. | |
| dither_mode | No | color_reducer/palette_converter: dithering mode. | |
| expand_left | No | Outpainting: pixels to add on the left edge. | |
| input_image | Yes | Base64 PNG of the image to edit (raw base64 or a data URL). Required by every edit tool. | |
| expand_right | No | Outpainting: pixels to add on the right edge. | |
| soft_inpaint | No | Inpainting/outpainting: blend edits softly with the surrounding pixels. | |
| expand_bottom | No | Outpainting: pixels to add on the bottom edge. | |
| input_palette | No | Base64 image of a color palette; output colors are constrained to it. | |
| dither_strength | No | color_reducer/palette_converter: dithering strength. | |
| timeout_seconds | No | Read-timeout override in seconds for this call; increase for animations or large batches. | |
| rotation_degrees | No | rotate: rotation angle in degrees (clean-edge pixel rotation). | |
| extra_input_image | No | Second base64 input image for styles that use one (e.g. the second texture in rd_tile__tileset_advanced). | |
| force_solid_pixels | No | background_remover: force fully solid or fully transparent pixels (tool default applies when omitted). | |
| repair_window_size | No | seam_tiling: size of the repair window. | |
| transparency_threshold | No | background_remover: alpha threshold for treating pixels as transparent. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=false. The description adds context about cost (free vs. paid) and that the result is returned in base64. It does not elaborate on side effects or internal behavior, but with annotations present, the bar is lower; a score of 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences covering purpose, tool list, cost tiers, a usage recommendation, and output format. No redundant words. Front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 26 parameters and an output schema, the description adequately covers high-level functionality, cost tiers, and output format. It does not detail every parameter, but schema handles that. The point to estimate_edit_tool_cost adds completeness. Slightly lacking is mention of synchronous vs. asynchronous behavior, but overall fine.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, meaning every parameter has its own description in the schema. The tool description does not add additional meaning beyond listing some tool names and mentioning cost. With complete schema documentation, the description adds marginal value, landing at baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool runs a canvas edit tool on an image, lists available tools by cost tier, and mentions the endpoint. However, it does not explicitly differentiate from all sibling tools; but the sibling set includes many unrelated tools (e.g., authenticate, create_inference), so the purpose is clear enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises using estimate_edit_tool_cost first for charged tools, and lists price tiers, guiding the agent on when to use this tool and what to consider beforehand. It does not explicitly state when not to use it, but the context is sufficient.
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 /v1/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.
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | Seed for reproducible results; reuse the same seed to iterate on one composition. | |
| width | Yes | Output width in pixels. Each style enforces its own limits; check list_available_styles or get_style_usage. | |
| height | Yes | Output height in pixels. Each style enforces its own limits; check list_available_styles or get_style_usage. | |
| prompt | Yes | Describe the SUBJECT only (e.g. 'a knight resting by a campfire'). Never write 'pixel art' — the selected style handles all rendering. | |
| tile_x | No | Make the result tile seamlessly on the horizontal axis. | |
| tile_y | No | Make the result tile seamlessly on the vertical axis. | |
| strength | No | How strongly to change input_image, 0-1 (default 0.75). Lower values keep more of the original. | |
| remove_bg | No | Remove the background for transparent output. | |
| num_images | No | How many images to generate in one batch. Style-specific maximums apply. | |
| rd_api_key | No | RetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth. | |
| input_image | No | 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. | |
| extra_prompt | No | Secondary prompt for styles that use one (e.g. the transition texture in advanced tilesets). | |
| prompt_style | Yes | Style id from list_available_styles (e.g. 'rd_fast__default', 'rd_pro__isometric', or a custom 'user__...' style). | |
| input_palette | No | Base64 image of a color palette; output colors are constrained to it. | |
| upload_outputs | No | Host outputs and return URLs in output_urls (recommended for MCP clients) instead of only base64 payloads. | |
| frames_duration | No | Animation frame count for animation styles: 4, 6, 8, 10, 12, or 16. | |
| timeout_seconds | No | Read-timeout override in seconds for this call; increase for animations or large batches. | |
| reference_images | No | Extra per-inference guidance images (base64), only for styles where supports_reference_images is true. Not for defining custom styles. | |
| extra_input_image | No | Second base64 input image for styles that use one (e.g. the second texture in rd_tile__tileset_advanced). | |
| return_pre_palette | No | Also return the render from before palette constraints were applied. | |
| return_spritesheet | No | For animation styles: return a PNG sprite sheet instead of a GIF. | |
| return_non_bg_removed | No | Also return the render from before background removal was applied. | |
| upscale_output_factor | No | Integer upscale factor for the output image; 1 returns the native pixel size. | |
| bypass_prompt_expansion | No | Skip the automatic LLM prompt enrichment and use the prompt verbatim. | |
| include_downloadable_data | No | Include extra structured assets when available (e.g. tileset atlas JSON, animation frame data). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that the tool is async, returns a task_id, requires polling, and suggests a polling interval. Annotations already indicate non-destructive and non-read-only behavior, and the description adds valuable operational context beyond those hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description comprises four concise sentences, each adding crucial information: action, usage, rationale, and follow-up. No extraneous content; efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (25 parameters, 4 required) and the presence of an output schema, the description sufficiently explains the async nature, use cases, and polling procedure. It does not cover every parameter, but that is handled by the schema, making the description complete enough for effective agent invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool description does not elaborate on specific parameters; the input schema already provides 100% coverage with detailed descriptions. The description adds no additional parameter-level meaning, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool starts an async inference job via POST, returns a task_id, and distinguishes it from synchronous alternatives by mentioning use cases that outlive a single MCP call, such as advanced animations and batches.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly recommends using this tool for advanced animation styles and batches, and directs the agent to poll with get_inference_job every 2-5 seconds. This provides clear when-to-use and follow-up guidance.
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 StyleBIdempotentInspect
Update a public RD Pro user style using /v1/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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New display name for the custom style. | |
| style_id | Yes | Style id — the internal id or the prompt_style/public id (e.g. user__mystyle_ab12). | |
| min_width | No | Force a fixed width (96-256); must be provided together with min_height. | |
| min_height | No | Force a fixed height (96-256); must be provided together with min_width. | |
| rd_api_key | No | RetroDiffusion API key (rdpk-...) for this call only; overrides session or header auth. | |
| style_icon | No | Icon name for the style (e.g. 'sparkles'). | |
| description | No | Short description of the custom style. | |
| force_palette | No | Always apply palette constraining for this style. | |
| force_bg_removal | No | Always remove backgrounds for this style. | |
| llm_instructions | No | Instructions for the prompt-expansion LLM when this style is used. | |
| reference_images | No | Alias for style_reference_images on this tool; prefer style_reference_images and never provide both. | |
| reference_caption | No | Alias for style_reference_caption on this tool; prefer style_reference_caption and never provide both. | |
| apply_prompt_fixer | No | Let the API tidy prompts automatically for this style (default true). | |
| user_prompt_template | No | Prompt template for the style; must contain the {prompt} token. | |
| style_reference_images | No | Style-level reference image(s), base64, baked into the custom style (max 1 via the public API). | |
| reset_forced_dimensions | No | Clear previously forced dimensions; do not combine with min_width/min_height. | |
| style_reference_caption | No | Caption describing the style reference image(s). | |
| expanded_llm_instructions | No | Extended instructions for the prompt-expansion LLM. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate the tool is non-destructive, idempotent, and not read-only. The description adds context about style-level references being baked into the custom style and not being per-inference references. It does not contradict annotations, but it provides limited additional behavioral detail beyond that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences, but the second sentence could be integrated into the first for better flow. It is front-loaded with the action and endpoint, but lacks some structure. Overall, it's efficient and contains no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 18 parameters, a required style_id, and an output schema, the description is somewhat complete but could be more comprehensive. It highlights a key nuance (style-level vs per-inference references) but doesn't cover all aspects like the effect of reset_forced_dimensions or the default behavior of apply_prompt_fixer. The schema and output schema compensate partially.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the baseline is 3. The description adds value by clarifying the difference between style_reference_images and reference_images, and noting that min_width/min_height must be provided together. However, for most parameters, the schema descriptions are sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the purpose: updating a public RD Pro user style via a specific endpoint. The verb 'Update' and the resource 'public RD Pro user style' are explicit. While it doesn't explicitly contrast with sibling tools like create_user_style, the action is distinct enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides guidance on when to use style_reference_images vs reference_images, but it lacks explicit when-to-use or when-not-to-use advice for the tool overall. No alternatives are mentioned, and there is no context about prerequisites or suitable scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!