prompt‑to‑asset

MCP serverMedia

Get 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

  1. Save this item in Your setup as a reference.
  2. Read the source or reference documentation for its setup requirements. Saving it here does not connect it to your AI.
  3. 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:

RouteGets youSignup
inline_svg via AI assistantLogos, favicons, icon packs — instantNone
Cloudflare Workers AIFlux-1-Schnell + SDXL, 10k neurons/dayFree token + account ID
NVIDIA NIMFlux.1-dev, Flux.2-klein, SDXL, SANAFree token, no card
HF InferenceSDXL, SD3, Flux dev/schnellFree read token
Stable HordeSDXL, Flux on community GPUsAnonymous queue
Pollinations (HTTP GET)Last-resort raster, RGBNone
Google AI Studio (paste-only UI)Nano Banana / Nano Banana ProGoogle 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 Never column. No wordmarks past 3 words through a diffusion sampler. No transparent PNG through Imagen. No negative_prompt on 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:

  1. asset_doctor() — check what modes and providers are live.
  2. asset_init_brand({ app_name: "Forge", palette: ["#EA580C", "#F5F5F4"] }) if no brand.json exists.
  3. asset_enhance_prompt({ brief }) returns an AssetSpec: classification, rewritten prompt, modes_available[], optional svg_brief, optional paste_targets, and a routing_trace pointing at the research file that backed the decision (plus never_models — why Imagen or DALL·E got rejected).
  4. Assistant offers you inline_svg / external_prompt_only / api.
  5. If inline_svg: it writes <svg> inline and calls asset_save_inline_svg → writes master.svg, favicon.ico, apple-touch, AppIconSet, PWA bundle to disk.
  6. 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.
  7. If api: assistant calls the routed provider. Server mattes, vectorizes, exports, validates.
  8. Follow-up: "also fan this out for iOS and Android" → asset_export_bundle with 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"]
ModeKey?What happensBest for
inline_svgNoServer 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_onlyNoServer 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
apiOptionalServer 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.

NeedPrimaryFallbackNever
Transparent PNG markgpt-image-1.5 with background:"transparent"Ideogram 3 Turbo (/generate-transparent) → Recraft V4Imagen, Gemini Flash Image, SD 1.5
Logo with 1–3 word textIdeogram 3 Turbo → gpt-image-1.5 → Recraft V4Composite SVG type over markImagen, SD 1.5, flux-schnell
Logo with >3 word textNever a diffusion sampler. Mark + SVG typography composite.——
Native SVGRecraft V4 (V3 for brand-style pipelines)inline_svg (host LLM authors SVG)Everyone else
Photoreal heroFree CLI route first: Cloudflare / NVIDIA NIM / HFFlux Pro / gpt-image-1.5 / Gemini with paid keysDALL·E 3, Imagen 4 for new work
Iterate an existing markflux-kontext-pro (edit-only)Pollinations Kontext (free)—
Zero-cost everythinginline_svg → Cloudflare / NVIDIA NIM / HF / HordePollinations → 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

OptionHowBest atCatch
Cloudflare Workers AIFree API token + account IDFlux-1-Schnell, SDXL, DreamShaper10k neurons/day cap (~900 Flux-Schnell or 5k SDXL-Lightning)
NVIDIA NIMFree API token, no cardFlux.1-dev, Flux.2-klein, SDXL, SANA1k requests/month; strong free CLI route
HF InferenceFree read tokenSDXL, SD3, Flux dev + schnellRate-limited, cold-start latency
Stable HordeAnonymous kudos queueSDXL, Flux community GPUsMinutes of queue on the free lane
Pollinations.aicurl → HTTP GET. No signup.Throwaway rasterLast resort: silent model swaps, downsizing, RGB only
Google AI Studio (UI)Free interactive web UI at aistudio.google.comNano Banana / Nano Banana ProNo free API — paste-only; download PNG, call asset_ingest_external
Local ComfyUICommunity comfyui-mcp adapterFull fidelity, no capsYou bring the GPU
inline_svgHost LLM emits <svg> in chatLogos, favicons, simple icons≤40 paths; simple geometry
external_prompt_onlyPaste into any web UIWhatever that UI gives youManual 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), and gemini-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 charge input + 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_external if 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 for asset_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