MCP server for Lucide Icons — search docs, props, and code examples from any AI coding assistant
Strong tool definitions with consistent naming conventions, comprehensive parameter schemas with enums, and clear descriptions. All 6 tools follow verb_noun pattern (lucide_search, lucide_get_icon, etc.). Parameters are well-typed with Zod schemas including min/max constraints and enum definitions. However, descriptions lack depth on error recovery patterns and downstream chaining. Output schemas are not formally documented, formatters exist but their return types are not visible in the provided source. Error handling is present but minimal (basic 'not found' responses without recovery guidance). Overall solid foundation but missing advanced patterns like recovery hints, per-item failure reporting, and structured output documentation.
Get code examples for a Lucide icon across framework packages (React, Vue, Angular, Svelte, etc.).
Get full documentation for a specific Lucide icon including SVG content, categories, tags, and common props.
Get installation and usage information for a specific Lucide package (e.g. lucide-react, lucide-vue-next).
List all available Lucide icon categories.
List all available Lucide icons, optionally filtered by category.
Search Lucide icons by name, tags, or category. Returns matching icons with scores and metadata.
Output schemas not documented in code. Formatters (formatSearchResults, formatIconFull, etc.) exist but their return types and structure are not visible. LLMs cannot plan downstream tool chains without knowing what fields to expect.
Error messages lack recovery guidance. lucide_get_icon returns 'Icon not found' with suggestions, which is good. However, lucide_get_package_info returns a bare list of available packages without suggesting 'Did you mean?' or fuzzy matching. lucide_get_examples returns a generic not-found without alternatives.
Descriptions do not explain when to use one tool vs another. lucide_search, lucide_list_icons, and lucide_list_categories all retrieve icon data, descriptions do not clarify the semantic differences (search vs. enumerate all) or when an LLM should pick each.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 66 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 0 | - | v1 |
No pagination or limits on lucide_list_icons. If there are thousands of icons, returning all of them in a single call will exhaust the context window. The description does not mention a limit or recommend pagination.
Tool composition not optimized for chat data model. lucide_search requires the 'query' parameter as a bare string, no fuzzy matching or parsing of natural language like 'search for arrow icons in the navigation category'. The search interface is functional but not LLM-friendly in the way a user might naturally phrase the request.