Loading repository data…
Loading repository data…
MohamedAbdallah-14 / repository
MCP server + CLI for production-grade software assets (logos, app icons, favicons, OG, illustrations) — routes across 30+ image models, zero-key first, validates before shipping.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
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).
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.
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.
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.
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."
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.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.Never column. No wordmarks past 3 words through a diffusion sampler. No transparent PNG through Imagen. No negative_prompt on Flux.border-image + Android .9.png.brand.json)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 no brand.json exists.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).inline_svg / external_prompt_only / api.inline_svg: it writes <svg> inline and calls asset_save_inline_svg → writes master.svg, favicon.ico, apple-touch, AppIconSet, PWA bundle to disk.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.api: assistant calls the routed provider. Server mattes, vectorizes, exports, validates.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.
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.
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 | | -------------------------- | -------- | -----------------------------------------------