# favicon.zip > Favicon generator for the modern web. Turns an SVG, short text, or an emoji > into the modern favicon set — favicon.ico (16/32/48px BMP layers), > icon.svg, favicon-96x96.png (Google Search), apple-touch-icon.png (180px, > opaque), icon-192.png, icon-512.png, > icon-mask.png (maskable, safe-zone padded), manifest.webmanifest, and a > favicon-setup.md with the install snippet — delivered as favicon.zip. The web editor runs > entirely client-side; the API and MCP server run on Cloudflare Workers. ## For agents - MCP server (Streamable HTTP, no auth): https://favicon.zip/mcp Tools: generate_favicon (SVG/emoji/text → zip download URL + HTML snippet), check_favicon (fetch a URL and grade its favicon setup), get_html_snippet (just the markup and placement guidance). - HTTP API: POST https://favicon.zip/api/generate with a JSON body, returns application/zip. Fields: exactly one of `svg` (markup), `emoji` (single emoji), `text` (1–4 chars); optional `font` (any Google Fonts family name, e.g. "Bangers" or "Press Start 2P"; defaults to Inter), `text_color`, `background` ("none" | "#hex" | {from,to,angle}), `padding` (0–0.35), `radius` (0–1), `offset_x` / `offset_y` (-0.25–0.25, nudges the content), `dark_background` / `dark_text_color` (adaptive dark-mode icon.svg), `env_variants` (adds dev/staging/preview badged copies), `monochrome` (manifest icon with purpose "monochrome"), `dynamic_module` (favicon-dynamic.js: badge/progress/spinner, icon baked in), `framework` (html|nextjs|vite|astro|rails|wordpress — tailors the setup guide; Next.js App Router uses file conventions, not link tags), `app_name`, `short_name`, `theme_color`, and booleans `pwa`, `google_96`, `ico_48` (all default true). Example: {"emoji":"🦊","background":"#17171a","radius":0.25,"padding":0.1} - Stateless share links: GET /api/generate?spec= streams the same zip; generate_favicon returns these URLs. - GET /api/check?url= returns a JSON favicon report (same engine as check_favicon). GET /api/fetch-icon?url= returns the best icon a site currently ships. ## Install snippet (also written into the zip's favicon-setup.md) Files belong at the site root. The sizes="32x32" attribute works around a Chrome quirk where ICO beats SVG. Non-PWA sites can omit the manifest line. ## Notes - Emoji artwork is Twemoji (CC-BY 4.0); attribution ships inside favicon-setup.md. - Uploaded/posted SVG is sanitized: scripts, event handlers, external references, and remote CSS imports are stripped before anything is generated. - Text is converted to vector paths — the SVG favicon needs no webfont. - The web editor at https://favicon.zip does everything locally in the browser.