Multilingual semantic SVG icon search with previews for AI coding agents. 20,000+ icons.
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.
Retrieve one exact SVG icon using an exact ref returned by search_icons, recommend_icons, or preview_icons. Do not guess icon IDs. Use search_icons first if the user only described a concept. Returns SVG code, explicit public library labels, visual preview URL, and public semantic guidance for the exact icon.
Exact icon ID without the library prefix, for example "database", "user-circle", "brain-circuit", or "arrow-down".
Required library key for the exact icon. Supported values include si (Supericons AI and developer tool logos), lucide, tabler, phosphor, heroicons, bootstrap, iconoir, ionicons, material, simpleicons (Simple Icons brand logos), and mingcute.
Optional style preference. Material Symbols supports outline and solid. Other hosted libraries report their verified styles in list_libraries.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Retrieve one exact SVG icon using an exact ref returned by search_icons, recommend_icons, or preview_icons. Do not guess icon IDs. Use search_icons first if the user only described a concept. Returns SVG code, explicit public library labels, visual preview URL, and public semantic guidance for the exact icon.
| Argument | Type | Description |
|---|---|---|
| id* | string | Exact icon ID without the library prefix, for example "database", "user-circle", "brain-circuit", or "arrow-down". |
| style | string | Optional style preference. Material Symbols supports outline and solid. Other hosted libraries report their verified styles in list_libraries. |
| library* | string | Required library key for the exact icon. Supported values include si (Supericons AI and developer tool logos), lucide, tabler, phosphor, heroicons, bootstrap, iconoir, ionicons, material, simpleicons (Simple Icons brand logos), and mingcute. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"id",
"library"
],
"properties": {
"id": {
"type": "string",
"description": "Exact icon ID without the library prefix, for example \"database\", \"user-circle\", \"brain-circuit\", or \"arrow-down\"."
},
"style": {
"enum": [
"any",
"outline",
"solid"
],
"type": "string",
"default": "any",
"description": "Optional style preference. Material Symbols supports outline and solid. Other hosted libraries report their verified styles in list_libraries."
},
"library": {
"type": "string",
"description": "Required library key for the exact icon. Supported values include si (Supericons AI and developer tool logos), lucide, tabler, phosphor, heroicons, bootstrap, iconoir, ionicons, material, simpleicons (Simple Icons brand logos), and mingcute."
}
},
"additionalProperties": false
}List the free icon libraries available through the hosted Supericons MCP server. Use this before filtering by library or when a user asks which icon libraries are supported.
No arguments.
{
"type": "object",
"properties": {}
}Refine an icon result set or preview known icon refs returned by another Supericons tool. Use search_icons first for normal icon requests. Icon lists up to 100 refs are accepted and safely truncated to 12. Returns ready-to-use Markdown, a hosted preview fallback, a direct PNG image URL, and, when requested, an MCP image contact sheet.
| Argument | Type | Description |
|---|---|---|
| limit | number | string | Requested inline icon count. Values outside 1 to 12 are safely clamped with a warning. Numeric strings are accepted. |
| query | string | Optional search query to preview visually, for example "license plate recognition camera scan car". |
| style | any | Optional style preference. Unsupported values are ignored with a warning. |
| locale | any | Optional locale for multilingual search terms. Supported values: zh-Hans, zh-Hant, ja, ko, es, de, pt, ar, hi, vi, th. Unsupported values are ignored with a warning. |
| library | any | Optional library key. Supported values include si (Supericons AI and developer tool logos), lucide, tabler, phosphor, heroicons, bootstrap, iconoir, ionicons, material, simpleicons (Simple Icons brand logos), and mingcute. |
| icon_refs | array | Optional fixed icon refs in library:id format. Arrays, a single ref, and comma-separated refs are accepted. Up to 100 are accepted, 24 appear on the browser preview, and 12 are rendered inline. Send at most 100; very large arrays are refused. |
Recommend a coherent icon set for up to 20 named UI slots in one call. Uses task context to narrow ambiguous meanings. When context is insufficient, returns needs_clarification with labeled interpretation options instead of guessing. Invalid inputs and service failures return a plain-language reason and a next step instead of a bare protocol error. Returns one recommendation and optional alternatives for each resolved slot, with explicit public library labels and visual preview URLs where available. Library key si means Supericons, not Simple Icons.
| Argument | Type | Description |
|---|---|---|
| task | string | Overall UI task, for example "choose icons for an AI dashboard sidebar" or "select bottom navigation icons for a finance app". Missing task text returns a structured recovery message. |
| slots | array | List of 1 to 20 UI slots to fill, for example ["model", "prompt", "dataset", "evaluation"]. A single string is accepted as one slot. Lists of up to a few hundred slots return a structured split instruction; send at most 20 per call. |
| style | any | Optional style preference. Unsupported values are ignored with a warning. |
| locale | any | Optional locale for multilingual slot labels. Unsupported values are ignored with a warning. |
| library | any | Optional library key when the user wants a consistent icon family. Supported values include si (Supericons AI and developer tool logos), lucide, tabler, phosphor, heroicons, bootstrap, iconoir, ionicons, material, simpleicons (Simple Icons brand logos), and mingcute. |
| response_mode |
Use this as the main icon tool. Search 20,000+ curated SVG icons across 11 libraries by meaning, label, visual description, tags, and synonyms. When matches exist, the response includes a paste-ready suggested answer, a direct preview image, and Markdown that can show the image in the final reply. When no supported match exists, it returns an honest structured no-result with a next step and no fabricated icon. If you choose a library yourself, use prefer. Use strict only when the user explicitly requires that library. Library key si means Supericons, not Simple Icons.
| Argument | Type | Description |
|---|---|---|
| limit | number | Maximum number of icons from 1 to 50. Numeric strings are accepted. |
| query* | string | Icon concept or search phrase, for example "database", "user profile", "chill", "trash", "upload cloud", "AI model", or "beautiful". |
| style | any | Optional style preference. Unsupported values are ignored with a warning. |
| locale | any | Optional locale for multilingual search terms. Supported values: zh-Hans, zh-Hant, ja, ko, es, de, pt, ar, hi, vi, th. Unsupported values are ignored with a warning. |
| library | string | Optional library key only when the user named a library. Omit it to search all libraries. Do not use all as a library key. Supported values include si (Supericons AI and developer tool logos), lucide, tabler, phosphor, heroicons, bootstrap, iconoir, ionicons, material, simpleicons (Simple Icons brand logos), and mingcute. |
| library_mode |
| include_image | boolean | When true, include a PNG contact sheet as MCP image content. Boolean strings are accepted. A preview_url is always returned. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": [
"number",
"string"
],
"default": 12,
"description": "Requested inline icon count. Values outside 1 to 12 are safely clamped with a warning. Numeric strings are accepted."
},
"query": {
"type": "string",
"description": "Optional search query to preview visually, for example \"license plate recognition camera scan car\"."
},
"style": {
"$ref": "#/properties/query",
"default": "any",
"description": "Optional style preference. Unsupported values are ignored with a warning."
},
"locale": {
"$ref": "#/properties/query",
"description": "Optional locale for multilingual search terms. Supported values: zh-Hans, zh-Hant, ja, ko, es, de, pt, ar, hi, vi, th. Unsupported values are ignored with a warning."
},
"library": {
"$ref": "#/properties/query",
"description": "Optional library key. Supported values include si (Supericons AI and developer tool logos), lucide, tabler, phosphor, heroicons, bootstrap, iconoir, ionicons, material, simpleicons (Simple Icons brand logos), and mingcute."
},
"icon_refs": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"description": "Optional fixed icon refs in library:id format. Arrays, a single ref, and comma-separated refs are accepted. Up to 100 are accepted, 24 appear on the browser preview, and 12 are rendered inline. Send at most 100; very large arrays are refused."
},
"include_image": {
"type": "boolean",
"default": true,
"description": "When true, include a PNG contact sheet as MCP image content. Boolean strings are accepted. A preview_url is always returned."
}
},
"additionalProperties": false
}| any |
| Response size mode: plan, assets, or full. Unsupported values use plan with a warning. |
| limit_per_slot | number | string | Number of choices per slot. Values outside 1 to 5 are clamped with a warning. Numeric strings are accepted. |
| include_query_frame | boolean | Optional public-safe diagnostics for query understanding. Boolean strings are accepted. Leave false for normal compact responses. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"task": {
"type": "string",
"default": "",
"description": "Overall UI task, for example \"choose icons for an AI dashboard sidebar\" or \"select bottom navigation icons for a finance app\". Missing task text returns a structured recovery message."
},
"slots": {
"type": "array",
"items": {
"type": "string"
},
"default": [],
"description": "List of 1 to 20 UI slots to fill, for example [\"model\", \"prompt\", \"dataset\", \"evaluation\"]. A single string is accepted as one slot. Lists of up to a few hundred slots return a structured split instruction; send at most 20 per call."
},
"style": {
"$ref": "#/properties/task",
"default": "any",
"description": "Optional style preference. Unsupported values are ignored with a warning."
},
"locale": {
"$ref": "#/properties/task",
"description": "Optional locale for multilingual slot labels. Unsupported values are ignored with a warning."
},
"library": {
"$ref": "#/properties/task",
"description": "Optional library key when the user wants a consistent icon family. Supported values include si (Supericons AI and developer tool logos), lucide, tabler, phosphor, heroicons, bootstrap, iconoir, ionicons, material, simpleicons (Simple Icons brand logos), and mingcute."
},
"response_mode": {
"$ref": "#/properties/task",
"default": "plan",
"description": "Response size mode: plan, assets, or full. Unsupported values use plan with a warning."
},
"limit_per_slot": {
"type": [
"number",
"string"
],
"default": 3,
"description": "Number of choices per slot. Values outside 1 to 5 are clamped with a warning. Numeric strings are accepted."
},
"include_query_frame": {
"type": "boolean",
"default": false,
"description": "Optional public-safe diagnostics for query understanding. Boolean strings are accepted. Leave false for normal compact responses."
}
},
"additionalProperties": false
}| any |
| Optional library behavior. Omit a self-chosen library and search all, or use prefer with that library. Use strict only when the user explicitly requires the named library. All searches every eligible library. Unsupported or incomplete combinations are safely normalized with a warning. |
| include_query_frame | boolean | Optional public-safe diagnostics for query understanding. Boolean strings are accepted. Leave false for normal compact responses. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"limit": {
"type": "number",
"default": 10,
"maximum": 50,
"minimum": 1,
"description": "Maximum number of icons from 1 to 50. Numeric strings are accepted."
},
"query": {
"type": "string",
"minLength": 1,
"description": "Icon concept or search phrase, for example \"database\", \"user profile\", \"chill\", \"trash\", \"upload cloud\", \"AI model\", or \"beautiful\"."
},
"style": {
"$ref": "#/properties/library",
"default": "any",
"description": "Optional style preference. Unsupported values are ignored with a warning."
},
"locale": {
"$ref": "#/properties/library",
"description": "Optional locale for multilingual search terms. Supported values: zh-Hans, zh-Hant, ja, ko, es, de, pt, ar, hi, vi, th. Unsupported values are ignored with a warning."
},
"library": {
"type": "string",
"description": "Optional library key only when the user named a library. Omit it to search all libraries. Do not use all as a library key. Supported values include si (Supericons AI and developer tool logos), lucide, tabler, phosphor, heroicons, bootstrap, iconoir, ionicons, material, simpleicons (Simple Icons brand logos), and mingcute."
},
"library_mode": {
"$ref": "#/properties/library",
"description": "Optional library behavior. Omit a self-chosen library and search all, or use prefer with that library. Use strict only when the user explicitly requires the named library. All searches every eligible library. Unsupported or incomplete combinations are safely normalized with a warning."
},
"include_query_frame": {
"type": "boolean",
"default": false,
"description": "Optional public-safe diagnostics for query understanding. Boolean strings are accepted. Leave false for normal compact responses."
}
},
"additionalProperties": false
}