Retro Diffusion Pixel Art MCP
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.
- 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.1/5.
Each tool targets a distinct action or endpoint: authentication, generation (sync/async), style CRUD, cost estimation, balance, status, listings, and edit tools. Overlap is minimal and clearly differentiated by endpoint or purpose.
All tools use consistent snake_case verb_noun naming (e.g., create_inference, list_available_styles, run_edit_tool). No mixing of conventions or vague verbs.
17 tools cover the full pixel art workflow: authentication, generation, style management, edit tools, estimation, and status. Neither too few nor too many for the domain.
Covers core operations: auth, CRUD for styles, generation (sync and async), estimation, and various listings. Minor gap: no explicit 'list user styles' tool, though get_style_usage can be used on known IDs.
Available Tools
17 toolsauthenticateAuthenticateBRead-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?
Description claims authentication changes session state, but annotations declare readOnlyHint=true, indicating no server state change. This is a direct contradiction. No additional behavioral context beyond the conflicting annotation.
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 with zero waste. Front-loaded with the core 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?
Tool is simple with one parameter and output schema, but the description's contradiction with annotations and lack of usage flow context (e.g., must authenticate first) reduce 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 coverage is 100%, and description merely restates the schema description for api_key without adding new semantic detail. Baseline score of 3 applies.
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 action (authenticate), resource (MCP session), and credential type (RetroDiffusion public API key). Distinguishes from sibling tools like logout and get_balance.
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. Implies authentication is required for session but does not state prerequisites or ordering relative to other tools.
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?
Beyond annotations (readOnlyHint=false etc.), description discloses that response excludes raw base64 payloads for compactness and mentions the public endpoint. Adds context about timeouts and parameter behaviors.
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?
Every sentence adds value; well-structured with endpoint first, then quality/animation preferences, parameter roles, and response note. No redundancy or verbosity.
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 complexity (25 params, 4 required, output schema exists), description covers usage guidelines, parameter semantics, behavioral traits, and alternatives. Sufficient for agent to use correctly.
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%, but description adds extra clarity on parameter usage (e.g., 'input_image for main source', 'reference_images for guidance', prompt guidance). Reinforces meaning beyond schema.
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?
Title 'Generate Pixel Art' and description 'Generate images using the public /v1/inferences endpoint' clearly state verb and resource. Distinguishes from sibling tools like start_inference_job by explicitly noting animation styles should use that instead.
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 explicit guidance: prefer RD Pro styles for quality, use start_inference_job for animations, clarifies when to use reference_images vs style_reference_images. Also notes prompt should describe subject only.
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?
Annotations provide basic hints (non-readOnly, non-destructive, open world). The description adds that style references are 'baked in', which is a behavioral trait beyond annotations, but does not disclose other traits like authentication needs 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first states purpose concisely, second gives targeted guidance. No unnecessary words, front-loaded with key 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?
The description is adequate for a tool with full schema coverage and an output schema, but lacks mention of prerequisites (e.g., authentication), the fact the style is created for the user, or that the template is public. The open world hint suggests more context could be helpful.
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, the description still adds value by explaining the distinction between style_reference_images and reference_images, and clarifying that the former are baked in. This goes beyond the schema descriptions.
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 creates a user style from a public template, specifies the verb 'create' and the resource 'user style', and implies distinction from update/delete siblings.
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 guides when to use style_reference_images vs reference_images, distinguishing style-level from per-inference references. It does not explicitly state when not to use this tool, but the creation context is clear.
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 set destructiveHint=true. Description adds no further behavioral context beyond stating deletion.
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 with action and endpoint. Could be more structured but is efficient.
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?
Adequate for a tool with output schema, but lacks error cases, prerequisites, or details on destructive nature beyond what annotations provide.
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%. Description partially repeats schema info (style_id types) but adds no new meaning for parameters.
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 action (delete) and resource (user style), and distinguishes from sibling tools like create_user_style and update_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?
No explicit guidance on when to use vs alternatives. Mentions style_id format but no prerequisites or exclusions.
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 indicate read-only and idempotent. The description adds that it is always free, validates and estimates without execution, which is beyond 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the main action and key properties (free, no execution). Every sentence adds value.
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 a rich schema and output schema present, the description is adequately complete for its purpose. It does not need to explain return values due to output schema.
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 baseline is 3. The description does not add additional parameter meaning beyond what the schema 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 'Validate an edit-tool request and estimate its cost and duration without running it', specifying the verb (validate/estimate), resource (edit-tool request), and key distinction (not running it). This distinguishes 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use before running (without running it, Always free) but does not explicitly state when to use vs alternatives like run_edit_tool or list_edit_tools. No exclusions or when-not-to-use guidance.
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, idempotentHint, and destructiveHint=false, so the description's job is light. It adds that the call is free and uses check_cost=true, which is helpful context beyond 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?
The description is two sentences long, front-loads the purpose, and gives parameter usage hints with no redundant information. 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?
Given the high schema coverage and presence of output schema, the description is adequate. It could explicitly state that no actual generation occurs and no cost is incurred, but the title and annotations implied that. For a tool with many parameters, some guidance on cost-impacting parameters would be welcome.
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 baseline is 3. The description groups key parameters (input_image, reference_images) and notes where style_reference_images applies (other tools). This adds some meaning beyond schema descriptions, but not significantly.
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 title 'Estimate Cost (Free)' and description clearly state the tool estimates generation cost using a public endpoint with check_cost=true. It distinguishes itself from sibling tools like create_inference (actual generation) and estimate_edit_tool_cost (edit tool cost). The description also gives parameter usage hints, further clarifying its purpose.
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 the tool is for cost estimation before actual generation, and the title 'Free' indicates it doesn't incur charges. However, it lacks explicit guidance on when to prefer this over siblings or exclusions. The context is clear but not fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_balanceGet BalanceARead-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 indicate readOnlyHint=true, destructiveHint=false, and idempotentHint=true. The description adds only the endpoint, which is implementation detail. No additional behavioral traits or constraints are disclosed.
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, efficient sentence. It is front-loaded with the action and resource, and every word adds value.
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 tool with an output schema and well-documented parameter, the description is adequate. It could optionally mention that the response contains the current balance, but the phrase 'Get credits/balance' sufficiently implies the output.
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%, and the schema already documents the single parameter well. The description does not add any additional parameter meaning beyond what the schema 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', distinguishing it from sibling tools that deal with inference jobs, styles, etc. Mentioning the endpoint adds specificity.
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 or when not to use the tool. The purpose is clear enough from context, but alternatives or prerequisites are not discussed.
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 declare readOnlyHint=true and idempotentHint=true. Description adds value by noting that on success the result carries output_urls and that base64 payloads are excluded for compactness, providing useful behavioral nuance.
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 waste. Front-loaded with purpose and statuses, then behavior note. 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?
Given there's an output schema and annotations, the description covers purpose, statuses, and key behavioral detail (exclusion of base64). No gaps for a simple polling 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?
Schema coverage is 100%, with both parameters well-described in the schema. The description does not add 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?
Description clearly states 'Check the status of an async generation' with a specific verb and resource, and it distinguishes from sibling tools like start_inference_job and 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to use after start_inference_job, providing clear context. No explicit when-not-to-use or alternatives, but the single-sentence guidance is sufficient.
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 indicate readOnly, openWorld, idempotent, non-destructive. Description adds 'no auth' and endpoint path, providing extra behavioral insights 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, front-loaded with purpose and endpoint, followed by usage guidance. No waste.
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 zero-parameter health-check with rich annotations and output schema, the description covers purpose, usage context, auth, and endpoint—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?
No parameters exist, so baseline is 4. The description implicitly confirms no parameters needed.
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 'Check RetroDiffusion subsystem health' with a specific verb and resource. The endpoint and auth info further clarify. It is distinct from all sibling tools (no other health check).
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 says 'Useful before bulk generation runs,' providing clear context. No explicit when-not-to-use, but given the simplicity, it's sufficient.
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=true, idempotentHint=true, and destructiveHint=false, informing the agent that the tool is safe and idempotent. The description adds context about what information the tool provides (style usage details) but does not reveal additional behavioral traits beyond what annotations convey. This is adequate given the safety profile is already clear.
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 with no wasted words. The first sentence states the purpose, and the second provides actionable usage guidance. Every sentence earns its place, and the structure 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?
The tool has an output schema, so return value details are covered. The description explains what the tool does and when to use it, which is sufficient for its complexity. One could argue it lacks detail about the output structure, but that is already in the output schema, so it is complete enough.
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?
Input schema coverage is 100%, with both parameters (rd_api_key and prompt_style) already well-described in their schema descriptions. The description does not add significant new information about parameters; it references prompt_style only implicitly. Since the schema already does the heavy lifting, a baseline 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's purpose: 'Explain how to use a public prompt_style from the RetroDiffusion API.' It specifies exactly what information it provides (whether a style expects input_image or reference_images) and distinguishes itself from sibling tools like create_inference by recommending its use beforehand.
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 explicit usage guidance: 'Use this before create_inference if you are unsure…' It lists specific scenarios (uncertainty about input_image, reference_images, style_reference_images), making it clear when to invoke this tool. It doesn't explicitly state when not to use it, but the context is strong enough.
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 provide readOnlyHint, idempotentHint, and destructiveHint=false. The description adds context by specifying 'unique' and 'public' nature of the identifiers, and the endpoint path, complementing the annotations without contradicting them.
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?
One sentence, front-loaded with the action and result, no wasted words. Every part contributes to understanding.
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 minimal parameters, the description sufficiently explains what is returned (unique public model identifiers) and the endpoint. No additional context needed.
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% for the single optional parameter. However, the description does not add any additional meaning beyond what the schema already provides for rd_api_key. Baseline score 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 it returns 'unique public model identifiers' and specifies the endpoint '/v1/styles/selector', clearly distinguishing 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lacks explicit guidance on when to use this tool vs alternatives (e.g., 'use this to discover available models before selecting one'). While the purpose is clear, no context or exclusions are provided.
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 already indicate read-only, idempotent, and non-destructive behavior. The description adds value by specifying that the tool retrieves public styles and returns metadata like require_input_image and supports_reference_images, which is beyond the annotation scope.
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 with no redundant information. The first sentence states the action and endpoint, the second explains the purpose—very 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?
For a simple listing tool with an output schema, the description is sufficient. It explains what the tool returns (valid prompt_style values and metadata) and is complete for the tool's purpose.
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 the schema already documents parameters (tab, model, rd_api_key) with descriptions. The description does not add new parameter meaning beyond the schema, meeting the baseline for high coverage.
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 'List publicly available styles' and explains the purpose: to discover valid prompt_style values and metadata. It distinguishes from sibling tools like list_available_models or list_edit_tools by specifying the resource (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?
The description explicitly states 'Use this to discover valid prompt_style values' which provides clear usage context. However, it does not mention when not to use it or alternatives, though the sibling tools imply other actions for user styles.
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 provide readOnlyHint=true and destructiveHint=false. The description adds context about the specific tools included and the endpoint, without contradicting 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: first states the action and scope, second provides context and lists examples. No redundancy or unnecessary detail.
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 comprehensive annotations, the description fully covers purpose, return contents, and context. 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 optional parameter rd_api_key. The description adds no additional parameter meaning beyond the schema, so baseline of 3 applies.
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 'List the enabled canvas edit tools' with verb and resource, and specifies the information returned (fields, costs, limits). It distinguishes 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by stating 'Edit tools are the recommended way to post-process generated pixel art' but does not explicitly state when not to use or compare to alternatives. Clear enough for a list tool.
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?
The description adds the scope ('for this MCP session') but does not significantly expand beyond what annotations already provide. Annotations indicate idempotentHint=true and destructiveHint=false, which are consistent with clearing a key. The description does not contradict 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 a single, concise sentence that directly states the tool's function. It is front-loaded 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?
For a simple tool with no parameters and an output schema available, the description provides sufficient context. It explains the effect clearly.
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?
There are no parameters, so the description does not need to add parameter semantics. The schema coverage is 100%, and the baseline for 0 parameters is 4. The description appropriately omits param details.
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 the resource ('authenticated RetroDiffusion API key for this MCP session'). It distinguishes this tool from its siblings, such as 'authenticate' which sets the key.
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 authentication by mentioning 'authenticated' and 'for this MCP session'. However, it does not explicitly state when to use or not use this tool, nor does it reference alternatives. Yet, the context makes it clear.
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?
The description discloses that edited images are returned in base64_images and notes cost tiers, adding behavioral context beyond annotations (which already indicate non-read-only and non-destructive). It does not contradict 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 concise: two sentences and a list of tools with costs. It front-loads the action and endpoint, then efficiently covers usage advice and output format. 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?
Given the tool's complexity (26 parameters, cost tiers), the description provides a useful high-level overview. It mentions output format and the need to estimate cost, but could briefly hint at which parameters are required for specific tools (though schema covers this). Output schema exists, so return value details are not needed.
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% with detailed parameter descriptions. The description adds no new parameter meaning beyond grouping tools by cost; the schema already documents required parameters per tool (e.g., width/height for k_centroid_downscale). Baseline 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's action: 'Run a canvas edit tool on an image via /v1/edit/tools/{tool_id}'. It lists specific tool IDs and cost tiers, distinguishing this execution tool from sibling tools like list_edit_tools 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 advises using estimate_edit_tool_cost first for charging tools, providing explicit context on when to use a complementary tool. This gives clear usage guidance, though it does not explicitly state 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.
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?
Annotations indicate readOnlyHint=false (correct mutation). Description adds behavioral context: async=true, returns task_id, polling frequency (2-5s), and reason for async (tens of seconds). 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?
Three sentences, no fluff. Front-loaded with action and key information. 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?
Given complexity (25 params, required 4, output schema present), description covers async nature, polling, and typical use cases. Complete and informative.
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% with detailed descriptions for all 25 parameters. The description does not add extra parameter-level meaning, 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?
Description explicitly states it starts an async generation job, returns a task_id, and differentiates from synchronous calls by recommending it for long-running tasks like animations. Clearly a specific verb+resource.
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 says when to use (advanced animations, other animation styles, batches) and how to follow up (poll with get_inference_job). Provides clear context and avoidance of synchronous calls.
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 StyleAIdempotentInspect
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 confirm mutation (readOnlyHint=false) and non-destructive nature. Description adds context that style-level references are baked into the style, not per-inference. 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?
Three sentences, each with clear purpose: states action, specifies key parameters, and explains a critical distinction. No fluff.
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?
Despite many parameters, the description is minimal. It doesn't cover prerequisites, behavior of omitted fields, or special parameters like reset_forced_dimensions. Output schema exists but description could be more comprehensive.
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 baseline is 3. The description adds meaning by distinguishing style_reference_images from per-inference reference_images, which is not fully captured in schema descriptions.
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 ('Update a public RD Pro user style') and resource, and distinguishes from siblings like create and delete. It also clarifies a key nuance about reference images.
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 vs alternatives like create_user_style. The description implies it's for updates, but lacks when-not or exclusion criteria.
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!