MCP-Server

Supericons

io.github.curlymolelabs/supericons
Design & Kreativ Entwicklertools Öffentlich und erreichbar MCP 2025-11-25

Was dieses MCP kann

Searches, recommends, previews, and retrieves SVG icons from multiple public libraries for interface and coding workflows.

get_icon
Get Icon
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.
Eingabeschema
{'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}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'code': {'type': 'string', 'description': 'Stable error code when the exact icon is unavailable.'}, 'hint': {'type': 'string', 'description': 'Plain-language explanation of how to recover.'}, 'icon': {'type': 'object', 'required': ['id', 'name', 'library', 'library_key', 'library_name', 'library_label', 'icon_ref', 'icon_preview_url', 'type', 'style', 'svg'], 'properties': {'id': {'type': 'string', 'description': 'Icon ID without the library prefix.'}, 'svg': {'type': 'string', 'description': 'Inline SVG markup for the icon.'}, 'name': {'type': 'string', 'description': 'Human-readable icon name.'}, 'type': {'type': 'string', 'description': 'Icon asset type, normally svg.'}, 'style': {'type': 'string', 'description': 'Icon style such as outline or solid.'}, 'library': {'type': 'string', 'description': 'Source icon library key.'}, 'icon_ref': {'type': 'string', 'description': 'Stable icon reference in library:id format.'}, 'semantic': {'anyOf': [{'type': 'object', 'additionalProperties': {}}, {'type': 'null'}], 'description': 'Public semantic guidance for search and agent selection.'}, 'libraryName': {'type': 'string', 'description': 'Legacy camelCase public source library name.'}, 'library_key': {'type': 'string', 'description': 'Source icon library key repeated for explicit agent display.'}, 'library_name': {'type': 'string', 'description': 'Public source library name, for example Supericons or Simple Icons.'}, 'library_label': {'type': 'string', 'description': 'Public source library label, for example Supericons (si).'}, 'icon_preview_url': {'type': ['string', 'null'], 'description': 'Browser URL for visual inspection of this icon.'}, 'search_preview_url': {'type': ['string', 'null'], 'description': 'Browser URL for visual inspection of the source search results.'}}, 'description': 'Exact matching icon when found.', 'additionalProperties': False}, 'error': {'type': 'string', 'description': 'Recoverable error message when no exact icon is found.'}, 'next_step': {'type': 'string', 'description': 'Recommended next tool action.'}, 'retryable': {'type': 'boolean', 'description': 'Whether repeating the same exact lookup may succeed.'}}, 'additionalProperties': False}
list_libraries
List Libraries
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.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'properties': {}}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['libraries', 'publicRecordCount'], 'properties': {'libraries': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'description', 'count', 'outlineCount', 'solidCount', 'supportedStyles'], 'properties': {'id': {'type': 'string', 'description': 'Library key used in tool calls.'}, 'name': {'type': 'string', 'description': 'Human-readable library name.'}, 'count': {'type': 'number', 'description': 'Number of icons in the library.'}, 'label': {'type': 'string', 'description': 'Human-readable library label with key, for example Supericons (si).'}, 'solidCount': {'type': 'number', 'description': 'Number of solid icons served by the hosted MCP server.'}, 'description': {'type': 'string', 'description': 'Brief public description of the icon library.'}, 'outlineCount': {'type': 'number', 'description': 'Number of outline icons served by the hosted MCP server.'}, 'supportedStyles': {'type': 'array', 'items': {'enum': ['outline', 'solid'], 'type': 'string'}, 'description': 'Styles verified on the hosted serving path.'}}, 'additionalProperties': False}, 'description': 'Free icon libraries available through this hosted MCP server.'}, 'publicRecordCount': {'type': 'number', 'description': 'Number of public semantic icon records searchable through the hosted MCP server.'}}, 'additionalProperties': False}
preview_icons
Preview Icons
Refine an icon result set or preview known icon refs returned by another Supericons tool. Use search_icons first for normal icon requests. Long icon lists 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.
Nur Lesen Idempotent
Eingabeschema
{'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. Larger lists are safely truncated with a warning.'}, '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}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['preview_url', 'image_included', 'rendered_count', 'browser_preview_count', 'next_step', 'client_display_note', 'results'], 'properties': {'error': {'type': 'string', 'description': 'Recoverable error message when preview inputs are missing or invalid.'}, 'query': {'type': ['string', 'null'], 'description': 'Search query used for the visual preview, if any.'}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'library', 'library_key', 'icon_ref'], 'properties': {'id': {'type': 'string', 'description': 'Icon ID without the library prefix.'}, 'name': {'type': 'string', 'description': 'Human-readable icon name.'}, 'style': {'type': 'string', 'description': 'Icon style such as outline or solid.'}, 'library': {'type': 'string', 'description': 'Source icon library key.'}, 'icon_ref': {'type': 'string', 'description': 'Stable icon reference in library:id format.'}, 'semantic': {'anyOf': [{'type': 'object', 'additionalProperties': {}}, {'type': 'null'}], 'description': 'Public semantic guidance for search and agent selection.'}, 'library_key': {'type': 'string', 'description': 'Source icon library key repeated for explicit agent display.'}, 'library_name': {'type': 'string', 'description': 'Public source library name, for example Supericons or Simple Icons.'}, 'library_label': {'type': 'string', 'description': 'Public source library label, for example Supericons (si).'}, 'icon_preview_url': {'type': ['string', 'null'], 'description': 'Browser URL for visual inspection of this icon.'}}, 'additionalProperties': False}, 'description': 'Icons included in the visual preview.'}, 'warnings': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Unsupported optional inputs that were safely ignored.'}, 'image_url': {'type': ['string', 'null'], 'description': 'Direct PNG URL for clients or Markdown renderers that can show remote images.'}, 'next_step': {'type': 'string', 'description': 'Useful next action for the caller.'}, 'preview_url': {'type': 'string', 'description': 'Browser URL for visual inspection.'}, 'image_included': {'type': 'boolean', 'description': 'Whether this response includes MCP image content.'}, 'markdown_image': {'type': ['string', 'null'], 'description': 'Ready-made Markdown image snippet for final answers in clients that render remote Markdown images.'}, 'rendered_count': {'type': 'number', 'description': 'Number of icons rendered in the inline preview.'}, 'truncated_from': {'type': 'number', 'description': 'Original icon ref count when the input was truncated.'}, 'client_display_note': {'type': 'string', 'description': 'Plain-language note for clients that do not render images inline.'}, 'browser_preview_count': {'type': 'number', 'description': 'Number of accepted icon refs available at preview_url.'}, 'suggested_response_markdown': {'type': 'string', 'description': 'Ready-to-use answer with the image, refs, and browser fallback link.'}}, 'additionalProperties': False}
recommend_icons
Recommend Icons
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.
Eingabeschema
{'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. Larger lists return a structured split instruction.'}, '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}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['task', 'response_mode', 'slot_count', 'all_slots_resolved', 'needs_clarification', 'clarification_slots', 'low_confidence_slots', 'fallback_recommended', 'results'], 'properties': {'code': {'type': 'string', 'description': 'Stable error code for programmatic recovery.'}, 'hint': {'type': 'string', 'description': 'Plain-language recovery instruction.'}, 'task': {'type': 'string', 'description': 'Original UI task.'}, 'error': {'type': 'string', 'description': 'Plain-language reason the recommendation did not complete.'}, 'style': {'type': 'string', 'description': 'Style preference used for recommendations.'}, 'status': {'type': 'number', 'description': 'HTTP status from a hosted dependency failure.'}, 'details': {'type': 'object', 'description': 'Structured limits or failure details.', 'additionalProperties': {}}, 'library': {'type': 'string', 'description': 'Library filter used for recommendations, if provided.'}, 'results': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': {}}, 'description': 'Recommended icon choices grouped by requested UI slot.'}, 'warnings': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Unsupported optional inputs that were safely ignored or clamped.'}, 'next_step': {'type': 'string', 'description': 'Useful next action for the caller.'}, 'retryable': {'type': 'boolean', 'description': 'Whether a corrected or later request may succeed.'}, 'slot_count': {'type': 'number', 'description': 'Number of UI slots requested.'}, 'preview_url': {'type': 'string', 'description': 'Browser URL for visual inspection of the recommended icon set.'}, 'query_frame': {'type': 'object', 'description': 'Optional public-safe query understanding diagnostics for the task.', 'additionalProperties': {}}, 'response_mode': {'enum': ['plan', 'assets', 'full'], 'type': 'string', 'description': 'Response size mode used for this recommendation.'}, 'search_runtime': {'type': 'object', 'required': ['mode', 'fallback_used', 'hosted_search_calls', 'local_failure_code', 'index_generated_at'], 'properties': {'mode': {'enum': ['local_first', 'hosted_fallback', 'hosted'], 'type': 'string'}, 'fallback_used': {'type': 'boolean'}, 'index_generated_at': {'type': 'string'}, 'local_failure_code': {'type': ['string', 'null']}, 'hosted_search_calls': {'type': 'number'}}, 'description': 'Search execution path used for this recommendation.', 'additionalProperties': False}, 'all_slots_resolved': {'type': 'boolean', 'description': 'Whether every requested slot received a recommendation without clarification.'}, 'clarification_slots': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Slots that need the caller to choose an interpretation.'}, 'needs_clarification': {'type': 'boolean', 'description': 'Whether one or more ambiguous slots require more context.'}, 'retry_after_seconds': {'type': 'number', 'description': 'Seconds to wait before retrying a rate-limited recommendation.'}, 'fallback_recommended': {'type': 'boolean', 'description': 'Whether the caller should consider direct search or clarification.'}, 'low_confidence_slots': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Slots whose result is missing or has low confidence.'}, 'suggested_response_markdown': {'type': 'string', 'description': 'Plain-language explanation suitable for the agent response.'}}, 'additionalProperties': False}
search_icons
Search Icons
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.
Eingabeschema
{'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}
Ausgabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['results', 'library_mode', 'requested_library', 'suggested_response_markdown', 'next_step'], 'properties': {'code': {'type': 'string', 'description': 'Stable code for a structured no-result.'}, 'hint': {'type': 'string', 'description': 'Plain-language recovery hint for a structured no-result.'}, 'error': {'type': 'string', 'description': 'Plain-language error for a structured no-result.'}, 'status': {'type': 'number', 'description': 'HTTP status from an upstream search failure.'}, 'details': {'type': 'object', 'description': 'Structured rate-limit or upstream failure details.', 'additionalProperties': {}}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'library', 'library_key', 'library_name', 'library_label', 'icon_ref', 'icon_preview_url', 'type', 'style', 'svg'], 'properties': {'id': {'type': 'string', 'description': 'Icon ID without the library prefix.'}, 'svg': {'type': 'string', 'description': 'Inline SVG markup for the icon.'}, 'name': {'type': 'string', 'description': 'Human-readable icon name.'}, 'type': {'type': 'string', 'description': 'Icon asset type, normally svg.'}, 'style': {'type': 'string', 'description': 'Icon style such as outline or solid.'}, 'library': {'type': 'string', 'description': 'Source icon library key.'}, 'icon_ref': {'type': 'string', 'description': 'Stable icon reference in library:id format.'}, 'semantic': {'anyOf': [{'type': 'object', 'additionalProperties': {}}, {'type': 'null'}], 'description': 'Public semantic guidance for search and agent selection.'}, 'libraryName': {'type': 'string', 'description': 'Legacy camelCase public source library name.'}, 'library_key': {'type': 'string', 'description': 'Source icon library key repeated for explicit agent display.'}, 'library_name': {'type': 'string', 'description': 'Public source library name, for example Supericons or Simple Icons.'}, 'library_label': {'type': 'string', 'description': 'Public source library label, for example Supericons (si).'}, 'icon_preview_url': {'type': ['string', 'null'], 'description': 'Browser URL for visual inspection of this icon.'}, 'search_preview_url': {'type': ['string', 'null'], 'description': 'Browser URL for visual inspection of the source search results.'}}, 'additionalProperties': False}, 'description': 'Matching icons with SVG code and semantic guidance.'}, 'warnings': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Unsupported optional inputs that were safely ignored.'}, 'image_url': {'type': 'string', 'description': 'Direct PNG URL when usable icons exist.'}, 'next_step': {'type': 'string', 'description': 'Useful next action for the caller.'}, 'retryable': {'type': 'boolean', 'description': 'Whether changing the query or filters may produce a result.'}, 'limit_scope': {'type': 'string', 'description': 'Allowance scope reported by a rate limit.'}, 'preview_url': {'type': 'string', 'description': 'Browser URL for visual inspection of this search result set.'}, 'query_frame': {'type': 'object', 'description': 'Optional public-safe query understanding diagnostics.', 'additionalProperties': {}}, 'library_mode': {'enum': ['strict', 'prefer', 'all'], 'type': 'string', 'description': 'Library behavior used for this search.'}, 'outcome_type': {'enum': ['results', 'no_match', 'tool_error'], 'type': 'string', 'description': 'Whether this response contains results, an honest no-match, or a tool failure.'}, 'result_count': {'type': 'number', 'description': 'Number of verified icons returned by this search.'}, 'markdown_image': {'type': 'string', 'description': 'Ready-made Markdown image when usable icons exist.'}, 'search_runtime': {'type': 'object', 'required': ['mode', 'fallback_used', 'hosted_search_calls', 'local_failure_code', 'index_generated_at'], 'properties': {'mode': {'enum': ['local_first', 'local_fallback', 'hosted_fallback', 'hosted', 'hosted_fused'], 'type': 'string'}, 'degraded': {'type': 'boolean'}, 'fallback_used': {'type': 'boolean'}, 'local_retry_used': {'type': 'boolean'}, 'local_fusion_used': {'type': 'boolean'}, 'index_generated_at': {'type': 'string'}, 'local_failure_code': {'type': ['string', 'null']}, 'local_result_count': {'type': 'number'}, 'hosted_failure_code': {'type': ['string', 'null']}, 'hosted_result_count': {'type': 'number'}, 'hosted_search_calls': {'type': 'number'}, 'local_attempt_count': {'type': 'number'}, 'hosted_circuit_state': {'anyOf': [{'enum': ['closed', 'open', 'half_open_ready'], 'type': 'string'}, {'type': 'null'}]}, 'hosted_failure_status': {'type': ['number', 'null']}, 'local_retry_recovered': {'type': 'boolean'}}, 'description': 'Search execution path used for this request.', 'additionalProperties': False}, 'top_result_ref': {'type': ['string', 'null'], 'description': 'Top ordered icon ref when results exist.'}, 'requested_library': {'type': ['string', 'null'], 'description': 'Preferred or required library, when supplied.'}, 'retry_after_seconds': {'type': 'number', 'description': 'Seconds to wait before retrying a rate-limited search.'}, 'result_interpretation': {'type': 'string', 'description': 'Plain-language guidance for interpreting this result count and outcome.'}, 'suggested_response_markdown': {'type': 'string', 'description': 'Compact answer that accurately reflects this response.'}}, 'additionalProperties': False}
Hinzugefügt
list_libraries
17. September 2026 12:41
Hinzugefügt
preview_icons
17. September 2026 12:41
Hinzugefügt
get_icon
17. September 2026 12:41
Hinzugefügt
recommend_icons
17. September 2026 12:41
Hinzugefügt
search_icons
17. September 2026 12:41