MCP server for searching and retrieving 45,000+ icons from 18 open-source collections
IconSnag MCP demonstrates solid definition quality with clear naming conventions, comprehensive parameter schemas, and well-structured tool interfaces. All 5 tools follow verb_noun naming patterns (search_icons, get_icon_svg, get_icon_png, list_sources, list_tags). Tool descriptions are present and descriptive (ranging from 92-226 characters), exceeding the 10-char minimum. Parameter schemas use Zod validation with type definitions, min/max bounds, and optional flags. However, there are notable gaps: (1) No documented output schemas for any tool, LLMs cannot plan downstream calls without knowing return structure; (2) Error handling lacks recovery guidance, no actionable messages for edge cases like invalid source IDs or icon not found; (3) No tool annotations (readOnlyHint, idempotentHint) despite all tools being read-only operations; (4) Parameter descriptions in some tools (list_sources, list_tags) are minimal since inputs are empty, but tools lack guidance on discovery usage patterns.
Get a PNG version of a specific icon. Returns the image as a PNG file. Use search_icons first to find the icon ID and source.
Get the SVG URL for a specific icon. Can also fetch the raw SVG content. Use search_icons first to find the icon ID and source.
List all available icon sources/collections with their metadata.
List all available icon category tags for filtering search results.
Search across 45,000+ icons from 18 open-source collections (Fluent Emoji, Material Symbols, Noto Emoji, Tabler, Fluent Icons, Lucide, Phosphor, Bootstrap Icons, Octicons). Returns matching icons with metadata and download URLs.
No documented output schemas. Tools return results but LLMs have no formal documentation of response structure, field types, or field names. This violates pattern:tool and prevents agents from planning multi-step workflows.
No tool annotations despite all tools being read-only. Missing readOnlyHint annotation on all 5 tools. This prevents clients from optimizing caching, parallelization, and transaction handling for safe read-only operations.
Error handling lacks recovery guidance. No error messages documented for invalid inputs (e.g., non-existent source ID, missing icon). When tools fail, LLMs receive no actionable next steps. Violates pattern:recovery-guide.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 59 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 8 | - | v1 |
Minimal descriptions for discovery tools (list_sources, list_tags). Both tools return empty input schemas but descriptions do not explain when/why to call them or what discovery workflow they enable. Agents may not discover these tools are prerequisites.
Parameter descriptions in search_icons use examples (e.g., 'e.g. lucide, phosphor, fluent-emoji') instead of enums. This invites LLMs to hallucinate source IDs not in the index. Should use an enum constraint with all valid source IDs.