What is prompt-to-asset MCP?
prompt-to-asset is a stdio MCP server and CLI that turns a one-line brief into app icons, favicons, OG images, logos, splash screens and SVG art, exported for iOS, Android, PWA and more. It routes across more than 30 image models, tries free routes first, and validates dimensions, alpha and contrast before handing back a bundle.
It is a stdio MCP server, packaged with its own CLI, that turns a one-line brief into production assets: logos, app icons, favicons, OG images, illustrations and splash screens. The same 24 tools back both surfaces, so a CI script and a chat assistant hit identical code.
The three generation modes
- inline_svg has the host model write SVG directly, then asset_save_inline_svg validates it and writes the bundle, no provider key needed.
- external_prompt_only returns a ranked, free-first paste target, then asset_ingest_external mattes, vectorizes and validates whatever comes back.
- api calls a routed provider directly, zero-key via Cloudflare Workers AI, NVIDIA NIM, HF Inference or Stable Horde, or a paid key if one is set.
What zero-key first means
asset_enhance_prompt ranks free routes ahead of paid ones on every call: Cloudflare Workers AI, NVIDIA NIM, HF Inference and Stable Horde cover diffusion models, and Pollinations needs no signup at all. A paid key only gets used when a job specifically calls for it.
What validation checks before shipping
asset_validate runs tier-0 checks on every output: pixel dimensions, alpha channel presence, a checkerboard FFT that catches a fake transparent background rendered as pixels, a safe-zone bounding box, ΔE2000 palette drift against the brand, WCAG contrast and OCR Levenshtein distance on any wordmark text.
Who prompt-to-asset MCP is for
Best for
- Developers who want an app icon, favicon or OG image bundle without picking an image model or opening a billing console first.
- CI pipelines that need the same asset generation the chat assistant uses, since the CLI and the MCP tools share one core.
- Teams that want shipped assets checked for a transparent-background failure or contrast problem before a release, not after a bug report.
Not for
- When the input is already a finished SVG that needs Android Vector Drawable XML output instead of a new generated asset, the SVG to Android Vector converter is the better fit for that single conversion.
- When the deliverable is one animated SVG rendered from a JSON config with a PNG preview, rather than a routed production asset bundle, nakkas MCP Server is the better fit for that render.
- When the need is loading general visualization design guidelines for charts or mockups on demand rather than generating a finished asset bundle, Generative UI MCP is the better fit for that guidance.
- When the job is producing mockups, icons and illustrations with prompt patterns, a curation loop and brand compliance scoring rather than routing across image models directly, the AI Design Generation skill is the better fit for that process.
Connect prompt-to-asset MCP: Routed Image Generation for Developers to your AI client
claude mcp add prompt-to-asset -- p2aRegister it with Claude Code
Run claude mcp add prompt-to-asset -- p2a once the package is available on PATH, or use npx directly as the command in the config above.
Install the package
Run npm install -g prompt-to-asset for a global p2a command, or npm install -D prompt-to-asset per project for CI; every command also works through npx with no install step.
Or register with another IDE
Cursor, VS Code, Windsurf, Codex and Gemini CLI each take the same command and args shown above, added through that client's own MCP settings.
Check what is live
Run npx prompt-to-asset doctor, or ask the assistant to call asset_doctor, to see which free routes, paid keys and modes are available right now.
Client configuration
{
"mcpServers": {
"prompt-to-asset": {
"command": "npx",
"args": ["-y", "prompt-to-asset"]
}
}
}What you can do with it
- Zero-key first routingThe router tries Cloudflare Workers AI, NVIDIA NIM, HF Inference, Stable Horde and Pollinations before any paid model.
- Three generation modesinline_svg, external_prompt_only and the api mode mean a brief can finish with no account at all.
- Validates before shippingasset_validate checks dimensions, alpha presence, a checkerboard FFT, safe-zone bounds, palette drift, contrast and wordmark legibility on every output.
- Research-backed routing rulesEach rule in asset_enhance_prompt's routing trace cites its research source, plus which models get refused for that job.
- Offline platform fan-outasset_export_bundle turns one master image into iOS, Android, PWA, visionOS and Flutter icon sets with no network call.
- Brand bundle awarenessOnce a brand definition exists, every generator reads its palette, fonts and style references automatically.
- Sprite sheets and 9-sliceasset_sprite_sheet and asset_nine_slice pack frames or configs for Phaser, PixiJS, Godot or Unity engines.
- Keys stay in environment variablesProvider keys are read from environment variables only, and provider error text is redacted before reaching the model.
Tools it exposes
asset_capabilities
Returns an inventory of modes and providers, bucketed paid, free-tier and paste-only, zero-key routes listed first.
asset_enhance_prompt
Classifies and rewrites a brief, returning available modes, a routing trace with research sources, and a list of refused models.
asset_generate_logo
Generates a logo through inline_svg, external_prompt_only or the api mode, returning a plan or a finished bundle.
asset_generate_app_icon
Generates an app icon and, through the api mode, the full iOS, Android, PWA, visionOS and Flutter fan-out.
asset_generate_favicon
Generates a favicon bundle: multi-resolution ico, SVG with dark-mode support, apple-touch icon and a manifest.
asset_generate_og_image
Renders a 1200 by 630 share image with deterministic typography, with no diffusion-rendered text.
asset_generate_illustration
Generates illustration art, brand-locked by bundle references, a LoRA or a style id, routed primarily to Flux.2.
asset_generate_splash_screen
Generates iOS, Android and PWA splash screens, reusing an approved mark if one is supplied.
asset_generate_hero
Generates marketing hero art in common aspect ratios through external_prompt_only or the api mode.
asset_save_inline_svg
Validates host-authored inline SVG against the brief and writes the full icon and favicon bundle.
asset_ingest_external
Mattes, vectorizes, validates and bundles an asset pasted in from an external web interface.
asset_remove_background
Removes a background using BiRefNet, BRIA RMBG-2.0, LayerDiffuse, difference matting or U2-Net.
asset_vectorize
Converts a raster image to SVG using vtracer, potrace, Recraft or a posterize fallback, then runs SVGO.
asset_upscale_refine
Upscales or refines an image with an asset-type-aware choice of model.
asset_validate
Runs tier-0 checks on any output, and an optional vision-model tier-2 check when one is configured.
asset_brand_bundle_parse
Parses a brand definition, design tokens or a markdown style guide into one canonical brand bundle.
asset_doctor
Reports a structured environment inventory: native dependencies, ranked free routes, paid keys and next steps.
asset_models_list
Lists the model registry, filterable by free, paid, paste-only, RGBA or SVG support.
asset_models_inspect
Returns a full capability record for one named model, including its paste targets and routing rules.
asset_export_bundle
Fans one master image out to iOS, Android, PWA, visionOS and Flutter icon sets, offline.
asset_sprite_sheet
Packs image frames into a sprite sheet with a TexturePacker-compatible atlas for Phaser, PixiJS, Godot or Unity.
asset_nine_slice
Emits a 9-slice definition, CSS border-image values and engine-ready numbers from an image and guide points.
asset_init_brand
Scaffolds a brand definition and an assets location, detecting common frameworks automatically.
asset_train_brand_lora
Wraps a user-owned LoRA training endpoint, with input validation and path checks.
Frequently asked questions
What is prompt-to-asset MCP?
It is a stdio MCP server and CLI that turns a one-line brief into production software assets: logos, app icons, favicons, OG images, illustrations and splash screens. It routes across more than 30 image models and validates every output against a tier-0 check before handing back a bundle.
How do I install prompt-to-asset MCP?
Run claude mcp add prompt-to-asset -- p2a for Claude Code, or install the package globally with npm install -g prompt-to-asset and run p2a doctor. Cursor, VS Code, Windsurf, Codex and Gemini CLI each take the same npx command and args in their own MCP settings.
What tools does it expose?
24 asset_ tools: generation tools for logos, app icons, favicons, OG images, illustrations, splash screens and hero art, plus processing tools for background removal, vectorizing, upscaling and validation, and environment tools like asset_doctor, asset_models_list and asset_init_brand.
Does prompt-to-asset MCP need an API key?
No, not to finish a job. inline_svg needs no provider at all, external_prompt_only pastes into a free web interface, and the api mode can route to Cloudflare Workers AI, NVIDIA NIM, HF Inference or Stable Horde with no paid key. Paid keys are optional fallbacks, never a requirement.
What does zero-key first actually mean?
asset_enhance_prompt ranks free routes ahead of paid ones on every call, trying Cloudflare Workers AI, NVIDIA NIM, HF Inference and Stable Horde before suggesting a paid provider. Pollinations needs no signup at all. A paid model only gets suggested when a job specifically calls for a capability those free routes lack.
What does asset_validate check before an asset ships?
Pixel dimensions, alpha channel presence, a checkerboard FFT that catches a fake transparent background rendered as pixels, a safe-zone bounding box, ΔE2000 palette drift against the brand, WCAG contrast and OCR Levenshtein distance on any wordmark text. An optional vision-model tier adds a second pass when one is configured.
What happens if a chosen model cannot do the requested job?
The router has a documented never column: no wordmark past three words goes through a diffusion sampler, and no transparent PNG request goes to a model whose output is RGB only. Those jobs get routed to a model or a composite approach that can actually produce the result instead.
Can it export game sprite sheets?
Yes. asset_sprite_sheet packs PNG, WEBP or JPG frames into one sprite sheet plus a TexturePacker-compatible atlas for Phaser, PixiJS, Godot or Unity, and asset_nine_slice emits a matching 9-slice definition and CSS border-image values from an image and four guide points.


