lucide-mcp
Provides tools for searching Lucide icons by keyword tags, returning best-matching icon names from Lucide's icon set.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@lucide-mcpfind an icon for a user profile"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@vigi-p/lucide-mcp
lucide-mcp is a local Model Context Protocol (MCP) server for searching Lucide icon names by keyword tags.
It builds a local dictionary from Lucide icon metadata and exposes a search-icons tool over stdio.
What It Does
Starts an MCP server over stdio.
Registers a search-icons tool.
Token matches keywords against icon names and tags by score.
Returns best-matching icon names.
Related MCP server: RemixIcon MCP
Installation
Install the package.
pnpm add -g @vigi-p/lucide-mcpCodex
codex mcp add <server-name> lucide-mcpZed
In the Agent panel, go to Settings-->Model Context Protocol (MCP) Servers->Add Server->Add Custom Server and add the following in the Local tab.
{
"<server-name>": {
"command": "lucide-mcp",
"args": [],
"env": {}
}
}Cursor
Go to Cursor Settings->Tools & MCP->Add New MCP and add lucide-mcp to "mcpServers"
{
"mcpServers": {
"<server-name>": {
"command": "lucide-mcp",
"args": [],
"env": {}
},
// Other MCPs...
}
}Usage
Some prompt like Show me sample code for a navbar in astro with lucide icons. Use lucide-mcp.
CLI
lucide-mcp [options]
Options:
-h, --help Show this help message
-v, --version Print the current version
-c, --create-dictionary Create the icons dictionaryUninstalling
Remove the MCP from your IDE/agent. Eg:
codex mcp remove <server-name>.Remove the package.
pnpm remove -g @vigi-p/lucide-mcpDelete the
~/.lucide-mcpfolder.
Dictionary Cache
On first run (or with --refresh), the project fetches icon metadata from the Lucide repo's icons directory and writes a local dictionary to ~/.lucide-mcp/dictionary.json.
A temporary cache directory is used during fetch and then removed (~/.lucide-mcp/cache).
License
This project is licensed under the MIT License. See LICENSE.
Contributing
See CONTRIBUTING.md for development workflow and PR guidelines.
Third-Party Licenses
Dependency licenses are tracked in THIRD_PARTY_LICENSES.md.
To regenerate the file after dependency changes:
pnpm licenses:updateThe generator script uses pnpm licenses list --json and writes a grouped package/license inventory.
Available Tools
1 toolsearch-iconsSearch IconsARead-onlyIdempotent
Use this to search for a list of Lucide icons using tokenised matching. Each tool call should receive an array of sub-arrays of keywords as input to use in the search. Each sub-array should contain related keywords that convey a specific concept or visual meaning. Avoid the use of articles (e.g. 'a', 'the') and prepositions (e.g. 'in', 'on') in keywords if possible. The tool will return an array of sub-arrays of icon names such that each output sub-array contains icon names that match the search criteria for that specific input sub-array. Then, from the list of matches, select the most appropriate icon name.
Usage Example: To search for icons that represents the concepts "home page", "graph" and "warning", you might call:
search-icons({ keywords: [["home", "house"], ["graph", "chart"], ["danger"]] })This will return an output similar to:
{
"matches": [
[ "birdhouse", "house-heart", "house-plug", "house-plus", "house-wifi", "house", "map-pin-house" ],
[ "chart-area", "chart-bar-big", "chart-bar-decreasing", "chart-bar-increasing", "chart-bar-stacked", "chart-bar", "chart-candlestick" ],
[ "book-alert", "circle-alert", "cloud-alert", "file-exclamation-point", "message-circle-warning", "message-square-warning", "octagon-alert", "skull", "triangle-alert" ]
]
}How to use icon names in code:
With React: Convert the selected icon name to Pascal-case and import as a component from the 'lucide-react' package.
With React Native: Convert the selected icon name to Pascal-case and import as a component from the 'lucide-react-native' package.
With Astro: Convert the selected icon name to Pascal-case and import as a component from the '@lucide/astro' package.
| Name | Required | Description | Default |
|---|---|---|---|
| keywords | Yes | Array of sub-arrays of keywords to use in the search. |
Output Schema
| Name | Required | Description |
|---|---|---|
| matches | Yes | Array of sub-arrays of best-matching icon names. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly, idempotent, non-destructive. The description goes beyond by explaining tokenised matching, the return structure (array of sub-arrays), and how to convert results to code, adding valuable behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: a clear purpose sentence, followed by instructions, an example, and framework-specific notes. No redundant sentences; every part earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description explains the return format and usage. It covers input, output, and code integration completely, leaving no gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds significant meaning: it explains that each sub-array should contain related keywords conveying a specific concept, and provides an example. This enriches the parameter understanding beyond the schema's generic description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Use this to search for a list of Lucide icons using tokenised matching,' specifying the verb (search) and resource (Lucide icons). It is unambiguous and distinct from any siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use (searching icons), how to structure keywords (sub-arrays of related keywords, avoid articles/prepositions), and includes a detailed example and framework-specific usage instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v1.0.0- First observed
search-icons
TDQS
Scored across 1 tool
With only one tool, there is no ambiguity; the tool's purpose is clear and distinct.
Single tool named 'search-icons' follows a consistent verb_noun pattern (snake_case), with no inconsistency possible.
One tool is borderline thin; while it serves a focused purpose, many servers in similar domains have a few more tools (e.g., for metadata or browsing).
The server provides only search functionality; missing operations like listing all icons or retrieving a specific icon by name, which could be helpful.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Multilingual semantic SVG icon search with previews for AI coding agents. 20,000+ icons.
Search 324k icons or generate new ones in the Lucide grammar - grammar-locked lint+critique+repair
Icons for agentic development: search & fetch 366,000+ open-source icons as SVG/PNG. No API key.
Search open SVG icon packs and fetch exact SVG markup from coding agents through MCP.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables searching and retrieving icons from The Noun Project API with advanced filters for style, color, and size customization.7154MIT

RemixIcon MCPofficial
AlicenseAqualityCmaintenanceAn MCP server that enables users to search the Remix Icon catalog by mapping keywords to icon metadata using a high-performance local index. It returns the top five most relevant icon matches with categories and tags to streamline icon selection for design and development tasks.17993MIT- FlicenseNot gradedqualityDmaintenanceVisual icon search, retrieval, and comparison for AI agents. Search 200k+ icons semantically, render side-by-side comparison grids, and retrieve raw SVG markup — all tools return images so vision-capable LLMs can see the icons.1-
- AlicenseNot gradedqualityDmaintenanceProvides unified search across multiple icon libraries with fuzzy search, caching, and comprehensive filtering for easy icon discovery and retrieval via the Model Context Protocol.1,2326MIT