A local, private MCP server that gives your AI assistant access to the Nucleo icons you already own.
nucleo-mcp has 5 tools with clear naming (verb_noun pattern: nucleo_status, nucleo_search, nucleo_get, nucleo_list_sets, nucleo_save). Descriptions are present and contextual (avg ~150 chars), exceeding the 10-char minimum. All tools have input schemas with type definitions. However, parameter descriptions are sparse or missing in several tools (e.g., nucleo_status has empty properties; nucleo_list_sets has no params described). Output schemas are not documented. Error handling is minimal, no recovery guidance or actionable error messages visible in the code. The nucleo_save tool lacks explicit validation messaging for path traversal prevention, despite mentioning it in the description.
Fetch one icon with its SVG markup and metadata. Look it up by numeric id (exact) or by name. If a name matches several icons, returns the candidates so you can disambiguate with klass or set.
List the icon packs in your library with their group, title, and icon count.
Write an icon's SVG to disk. Requires an "out" path that resolves inside the current working directory; it refuses to write anywhere else. If out ends in .svg it is the exact file, otherwise it is treated as a directory and the icon name is used.
Search every Nucleo icon in your local library by name and tags. Matches are ranked, so the best fit comes first. Returns id, name, style, size, pack, and tags for each hit. Use the id or name with nucleo_get to fetch the SVG.
Check the Nucleo library: the data path being read, whether the database was found, total icon and pack counts, and per-pack icon counts. Call this first if searches return nothing.
nucleo_status and nucleo_list_sets have empty input schemas (no properties defined).
Output schemas are not documented in any tool. LLMs cannot plan downstream calls or extract fields without knowing what the response contains (e.g., what fields does nucleo_search return per hit?).
Error handling is absent. No recovery guidance, error classification, or actionable messages. If nucleo_search returns no results or nucleo_save fails due to invalid path, the LLM has no guidance on what to do next.
nucleo_save description mentions path traversal protection ('refuses to write anywhere else') but provides no validation error message format. If an LLM attempts an invalid path, it will not know how to correct it.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 67 | 2026-07-28+ | v2 |
nucleo_search and nucleo_get accept optional 'klass' and 'set' parameters for disambiguation but do not document what happens if multiple matches exist or how to interpret the candidates returned.