{"name":"io.github.MohamedAbdallah-14/prompt-to-asset","slug":"mohamedabdallah-14-prompt-to-asset","title":null,"description":"Generate app icons, favicons, OG images, and logos by routing across 30+ image models.","url":"https://mcp.market/server/mohamedabdallah-14-prompt-to-asset","rating":null,"grade":"A","score":92,"certified":false,"status":"active","category":"ai","tags":["ai","media"],"presence":{"score":42,"stars":21,"forks":2,"downloads_week":844,"last_push_at":"2026-09-21T05:11:56.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/MohamedAbdallah-14/prompt-to-asset","website":null,"version":"0.4.2","remotes":[],"packages":[{"registryType":"npm","identifier":"prompt-to-asset","version":"0.4.2","transport":{"type":"stdio"}}],"tools":[{"name":"asset_brand_bundle_parse","description":"Parse a brand source (brand.json, DTCG tokens, AdCP spec, brand.md, or raw text) into the canonical BrandBundle schema.","write_action":false,"price_micros":0,"input_schema":null},{"name":"asset_capabilities","description":"Report which of the three execution modes this server can run RIGHT NOW given the current env: inline_svg (zero key — hosting LLM authors the SVG), external_prompt_only (zero key — paste prompt into Ideogram/Nano Banana/Midjourney/Recraft/Flux UIs, then asset_ingest_external), api (requires provider key). Read-only; no network. Call before offering the user options.","write_action":false,"price_micros":0,"input_schema":null},{"name":"asset_doctor","description":"Structured environment inventory — MCP equivalent of `p2a doctor`. Returns native-dependency status (sharp, vtracer, potrace, png-to-ico, satori, resvg-js, tesseract.js, svgo), free-tier routes ranked best-first, paid-provider keys, paste-only providers, pipeline extension URLs, which modes are available right now, and a concrete 'what to try next' suggestion list. Read-only by default. Pass check","write_action":false,"price_micros":0,"input_schema":null},{"name":"asset_enhance_prompt","description":"Classify an asset brief, route to the right model, rewrite the prompt in that model's dialect, and report which execution modes are available (inline_svg / external_prompt_only / api). Returns an AssetSpec JSON including modes_available, optional svg_brief (for inline_svg), optional paste_targets (for external_prompt_only), and — when the brief leaves a material ambiguity — a `clarifying_questions","write_action":false,"price_micros":0,"input_schema":null},{"name":"asset_export_bundle","description":"Fan out a 1024² master PNG into the full platform bundle (iOS AppIconSet, Android adaptive, PWA maskable, visionOS parallax, Flutter launcher, favicon set). MCP equivalent of `p2a export master.png`. No API key required; runs entirely on sharp. Use when the LLM has a master (inline_svg saved, api-mode result, or user-supplied hand-authored PNG) and needs the platform fan-out.","write_action":false,"price_micros":0,"input_schema":null},{"name":"asset_generate_app_icon","description":"Generate an app icon (iOS AppIconSet, Android adaptive, PWA maskable, visionOS 1024² master + placeholder parallax layers). Three modes (inline_svg / external_prompt_only / api). In non-api modes only the master mark is produced; call asset_ingest_external afterwards to run the platform fan-out. Set ios_18_appearances=true to also emit dark and tinted 1024² variants for iOS 18 tintable icons.","write_action":false,"price_micros":0,"input_schema":null},{"name":"asset_generate_favicon","description":"Generate a favicon bundle (favicon-{16,32,48}.png + icon.svg + icon-dark.svg + apple-touch + PWA 192/512/512-maskable + <link> snippet). Three modes — inline_svg is the best fit for simple glyph marks (legible at 16×16).","write_action":false,"price_micros":0,"input_schema":null},{"name":"asset_generate_hero","description":"Generate marketing-hero / landing-page banner art. Two modes (external_prompt_only / api); inline_svg is not supported. Accepts aspect_ratio (16:9 / 21:9 / 3:2 / 2:1). Injects brand bundle where supported. Returns N variants if count>1.","write_action":false,"price_micros":0,"input_schema":null},{"name":"asset_generate_illustration","description":"Generate one or more brand-locked illustrations. Two modes (external_prompt_only / api); inline_svg is not supported — path budget too small for a composed scene. Injects brand bundle (palette, style_refs, LoRA, style_id) where supported.","write_action":false,"price_micros":0,"input_schema":null},{"name":"asset_generate_logo","description":"Generate a logo. Three modes: inline_svg (Claude emits SVG — zero key), external_prompt_only (returns prompt + paste targets — zero key), api (server runs the provider pipeline — requires key). Omit mode to auto-select. Returns an AssetBundle / InlineSvgPlan / ExternalPromptPlan discriminated by the mode field.","write_action":false,"price_micros":0,"input_schema":null},{"name":"asset_generate_og_image","description":"Render a 1200×630 OG image via Satori template (deterministic typography, no diffusion). Default mode=api renders server-side without any API key. external_prompt_only is only meaningful when with_background_image is set. inline_svg is not supported (web-font loading + precise text layout beyond LLM reach).","write_action":false,"price_micros":0,"input_schema":null},{"name":"asset_generate_splash_screen","description":"Generate a cross-platform splash-screen bundle from a brand mark. Two modes (external_prompt_only / api); inline_svg is not supported (splash screens are PNG bundles — generate a logo inline_svg first, then call this with existing_mark_svg). api mode composites the mark onto background_color and emits ios/LaunchScreen-2732.png, android/mipmap-*dpi/splash.png, android/themes-splash.xml, pwa/splash-","write_action":false,"price_micros":0,"input_schema":null},{"name":"asset_ingest_external","description":"Ingest an image the user generated in an external tool (Midjourney, Nano Banana, Ideogram web, Recraft, Flux Playground, etc.) and run the matte → vectorize (where applicable) → tier-0 validation pipeline. The round-trip endpoint for external_prompt_only mode.","write_action":false,"price_micros":0,"input_schema":null},{"name":"asset_init_brand","description":"Scaffold brand.json in the project root + ensure the assets dir exists. MCP equivalent of the `brand.json` portion of `p2a init`. Auto-detects the framework (Next.js, Expo, Flutter, Xcode, Astro, Vite, Remix, Nuxt, React Native, Electron, Node) and returns platform hints. Deliberately does NOT do IDE MCP registration — that's the one piece the user handles once at install time via a terminal. Call","write_action":false,"price_micros":0,"input_schema":null},{"name":"asset_models_inspect","description":"Full capability dump for one model. MCP equivalent of `p2a models inspect <id>`. Accepts a model id or an `aka` alias. Returns the full ModelInfo record, env status, paste targets, routing rules that reference this model (as PRIMARY / fallback / NEVER), and usage notes. Read-only; no network.","write_action":false,"price_micros":0,"input_schema":null},{"name":"asset_models_list","description":"List the model registry (60+ entries) with optional filters. MCP equivalent of `p2a models list`. Returns id, family, provider, dialect, native_rgba/svg flags, text ceiling, tier (free/paid/paste-only), key_set status. Filter flags: free, paid, paste_only, rgba, svg. Read-only; no network.","write_action":false,"price_micros":0,"input_schema":null},{"name":"asset_nine_slice","description":"Emit a 9-slice config + CSS border-image snippet + Unity/Godot/Phaser/PixiJS-ready numbers from one image and 4 pixel offsets. Optionally also emit an Android .9.png with the 1px stretchable-region encoding. MCP equivalent of `p2a nine-slice <image>`.","write_action":false,"price_micros":0,"input_schema":null},{"name":"asset_remove_background","description":"Matte an image to transparent background (BiRefNet / BRIA RMBG / U²-Net via remote endpoint; local white-chroma fallback). Returns RGBA PNG path.","write_action":true,"price_micros":0,"input_schema":null},{"name":"asset_save_inline_svg","description":"Round-trip endpoint for inline_svg mode. After you (the LLM) emit the <svg>…</svg> in chat, immediately call this tool with that SVG text so the server writes a complete asset bundle to disk: master.svg + (for favicon) icon.svg + icon-dark.svg + favicon-{16,32,48}.png + favicon.ico + apple-touch-icon.png (opaque) + pwa-192.png + pwa-512.png + pwa-512-maskable.png + manifest.webmanifest + head-snip","write_action":false,"price_micros":0,"input_schema":null},{"name":"asset_sprite_sheet","description":"Pack a directory of PNG/WEBP/JPG frames into one sprite sheet + TexturePacker-compatible JSON atlas (works in Phaser, PixiJS, Three.js, Godot, Unity via a light importer). MCP equivalent of `p2a sprite-sheet <dir>`. Offline, no API key.","write_action":false,"price_micros":0,"input_schema":null},{"name":"asset_train_brand_lora","description":"Train a brand-consistent LoRA from 20-50 sample images, returning a `lora_id` the `comfyui-*` and SDXL-family providers can reference. Requires a user-owned training endpoint (Modal / Runpod / self-host) at PROMPT_TO_BUNDLE_MODAL_LORA_TRAIN_URL. Phase-4 scaffold: the MCP tool does the packaging, validation, and HTTP; the user owns the deployment and pricing. See docs/research/06-stable-diffusion-f","write_action":false,"price_micros":0,"input_schema":null},{"name":"asset_upscale_refine","description":"Upscale / refine an image, asset-type-aware. DAT2 for flat logos/icons, Real-ESRGAN/SUPIR for photoreal, img2img for diffusion polish. Lanczos fallback.","write_action":false,"price_micros":0,"input_schema":null},{"name":"asset_validate","description":"Run tier-0 deterministic validators on an asset (dimensions, alpha presence, checkerboard-pattern heuristic on tile-luma alternation, safe-zone bbox, palette ΔE2000 against brand, WCAG contrast of brand primary vs light and dark tabs, OCR Levenshtein against intended_text). Optional tier-2 VLM-as-judge via PROMPT_TO_BUNDLE_VLM_URL.","write_action":true,"price_micros":0,"input_schema":null},{"name":"asset_vectorize","description":"Convert a raster image to SVG. Tries in order: Recraft /vectorize (if PROMPT_TO_BUNDLE_RECRAFT_VECTORIZE_URL is set), vtracer on PATH, potrace on PATH, then a built-in posterize run-length fallback. Passes all output through SVGO when installed.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":92,"grade":"A","scanned_at":"2026-09-27T21:52:07.354Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-27T21:52:07.330Z","components":{"code":{"score":25,"max":25,"notes":["166 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":15,"max":15,"notes":["last push 7 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"prompt-to-asset","version":"0.4.2","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":2,"publishedAt":"2026-04-21T23:01:15.235Z","repositoryUrl":"git+https://github.com/MohamedAbdallah-14/prompt-to-asset.git","weeklyDownloads":844}],"repo":{"found":true,"owner":"MohamedAbdallah-14","repo":"prompt-to-asset","archived":false,"pushedAt":"2026-09-21T05:11:56Z","stars":21,"forks":2,"openIssues":20,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/30629771?v=4","ownerCreatedAt":"2017-08-01T14:51:36Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/30629771?v=4&s=128","source":"github"},"presence":{"stars":21,"forks":2,"downloadsWeek":844,"license":"MIT","lastPushAt":"2026-09-21T05:11:56.000Z","score":42}}}},"grade_history":[],"reviews":[]}