prompt‑to‑asset
MCP serverMediaGet app icons, favicons, OG images, and logos generated from a short text description. Once added, your AI can create these assets whenever you need them, drawing on more than 30 image models to handle each request. Useful for covering a project's basic visual assets without starting from scratch.
Unavailable. This server has no hosted endpoint yet, so Ahel can't serve it.
Add to setup to save this item as a reference. Ahel cannot run it, and signing in will not install it.
What your AI can do with it
- Generate app icons from a text description
- Create favicons for a website
- Produce OG images for social and link previews
- Design logos to match a description
- Draw on 30+ image models for each generation
Getting started
- Save this item in Your setup as a reference.
- Read the source or reference documentation for its setup requirements. Saving it here does not connect it to your AI.
- Check this page for availability before trying to install it through Ahel.
From the project's README
As published by mohamedabdallah-14/prompt-to-asset in README.md.
30-second start
Pick one. Run it. You're done. The recommended path is first.
Runtime: Node ≥ 20.11 (24 recommended). macOS, Linux, Windows (WSL2 for --fix native deps).
🔵 AI assistant · recommended
Click an install button above. Then paste one of these into chat:
• Make a transparent logo for Forge, a dev-tools brand. Flat vector, warm orange.
• Make a favicon for my app, dark-mode aware.
• Fan this master.png out to iOS + Android + PWA.
• Ingest this screenshot as a mark, vectorize, export everything.
Works in Cursor, Claude Code, VS Code, Windsurf, Codex, Gemini CLI. Zero terminal typing.
🟢 Zero key, zero install
One curl, one npx. Offline fan-out to every platform.
curl -o logo.png \
"https://image.pollinations.ai/prompt/\
minimal+flat+vector+logo\
?model=flux&width=1024&nologo=true"
npx prompt-to-asset export logo.png \
--platforms ios,android,pwa,favicon
Outputs: iOS AppIconSet, Android adaptive, PWA, favicon bundle, visionOS scaffold.
🟣 CLI · free API keys
Best CLI experience: free tokens first, paid keys optional.
npm i -g prompt-to-asset
p2a doctor # check env
p2a doctor --fix # auto-install deps
p2a pick # interactive
Start with Cloudflare Workers AI, NVIDIA NIM, HF Inference, Stable Horde, and free trials. Paid providers remain optional fallbacks.
Free paths at a glance
You don't need a paid API key. Ranked best-first:
| Route | Gets you | Signup |
|---|---|---|
inline_svg via AI assistant | Logos, favicons, icon packs — instant | None |
| Cloudflare Workers AI | Flux-1-Schnell + SDXL, 10k neurons/day | Free token + account ID |
| NVIDIA NIM | Flux.1-dev, Flux.2-klein, SDXL, SANA | Free token, no card |
| HF Inference | SDXL, SD3, Flux dev/schnell | Free read token |
| Stable Horde | SDXL, Flux on community GPUs | Anonymous queue |
| Pollinations (HTTP GET) | Last-resort raster, RGB | None |
| Google AI Studio (paste-only UI) | Nano Banana / Nano Banana Pro | Google account |
Details + quotas: Free paths beyond Pollinations. Run p2a doctor or ask your assistant for asset_doctor() to see what's live right now.
[!TIP] Stuck? Click Install in Cursor or Install in VS Code above, restart the editor, and say: "make a favicon for my app, dark-mode aware."
Highlights
- Free CLI-first generation —
p2a doctor,p2a pick, and the MCP tools rank free API routes before paid models, so developers can generate inside the CLI without enabling billing. - Three execution modes —
inline_svg(host LLM authors SVG),external_prompt_only(paste into any web UI),api(server calls a free or paid provider). Pick what fits. All three can finish on $0. - 60+ models, free-first routing — Cloudflare Workers AI, NVIDIA NIM, HF, Horde, Pollinations, free trials, plus optional paid OpenAI / Ideogram / Recraft / BFL / Gemini. Each rule cites a research source.
- Refuses to do the wrong thing — the
Nevercolumn. No wordmarks past 3 words through a diffusion sampler. No transparent PNG through Imagen. Nonegative_prompton Flux. - Offline platform fan-out — one 1024² master → iOS AppIconSet, Android adaptive + monochrome, PWA 192/512/512-maskable, favicon bundle, visionOS parallax, Flutter launcher. Zero network.
- Validates before shipping — tier-0 checks on every output: dims, alpha presence, checkerboard FFT, safe-zone bbox, ΔE2000 palette drift, WCAG contrast, OCR Levenshtein on wordmarks.
- Sprite sheets + 9-slice — pack PNG frames into TexturePacker-compatible atlases (Phaser, PixiJS, Godot, Unity); emit 9-slice numbers + CSS
border-image+ Android.9.png.
Table of contents
- 30-second start
- Usage — what to say to your assistant
- The three modes — inline_svg · external_prompt_only · api
- The router — which model for which job, and what never
- Free paths beyond Pollinations
- Install
- Models covered — 60+
- MCP tools — 25 tools
- CLI surface
- Brand bundle (
brand.json) - Platform support
- Architecture
- Comparison
- Security
- Research-backed decisions
- Development
- Community · License
Usage
You just talk to your assistant. Example from a new chat:
Make me a transparent logo for a developer-tools company called Forge. Flat vector, two-tone warm orange on neutral.
Behind the scenes:
asset_doctor()— check what modes and providers are live.asset_init_brand({ app_name: "Forge", palette: ["#EA580C", "#F5F5F4"] })if nobrand.jsonexists.asset_enhance_prompt({ brief })returns anAssetSpec: classification, rewritten prompt,modes_available[], optionalsvg_brief, optionalpaste_targets, and arouting_tracepointing at the research file that backed the decision (plusnever_models— why Imagen or DALL·E got rejected).- Assistant offers you
inline_svg/external_prompt_only/api. - If
inline_svg: it writes<svg>inline and callsasset_save_inline_svg→ writesmaster.svg,favicon.ico, apple-touch, AppIconSet, PWA bundle to disk. - If
external_prompt_only: assistant shows the refined prompt and the best paste target (free first). You generate, save, then say "ingest this file" →asset_ingest_external. - If
api: assistant calls the routed provider. Server mattes, vectorizes, exports, validates. - Follow-up: "also fan this out for iOS and Android" →
asset_export_bundlewith the saved master.
Zero CLI typing. The CLI is still first-class for CI, shell scripts, and non-MCP environments — both surfaces hit the same core.
Why this exists
Two facts shape everything here.
Producing production-grade software assets is a routing and post-processing problem, not a prompt-engineering problem.
Imagen 3/4 and Gemini Flash Image can't produce real RGBA PNGs — their VAE is RGB-only, so asking for a transparent background renders the grey-and-white checkerboard as pixels. SDXL can't spell past ~8 characters. Only Recraft emits native SVG. Flux errors on negative_prompt. None of that is visible in the model UI. All of it silently breaks one-shot "prompt → asset" tools.
You may not have an image-model API key. The plugin works anyway.
Every one of the three modes can finish on $0.
The three modes
flowchart LR
A["one-line brief"] --> B["asset_enhance_prompt"]
B --> C{"mode"}
C -->|inline_svg| D["Host LLM emits SVG inline<br/>→ asset_save_inline_svg"]
C -->|external_prompt_only| E["Paste into web UI<br/>→ asset_ingest_external"]
C -->|api| F["Server calls routed provider"]
D --> G["matte · vectorize · validate"]
E --> G
F --> G
G --> H["AssetBundle<br/>ios · android · pwa · favicon · visionos · flutter"]
| Mode | Key? | What happens | Best for |
|---|---|---|---|
inline_svg | No | Server returns an SVG-authoring brief (viewBox, palette, path budget ≤ 40). Host LLM emits <svg>…</svg> inline, then asset_save_inline_svg writes master + favicon.ico + apple-touch + AppIconSet + PWA bundle. Instant. Deterministic. | Logos, favicons, icon packs, stickers, simple app-icon masters |
external_prompt_only | No | Server returns the dialect-correct prompt plus a ranked list of paste targets, free paths first: Pollinations, HF Inference, Stable Horde, Google AI Studio, Ideogram, Recraft, Midjourney, fal.ai, BFL, ChatGPT, Firefly, Krea. Generate elsewhere, save locally, call asset_ingest_external. | Anything — best for illustrations, heroes, text-heavy logos |
api | Optional | Server calls the provider directly. Works zero-key via Pollinations / Horde / HF, or with paid keys. Route → generate → matte → vectorize → export → validate → content-addressed bundle. | Automation, CI, no rate-limit tolerance |
The host LLM picks the mode, or you do. The server surfaces modes_available so the assistant offers them to you. Free paths first — always.
The router
Router decisions live in data/routing-table.json. Capability matrix in data/model-registry.json. Every rule cites its research source.
| Need | Primary | Fallback | Never |
|---|---|---|---|
| Transparent PNG mark | gpt-image-1.5 with background:"transparent" | Ideogram 3 Turbo (/generate-transparent) → Recraft V4 | Imagen, Gemini Flash Image, SD 1.5 |
| Logo with 1–3 word text | Ideogram 3 Turbo → gpt-image-1.5 → Recraft V4 | Composite SVG type over mark | Imagen, SD 1.5, flux-schnell |
| Logo with >3 word text | Never a diffusion sampler. Mark + SVG typography composite. | — | — |
| Native SVG | Recraft V4 (V3 for brand-style pipelines) | inline_svg (host LLM authors SVG) | Everyone else |
| Photoreal hero | Free CLI route first: Cloudflare / NVIDIA NIM / HF | Flux Pro / gpt-image-1.5 / Gemini with paid keys | DALL·E 3, Imagen 4 for new work |
| Iterate an existing mark | flux-kontext-pro (edit-only) | Pollinations Kontext (free) | — |
| Zero-cost everything | inline_svg → Cloudflare / NVIDIA NIM / HF / Horde | Pollinations → paste-only | — |
The Never column matters. It's why prompt-to-asset refuses to render wordmarks past 3 words in any diffusion sampler, and why asking for a transparent PNG never goes to Imagen.
Free paths beyond Pollinations
| Option | How | Best at | Catch |
|---|---|---|---|
| Cloudflare Workers AI | Free API token + account ID | Flux-1-Schnell, SDXL, DreamShaper | 10k neurons/day cap (~900 Flux-Schnell or 5k SDXL-Lightning) |
| NVIDIA NIM | Free API token, no card | Flux.1-dev, Flux.2-klein, SDXL, SANA | 1k requests/month; strong free CLI route |
| HF Inference | Free read token | SDXL, SD3, Flux dev + schnell | Rate-limited, cold-start latency |
| Stable Horde | Anonymous kudos queue | SDXL, Flux community GPUs | Minutes of queue on the free lane |
| Pollinations.ai | curl → HTTP GET. No signup. | Throwaway raster | Last resort: silent model swaps, downsizing, RGB only |
| Google AI Studio (UI) | Free interactive web UI at aistudio.google.com | Nano Banana / Nano Banana Pro | No free API — paste-only; download PNG, call asset_ingest_external |
| Local ComfyUI | Community comfyui-mcp adapter | Full fidelity, no caps | You bring the GPU |
inline_svg | Host LLM emits <svg> in chat | Logos, favicons, simple icons | ≤40 paths; simple geometry |
external_prompt_only | Paste into any web UI | Whatever that UI gives you | Manual save, then asset_ingest_external |
Verified 2026-04-26 against public Gemini API pricing:
- Imagen 4 image output is paid API. The pricing table lists Free Tier as "Not available" and prices Fast / Standard / Ultra at $0.02 / $0.04 / $0.06 per image.
- Nano Banana family is paid API.
gemini-3.1-flash-image-preview(Nano Banana 2),gemini-3-pro-image-preview(Nano Banana Pro), andgemini-2.5-flash-image(original Nano Banana) list image output only in the paid tier. Billing must be enabled on the GCP project to use these via API. - Free for text, multimodal understanding, and embeddings. The Gemini text-out models still have
Free of chargeinput + output on the free tier. - Free interactive image generation is also via the AI Studio web UI at aistudio.google.com. Community-observed limit 500–1,000 images/day, dynamic. Use
external_prompt_only+asset_ingest_externalif you want Nano Banana quality without billing. - Free image generation via the Gemini consumer app at gemini.google.com: Basic 20/day, AI Plus 50/day, AI Pro 100/day, Ultra 1,000/day.
- Paid API pricing (per image, standard): Nano Banana (
gemini-2.5-flash-image) $0.039; Nano Banana 2 Flash (gemini-3.1-flash-image-preview) $0.045/0.5K, $0.067/1K, $0.101/2K, $0.151/4K; Nano Banana Pro (gemini-3-pro-image-preview) $0.134/1K-2K, $0.24/4K (+ $0.0011 per input image); Imagen 4 Fast $0.02, Standard $0.04, Ultra $0.06. Batch API is 50% off.
Run
p2a doctor(or ask your assistant forasset_doctor()) to see what's live in your environment right now.
Install
Every command works via npx — no install required.
# Zero install
npx prompt-to-asset doctor # what's live in this shell right now
npx prompt-to-asset doctor --fix # auto-install native deps (brew / cargo / scoop; never sudo)
npx prompt-to-asset pick # interactive route picker
npx prompt-to-asset init --register # scaffold brand.json + register in .cursor / .vscode / .windsurf
# Or global for daily use
npm i -g prompt-to-asset
p2a doctor
# Or per-project for CI
npm i -D prompt-to-asset
Register with your AI assistant
Claude Code
claude mcp add prompt-to-asset -- p2a
Smithery (universal)
npx -y @smithery/cli install prompt-to-asset --client claude
Cursor · VS Code · Windsurf · Codex · Gemini CLI
Use the install buttons at the top of this README, or see docs/install.md for the exact stanza per IDE.
Claude Desktop
Download the .mcpb bundle → double-click → restart.
Once registered, your assistant has the full 24 asset_* tool surface.
Models covered
Paid direct APIs: gpt-image-1, gpt-image-1.5, dall-e-3 (deprecated 2026-05-12), imagen-3, imagen-4, gemini-3-flash-image (Nano Banana), gemini-3-pro-image, sd-1.5, sdxl, sd3-large, playground-v3, flux-schnell, flux-dev, flux-pro, flux-2, flux-kontext-pro, ideogram-3, ideogram-3-turbo, recraft-v3, leonardo-phoenix, leonardo-diffusion-xl, fal-flux-pro, fal-flux-2, fal-sdxl.
Free-tier / zero-key: pollinations-flux, pollinations-turbo, pollinations-kontext, pollinations-sd, horde-sdxl, horde-flux, hf-sdxl, hf-sd3, hf-flux-schnell, hf-flux-dev.
Paste-only surfaces: midjourney-v6, midjourney-v7, firefly-3, krea-image-1. Calling asset_generate_* with mode: "api" against a paste-only primary soft-falls-back to the first API-reachable model in the chain and surfaces a warning. If the whole chain is paste-only, you get an ExternalPromptPlan rather than an error.
Shortened here. Read the whole README on GitHub.
Signals
- GitHub stars
- 20
- Forks
- 2
- Last commit
- Sep 2026
- Weekly downloads
- 716
- Weekly_downloads
- 792 weekly_downloads
Advanced
- Delivery
- prompt-to-asset MCP server → your Ahel connector (mcp.ahel.ai) → your AI.
- Item type
- mcp-server
- Key
io-github-mohamedabdallah-14-prompt-to-asset- Source
- github.com/mohamedabdallah-14/prompt-to-asset
github.com/mohamedabdallah-14/prompt-to-asset