Generate favicons (ICO, SVG, Apple touch, PWA, manifest) from SVG, text or emoji; check any site.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Fetches a URL, probes every icon it declares (root favicon.ico, SVG icon, apple-touch-icon, web manifest), and grades the setup against the modern set. Follow up with generate_favicon to fix what is missing.
The site to check, e.g. example.com
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Fetches a URL, probes every icon it declares (root favicon.ico, SVG icon, apple-touch-icon, web manifest), and grades the setup against the modern set. Follow up with generate_favicon to fix what is missing.
| Argument | Type | Description |
|---|---|---|
| url* | string | The site to check, e.g. example.com |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"description": "The site to check, e.g. example.com"
}
}
}Generates the complete modern favicon set (favicon.ico, icon.svg, apple-touch-icon.png, PWA icons, manifest.webmanifest, favicon-setup.md with the install snippet) from an SVG, an emoji, or short text. Returns a download URL for favicon.zip plus the HTML head snippet to paste. Files follow current best practice: ICO with 16, 32, and 48px layers, a 96px Google Search icon, opaque apple-touch-icon, and a maskable icon with safe-zone padding.
| Argument | Type | Description |
|---|---|---|
| pwa | boolean | Include PWA icons + manifest (default true). |
| svg | string | Raw SVG markup to use as the icon. The best source when available. |
| font | string | Typeface for text mode: any Google Fonts family name (e.g. "Bangers", "Bebas Neue", "Press Start 2P"), or a bundled id like inter-800, geist-700, silkscreen-400. |
| text | string | 1–4 characters rendered as vector glyphs (e.g. a brand initial like "F"). |
| emoji | string | A single emoji character, rendered with Twemoji vector artwork. |
| radius | number | Corner rounding: 0 square, ~0.25 rounded, 1 circle. |
| padding | number | Content inset as a fraction of icon size, -1–0.35. Negative zooms in: the mark scales past the frame and is cropped toward the center (-0.5 renders it at 2x). |
| app_name | string | App name written into the web manifest. |
| offset_x | number | Nudge content horizontally, -0.25 (left) to 0.25 (right). |
| offset_y | number | Nudge content vertically, -0.25 (up) to 0.25 (down). |
| framework | string | Tailors the setup guide: html, nextjs, vite, astro, rails, wordpress. Next.js App Router uses file conventions, not link tags. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"pwa": {
"type": "boolean",
"description": "Include PWA icons + manifest (default true)."
},
"svg": {
"type": "string",
"description": "Raw SVG markup to use as the icon. The best source when available."
},
"font": {
"type": "string",
"description": "Typeface for text mode: any Google Fonts family name (e.g. \"Bangers\", \"Bebas Neue\", \"Press Start 2P\"), or a bundled id like inter-800, geist-700, silkscreen-400."
},
"text": {
"type": "string",
"description": "1–4 characters rendered as vector glyphs (e.g. a brand initial like \"F\")."
},
"emoji": {
"type": "string",
"description": "A single emoji character, rendered with Twemoji vector artwork."
},
"radius": {
"type": "number",
"maximum": 1,
"minimum": 0,
"description": "Corner rounding: 0 square, ~0.25 rounded, 1 circle."
},
"padding": {
"type": "number",
"maximum": 0.35,
"minimum": -1,
"description": "Content inset as a fraction of icon size, -1–0.35. Negative zooms in: the mark scales past the frame and is cropped toward the center (-0.5 renders it at 2x)."
},
"app_name": {
"type": "string",
"description": "App name written into the web manifest."
},
"offset_x": {
"type": "number",
"maximum": 0.25,
"minimum": -0.25,
"description": "Nudge content horizontally, -0.25 (left) to 0.25 (right)."
},
"offset_y": {
"type": "number",
"maximum": 0.25,
"minimum": -0.25,
"description": "Nudge content vertically, -0.25 (up) to 0.25 (down)."
},
"framework": {
"type": "string",
"description": "Tailors the setup guide: html, nextjs, vite, astro, rails, wordpress. Next.js App Router uses file conventions, not link tags."
},
"google_96": {
"type": "boolean",
"description": "Emit favicon-96x96.png for Google Search results (default true)."
},
"background": {
"anyOf": [
{
"type": "string",
"description": "\"none\" or a solid hex color"
},
{
"type": "object",
"required": [
"from",
"to"
],
"properties": {
"to": {
"type": "string"
},
"from": {
"type": "string"
},
"angle": {
"type": "number"
}
}
}
],
"description": "Icon background: \"none\" (default), a hex color, or a linear gradient."
},
"monochrome": {
"type": "boolean",
"description": "Add a monochrome manifest icon for tinted/badge surfaces."
},
"short_name": {
"type": "string"
},
"text_color": {
"type": "string",
"description": "Hex glyph color for text mode, default #0a0a0b."
},
"theme_color": {
"type": "string",
"description": "Hex theme color for the manifest."
},
"env_variants": {
"type": "boolean",
"description": "Also emit dev/staging/preview favicon copies with a corner badge."
},
"dynamic_module": {
"type": "boolean",
"description": "Add favicon-dynamic.js — badge/progress/spinner with the icon baked in."
},
"dark_background": {
"type": "string",
"description": "Hex background for a dark-mode variant; icon.svg then adapts to the browser theme."
},
"dark_text_color": {
"type": "string",
"description": "Hex glyph color for the dark-mode variant (text mode)."
}
}
}Returns the modern minimal <head> snippet for favicons, plus placement guidance. Use when the favicon files already exist and only the HTML wiring is needed.
| Argument | Type | Description |
|---|---|---|
| pwa | boolean | Site ships PWA icons + manifest (default true) |
| google_96 | boolean | Site ships favicon-96x96.png (default true) |
| has_svg_icon | boolean | Site ships an /icon.svg (default true) |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"pwa": {
"type": "boolean",
"description": "Site ships PWA icons + manifest (default true)"
},
"google_96": {
"type": "boolean",
"description": "Site ships favicon-96x96.png (default true)"
},
"has_svg_icon": {
"type": "boolean",
"description": "Site ships an /icon.svg (default true)"
}
}
}| google_96 | boolean | Emit favicon-96x96.png for Google Search results (default true). |
| background | any | Icon background: "none" (default), a hex color, or a linear gradient. |
| monochrome | boolean | Add a monochrome manifest icon for tinted/badge surfaces. |
| short_name | string |
| text_color | string | Hex glyph color for text mode, default #0a0a0b. |
| theme_color | string | Hex theme color for the manifest. |
| env_variants | boolean | Also emit dev/staging/preview favicon copies with a corner badge. |
| dynamic_module | boolean | Add favicon-dynamic.js — badge/progress/spinner with the icon baked in. |
| dark_background | string | Hex background for a dark-mode variant; icon.svg then adapts to the browser theme. |
| dark_text_color | string | Hex glyph color for the dark-mode variant (text mode). |