Generates authentic pixel art — sprites, animations, and tilesets — from any MCP client.
Do not connect
A critical issue was found. Do not connect this server as-is.
Scanned 1 month ago Due for re-check
A server can change after it's graded. Re-run the automated scan to refresh this report.
This grade is deterministic and reproducible: the same server surface always yields the same grade under a given algorithm version. It is a real automated assessment computed by the MCPGrade engine from what the probe actually observed — not a fabricated or opinion score. It is not a manual human pentest, so it can miss context-specific risks.
Every signal below was measured directly by the automated probe. The grade is derived only from evidence like this — nothing is assumed.
The retrodiffusion-api MCP server exposes 20 tools, focused primarily on AI capabilities. Its published description reads: "Generates authentic pixel art — sprites, animations, and tilesets — from any MCP client". It communicates over Streamable HTTP using the 2025-06-18 protocol revision, and does not require authorization to connect. MCPGrade currently rates retrodiffusion-api F — a critical issue was found and the server should not be connected as-is. Its most notable findings include "Tool input schema requests a secret" and "Tool input schema requests a secret". This report is a deterministic, reproducible automated assessment: the same observed surface always yields the same grade under a given algorithm version, and it is refreshed as new scans arrive and free to read — but it is not a substitute for a manual human security review. Always re-check retrodiffusion-api's advertised tools, transport security, and authorization posture before connecting an autonomous agent or sharing sensitive context with it.
Add retrodiffusion-api to an MCP client using the endpoint below. Review the grade and findings above before granting an autonomous agent access.
MCP endpoint
https://mcp.retrodiffusion.ai/mcpStreamable HTTP transport. This is the MCP endpoint, not a website — paste it into your MCP client server list rather than a browser.
Captured passively during the read-only scan. Click any value to find servers that match it.
The tools this server advertises via tools/list — names, purposes, and the parameters each accepts, exactly as enumerated read-only.
Authenticate this MCP session with a RetroDiffusion public API key.
Clear the authenticated RetroDiffusion API key for this MCP session.
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 a
Sorted worst-first. Each finding shows its severity, what it means, its OWASP MCP Top-10 mapping, and a recommended fix — the check id links to the exact methodology row that produced it.
tool: authenticate
The input schema declares a parameter that asks the caller to hand over a password, key, token, or other secret — a credential-harvest / token-passthrough risk. (Bare pagination `token` params are excluded.)
parameter "api_key"RecommendationNever pass secrets as tool arguments; authenticate out-of-band and remove credential parameters from the schema.
tool: create_user_style
The input schema declares a parameter that asks the caller to hand over a password, key, token, or other secret — a credential-harvest / token-passthrough risk. (Bare pagination `token` params are excluded.)
parameter "rd_api_key"RecommendationNever pass secrets as tool arguments; authenticate out-of-band and remove credential parameters from the schema.
tool: update_user_style
The input schema declares a parameter that asks the caller to hand over a password, key, token, or other secret — a credential-harvest / token-passthrough risk. (Bare pagination `token` params are excluded.)
parameter "rd_api_key"RecommendationNever pass secrets as tool arguments; authenticate out-of-band and remove credential parameters from the schema.
tool: delete_user_style
The input schema declares a parameter that asks the caller to hand over a password, key, token, or other secret — a credential-harvest / token-passthrough risk. (Bare pagination `token` params are excluded.)
parameter "rd_api_key"RecommendationNever pass secrets as tool arguments; authenticate out-of-band and remove credential parameters from the schema.
tool: list_available_styles
The input schema declares a parameter that asks the caller to hand over a password, key, token, or other secret — a credential-harvest / token-passthrough risk. (Bare pagination `token` params are excluded.)
parameter "rd_api_key"RecommendationNever pass secrets as tool arguments; authenticate out-of-band and remove credential parameters from the schema.
tool: list_available_models
The input schema declares a parameter that asks the caller to hand over a password, key, token, or other secret — a credential-harvest / token-passthrough risk. (Bare pagination `token` params are excluded.)
parameter "rd_api_key"RecommendationNever pass secrets as tool arguments; authenticate out-of-band and remove credential parameters from the schema.
tool: get_style_usage
A tool description tries to alter the model’s use of another tool.
Use this before create_inference if you are unsure whether a style expects `inpuRecommendationDescriptions must describe only their own tool.
tool: get_style_usage
The input schema declares a parameter that asks the caller to hand over a password, key, token, or other secret — a credential-harvest / token-passthrough risk. (Bare pagination `token` params are excluded.)
parameter "rd_api_key"RecommendationNever pass secrets as tool arguments; authenticate out-of-band and remove credential parameters from the schema.
tool: get_balance
The input schema declares a parameter that asks the caller to hand over a password, key, token, or other secret — a credential-harvest / token-passthrough risk. (Bare pagination `token` params are excluded.)
parameter "rd_api_key"RecommendationNever pass secrets as tool arguments; authenticate out-of-band and remove credential parameters from the schema.
tool: estimate_inference_cost
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
batches."},"rd_api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"RecommendationRemove side-channel parameters; constrain tool inputs.
tool: estimate_inference_cost
A tool description tries to alter the model’s use of another tool.
RecommendationDescriptions must describe only their own tool.
tool: estimate_inference_cost
The input schema declares a parameter that asks the caller to hand over a password, key, token, or other secret — a credential-harvest / token-passthrough risk. (Bare pagination `token` params are excluded.)
parameter "rd_api_key"RecommendationNever pass secrets as tool arguments; authenticate out-of-band and remove credential parameters from the schema.
tool: create_inference
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
batches."},"rd_api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"RecommendationRemove side-channel parameters; constrain tool inputs.
tool: create_inference
A tool description tries to alter the model’s use of another tool.
RecommendationDescriptions must describe only their own tool.
tool: create_inference
The input schema declares a parameter that asks the caller to hand over a password, key, token, or other secret — a credential-harvest / token-passthrough risk. (Bare pagination `token` params are excluded.)
parameter "rd_api_key"RecommendationNever pass secrets as tool arguments; authenticate out-of-band and remove credential parameters from the schema.
tool: list_edit_tools
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
roperties":{"rd_api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"RecommendationRemove side-channel parameters; constrain tool inputs.
tool: list_edit_tools
The input schema declares a parameter that asks the caller to hand over a password, key, token, or other secret — a credential-harvest / token-passthrough risk. (Bare pagination `token` params are excluded.)
parameter "rd_api_key"RecommendationNever pass secrets as tool arguments; authenticate out-of-band and remove credential parameters from the schema.
tool: fix_pixel_art
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
parameter "image_url"RecommendationRemove side-channel parameters; constrain tool inputs.
tool: fix_pixel_art
A tool description tries to alter the model’s use of another tool.
RecommendationDescriptions must describe only their own tool.
tool: fix_pixel_art
The input schema declares a parameter that asks the caller to hand over a password, key, token, or other secret — a credential-harvest / token-passthrough risk. (Bare pagination `token` params are excluded.)
parameter "rd_api_key"RecommendationNever pass secrets as tool arguments; authenticate out-of-band and remove credential parameters from the schema.
tool: run_edit_tool
A tool description tries to alter the model’s use of another tool.
RecommendationDescriptions must describe only their own tool.
tool: run_edit_tool
The input schema declares a parameter that asks the caller to hand over a password, key, token, or other secret — a credential-harvest / token-passthrough risk. (Bare pagination `token` params are excluded.)
parameter "rd_api_key"RecommendationNever pass secrets as tool arguments; authenticate out-of-band and remove credential parameters from the schema.
tool: estimate_edit_tool_cost
A tool description tries to alter the model’s use of another tool.
RecommendationDescriptions must describe only their own tool.
tool: estimate_edit_tool_cost
The input schema declares a parameter that asks the caller to hand over a password, key, token, or other secret — a credential-harvest / token-passthrough risk. (Bare pagination `token` params are excluded.)
parameter "rd_api_key"RecommendationNever pass secrets as tool arguments; authenticate out-of-band and remove credential parameters from the schema.
tool: get_inference_result
A tool description tries to alter the model’s use of another tool.
_id returned by create_inference to recover or refresh signed output URLs. ThisRecommendationDescriptions must describe only their own tool.
tool: get_inference_result
The input schema declares a parameter that asks the caller to hand over a password, key, token, or other secret — a credential-harvest / token-passthrough risk. (Bare pagination `token` params are excluded.)
parameter "rd_api_key"RecommendationNever pass secrets as tool arguments; authenticate out-of-band and remove credential parameters from the schema.
tool: start_inference_job
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
batches."},"rd_api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"RecommendationRemove side-channel parameters; constrain tool inputs.
tool: start_inference_job
A tool description tries to alter the model’s use of another tool.
RecommendationDescriptions must describe only their own tool.
tool: start_inference_job
The input schema declares a parameter that asks the caller to hand over a password, key, token, or other secret — a credential-harvest / token-passthrough risk. (Bare pagination `token` params are excluded.)
parameter "rd_api_key"RecommendationNever pass secrets as tool arguments; authenticate out-of-band and remove credential parameters from the schema.
tool: get_inference_job
A tool description tries to alter the model’s use of another tool.
on started with start_inference_job. Statuses: pending, running, succeeded, failedRecommendationDescriptions must describe only their own tool.
tool: get_inference_job
The input schema declares a parameter that asks the caller to hand over a password, key, token, or other secret — a credential-harvest / token-passthrough risk. (Bare pagination `token` params are excluded.)
parameter "rd_api_key"RecommendationNever pass secrets as tool arguments; authenticate out-of-band and remove credential parameters from the schema.
tool: list_inference_jobs
A tool description tries to alter the model’s use of another tool.
ting and being charged twice. Then poll it with get_inference_job.RecommendationDescriptions must describe only their own tool.
tool: list_inference_jobs
The input schema declares a parameter that asks the caller to hand over a password, key, token, or other secret — a credential-harvest / token-passthrough risk. (Bare pagination `token` params are excluded.)
parameter "rd_api_key"RecommendationNever pass secrets as tool arguments; authenticate out-of-band and remove credential parameters from the schema.
tool: (server instructions)
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
ng authenticate(api_key), or pass rd_api_key directly on each tool callRecommendationRemove side-channel parameters; constrain tool inputs.
tool: (server instructions)
A tool description tries to alter the model’s use of another tool.
Authenticate first by calling authenticate(api_key), or passRecommendationDescriptions must describe only their own tool.
The server accepts tool enumeration (and likely invocation) with no authentication.
RecommendationRequire OAuth 2.1 authorization for any server exposing non-public tools.
tool: authenticate
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
tool: create_user_style
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
tool: update_user_style
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
tool: delete_user_style
The server advertises open-world / broadly-scoped capabilities.
annotations.destructiveHint = trueRecommendationScope tools to the minimum needed.
tool: list_available_styles
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
tool: list_available_models
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
tool: get_style_usage
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
tool: get_balance
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
tool: estimate_inference_cost
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
tool: create_inference
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
tool: list_edit_tools
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
tool: fix_pixel_art
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
tool: run_edit_tool
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
tool: estimate_edit_tool_cost
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
tool: get_inference_result
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
tool: start_inference_job
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
tool: get_inference_job
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
tool: list_inference_jobs
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
tool: get_service_status
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
Vantaj uptime monitoring via MCP — manage monitors, heartbeats, incidents, and status pages.
Unified gateway to Algeria's TKAWEN ecosystem: commerce, certification, and AI tools.
Provides access to the Cohereon Doctrine AI safety framework with governance components, tiered access, and agent onboarding.
Agentic rails for complex workflows with receipts, fees, and MCP tool access.
Structural TC39 spec lookup for ECMA-262 and ECMA-402 in AI agents, SHA-pinned and offline-first.
Structural TC39 spec lookup for ECMA-262 and ECMA-402 in AI agents, SHA-pinned and offline-first.
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
Delete a user style using /v1/styles/{style_id}. style_id can be either internal id or prompt_style/public_id.
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.
Return unique public model identifiers available in /v1/styles/selector.
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
Get credits/balance using the public /v1/inferences/credits endpoint.
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_ref
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, and most go as small
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 convers
Recover the native pixel grid from enlarged, softened, AI-rendered, or compressed pixel art. Standard uses the native Rust detector. Neural uses the neural reconstruction engine and accepts optional t
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_st
Validate an edit-tool request and estimate its cost and duration without running it. Always free.
Retrieve retained outputs for a synchronous generation. Use the request_id returned by create_inference to recover or refresh signed output URLs. This lookup is read-only; never repeat a paid create_i
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 — the
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 exclu
List your most recent async jobs, newest first (GET /v1/inferences/tasks). Recovery path: if a submission response was lost (timeout, disconnect) before the task_id arrived, the job was still accepted
Check RetroDiffusion subsystem health (/v1/status, no auth). Useful before bulk generation runs.