Unified icon service for the YAML-driven UI platform. Aggregates 9 icon families — 18,978 unique icon names, 29,710 total assets with variants — under a single consistent query interface. All other platform servers consume this one for icon resolution.
Stack: Node.js · ES modules · Hono · MCP SDK · Python (data generation scripts)
Port: 3002 (REST + icon endpoints)
| Family | Count |
|---|---|
| Auto Brands | 87 |
| Feather Icons | 287 |
| Lucide Icons | 1,897 |
| Lucide Lab | 373 |
| Material Design | 4,382 |
| Material Design Icons | 7,447 |
| Nucleo UI Essential | 220 |
| Phosphor Icons | 9,072 |
| Tabler Icons | 5,945 |
Nucleo UI license is pending clarification from the vendor.
list_svg_icons — search and filter across families with variant supportget_svg_icon — retrieve SVG markup for a specific icon; supports family::name:variant formatget_svg_stats — collection size and family breakdownget_random_svg_icons — discovery sampling with optional SVG inclusionget_svg_icons_batch — fetch up to 100 icons in a single requestIcons are addressed as family::name:variant (e.g., material::home:outlined). The family prefix can be omitted to default to Material. Variant handling uses an optimized data format: a plain string when all variants are present, an object with a missingVariants array for partial coverage.
svg://manifest — server capabilitiessvg://help — comprehensive tool usage documentationActs as the shared asset layer. Juris preview pages, Lit component exports, and Stencil distributions all resolve icons through this server. Keeps icon logic centralized and avoids duplication across the other four servers.
See research-yaml-platform for platform architecture.