lucide-mcp
The lucide-mcp server enables AI coding agents to search, retrieve, and integrate Lucide SVG icons into projects. It offers these capabilities:
Search icons by name using exact, partial, or fuzzy matching.
List all available icon names with pagination (limit and offset).
Get detailed metadata for a specific icon, including tags, aliases, local SVG path, and suggestions for unknown names.
Fetch raw SVG markup for an icon, with options to strip license comments, remove class attributes, and override stroke width.
Add an icon to a project by writing an SVG file to a specified directory, with control over filename, overwrite behavior, and SVG cleaning options.
Access raw SVG directly via the
lucide://icons/{name}.svgresource URI.
Provides tools for searching, retrieving, and adding Lucide SVG icons to projects, including metadata and custom SVG markup generation.
Click on "Deploy 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 a home icon and add it to assets/icons"
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.
lucide-mcp
MCP server for searching, retrieving, and adding Lucide SVG icons from AI coding agents.
Resources
lucide://icons/{name}.svg- read raw SVG markup for an icon, for examplelucide://icons/panel-left.svg
Related MCP server: Supericons
Tools
search_icons- search icons by exact, partial, and fuzzy name matchingget_icon_metadata- return tags, aliases, SVG path, and suggestions for an iconget_icon_svg- return raw SVG markup for an iconadd_icon_to_project- write an SVG file into the current projectlist_icons- list available Lucide icon names
Usage
{
"mcpServers": {
"lucide": {
"command": "npx",
"args": ["lucide-mcp"]
}
}
}With a local checkout:
{
"mcpServers": {
"lucide": {
"command": "node",
"args": ["/path/to/lucide-mcp/dist/index.mjs"]
}
}
}Examples
Search for sidebar icons:
search_icons({ "query": "sidebar", "limit": 5 })Get icon metadata:
get_icon_metadata({ "name": "panel-left" })Read SVG as a resource:
lucide://icons/panel-left.svgGet raw SVG with a tool:
get_icon_svg({ "name": "panel-left" })Get cleaned SVG markup:
get_icon_svg({
"name": "panel-left",
"stripLicense": true,
"stripClass": true,
"strokeWidth": 1.5
})Add an icon to a project:
add_icon_to_project({
"name": "panel-left",
"outputDir": "assets/icons",
"overwrite": false,
"stripLicense": true,
"stripClass": true
})The default output directory is assets/icons. Existing files are not overwritten unless overwrite is set to true. Use stripLicense, stripClass, and strokeWidth to customize the generated SVG markup.
Agent behavior
Agents can use this server when they need an icon for a UI feature and the project does not already contain a suitable SVG. A good workflow is:
Inspect existing project icons first.
Search Lucide with a semantic query.
Pick the best named icon.
Add it to the project's icon directory.
Use the SVG according to the project's conventions.
Development
pnpm install
pnpm test
pnpm build
pnpm typecheckRun locally:
pnpm devLicense
MIT. Lucide icons are distributed by the Lucide project under the ISC license.
Available Tools
5 toolsadd_icon_to_projectB
Add a Lucide SVG icon file to the current project.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Lucide icon name, for example "search", "panel-left", or "chevron-right". | |
| filename | No | Optional output filename. Defaults to the icon name with .svg. | |
| outputDir | No | Output directory relative to the MCP server working directory. Defaults to assets/icons. | |
| overwrite | No | Whether to overwrite an existing file. Defaults to false. | |
| stripClass | No | Remove the Lucide class attribute from the SVG element. Defaults to false. | |
| strokeWidth | No | Override the SVG stroke-width attribute. | |
| stripLicense | No | Remove the leading Lucide license comment from the SVG. Defaults to false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only says 'Add', implying a file creation, but does not explain side effects like overwriting, directory creation, or whether the operation requires network access. The single sentence is insufficient for a write operation.
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 one short, front-loaded sentence with no filler. It is appropriately concise, though other dimensions capture the lack of depth.
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 tool has 7 parameters, is a write operation, has no output schema, and no annotations, a one-sentence description is far from complete. It does not explain what happens after adding the icon (e.g., return value, errors) or any prerequisites, leaving significant gaps for agent decision-making.
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 description coverage is 100% with all 7 parameters described in detail (e.g., 'name', 'overwrite', 'stripClass'). The tool description adds no parameter-specific meaning beyond what the schema already provides, so the baseline of 3 is appropriate.
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 the action ('Add') and the resource ('a Lucide SVG icon file') with a destination ('to the current project'). This clearly distinguishes it from sibling tools like list_icons or get_icon_svg, which are read-only operations.
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?
No guidance is provided on when to use this tool versus alternatives. The description does not mention cases where one might prefer get_icon_svg over adding a file, nor does it state any prerequisites (e.g., network access) or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_icon_metadataA
Get Lucide icon metadata such as tags, aliases, local SVG path, and suggestions for unknown icons.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Lucide icon name, for example "search", "panel-left", or "chevron-right". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the tool provides suggestions for unknown icons, which is a behavioral trait beyond the basic return of metadata. It also specifies the categories of metadata returned (tags, aliases, SVG path). However, it does not mention error handling, permissions, or side effects, though the 'get' verb implies read-only behavior.
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 a single concise sentence that front-loads the core purpose and provides useful detail without redundancy. Every word adds value.
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?
For a simple one-parameter tool with no output schema, the description gives a good overview of the return content and handles the unknown icon case. It is complete enough for an agent to know what to expect, though it could benefit from explicitly stating the behavior for non-existent icons.
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?
The input schema already thoroughly describes the single 'name' parameter with examples, giving 100% coverage. The description does not add any additional meaning about the parameter beyond what the schema provides, so it is at baseline.
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 uses a specific verb 'Get' with a clear resource 'Lucide icon metadata' and lists concrete metadata types (tags, aliases, local SVG path, suggestions for unknown icons). This distinguishes it from sibling tools like get_icon_svg, which retrieves SVG content, and search_icons, which searches icons.
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 implies usage for retrieving metadata of a specific icon but does not explicitly state when to use this over alternatives like search_icons or list_icons. There is no mention of exclusions or when to prefer sibling tools. Context must be inferred from the tool name and the description's focus on metadata.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_icon_svgA
Get the raw SVG markup for a Lucide icon by name.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Lucide icon name, for example "search", "panel-left", or "chevron-right". | |
| stripClass | No | Remove the Lucide class attribute from the SVG element. Defaults to false. | |
| strokeWidth | No | Override the SVG stroke-width attribute. | |
| stripLicense | No | Remove the leading Lucide license comment from the SVG. Defaults to false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry transparency. It correctly implies a read-only retrieval, but does not disclose behavior for invalid names, error handling, or side effects. It does not contradict anything, but leaves some behavioral aspects unstated.
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?
A single, front-loaded sentence: 'Get the raw SVG markup for a Lucide icon by name.' No filler or redundant information, earning a perfect score.
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 tool's simplicity and complete parameter schema, the description is largely sufficient. It explains the core output (raw SVG markup) and the schema covers all inputs, but omits details on return behavior for nonexistent icons or default license/class inclusion, which are minor 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%, so the schema fully documents all parameters. The description only adds a high-level reference to the 'name' parameter, providing no additional semantic value beyond what the schema already offers.
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 uses a specific verb ('Get') and resource ('raw SVG markup for a Lucide icon'), clearly distinguishing it from sibling tools like get_icon_metadata or add_icon_to_project. It leaves no ambiguity about what the tool returns.
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 implies usage when you know the icon name and need its raw SVG, but does not explicitly state when to use this tool versus alternatives such as search_icons for finding icons or get_icon_metadata for details. No exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_iconsB
List all available Lucide icon names.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of icon names to return. | |
| offset | No | Number of icon names to skip. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure, but it only restates the function name without adding details about return type, pagination behavior, or side effects. It does not explicitly confirm that the operation is read-only or describe any constraints beyond what the name implies.
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 a single, focused sentence that is immediately understandable. It wastes no words and front-loads the core action and object.
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?
The tool is simple, with low complexity and no output schema, so the brief description is largely sufficient. It clearly states the purpose, and the schema covers parameter details, leaving minimal gap in understanding the tool's behavior.
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 description coverage is 100%, with both `limit` and `offset` already explained in the input schema. The description adds no new parameter information, so the baseline of 3 is appropriate.
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 uses the specific verb 'List' with a clear resource ('all available Lucide icon names'), making the tool's purpose immediately obvious. It distinguishes from sibling tools like search_icons by emphasizing enumeration of the full set rather than filtered searching.
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 gives no guidance on when to use this tool versus alternatives such as search_icons or get_icon_metadata. It does not state that this is for retrieving the complete catalog, nor does it mention any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_iconsA
Search Lucide icons by name using exact, partial, and fuzzy matching.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of matches to return. | |
| query | Yes | Icon search query, for example "sidebar", "settings", or "arrow left". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the transparency burden. It discloses matching modes (exact, partial, fuzzy), which is useful behavioral context, but omits return format, pagination, or confirmation that it is a non-destructive read operation.
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?
A single sentence directly states the tool's purpose without any redundant details. Every word 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?
For a simple search tool with two parameters and no output schema, the description covers the core purpose and matching modes. It does not explain return format, but the low complexity and clear purpose make it sufficiently complete.
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 description coverage is 100%, so baseline is 3. The description adds 'by name' which aligns with the query parameter but does not provide additional meaning beyond the schema examples or limit semantics.
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 the action (Search), resource (Lucide icons), and matching behavior (exact, partial, and fuzzy). This distinguishes it from sibling tools like list_icons (listing) and get_icon_metadata (metadata lookup).
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 implies usage for name-based lookup but does not explicitly contrast with list_icons or other alternatives. No when-to-use or when-not-to-use guidance is provided, only the general purpose.
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.
5 tool updates
v0.4.0- First observed
add_icon_to_project - First observed
get_icon_metadata - First observed
get_icon_svg - First observed
list_icons - First observed
search_icons
TDQS
Scored across 5 tools
Each tool has a clear, distinct purpose: listing all icons, searching by name, retrieving metadata, retrieving SVG markup, and adding to a project. There is minimal overlap, and even list_icons vs search_icons are differentiated by exhaustive vs filtered retrieval.
All tool names follow a consistent verb_noun pattern (list, search, get, get, add). The naming is predictable and intuitive, making it easy for an agent to infer function from the name.
With exactly 5 tools, the set is well-scoped for managing Lucide icons. Each tool covers a necessary operation without unnecessary bloat or duplication.
The tool surface covers the complete lifecycle for working with icons: discovery (list/search), inspection (metadata/svg), and integration (add to project). No obvious gaps exist for the stated purpose.
Maintenance
Related MCP Connectors
Icons for agentic development: search & fetch 366,000+ open-source icons as SVG/PNG. No API key.
Multilingual semantic SVG icon search with previews for AI coding agents. 20,000+ icons.
Search open SVG icon packs and fetch exact SVG markup from coding agents through MCP.
Search 324k icons or generate new ones in the Lucide grammar - grammar-locked lint+critique+repair
Related MCP Servers
- 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-
- AlicenseAqualityBmaintenanceDescription: Supericons MCP lets AI coding agents search, recommend, and retrieve SVG icons from a semantic registry of 20,000+ icons.141MIT

Svg/icons MCPofficial
AlicenseNot gradedqualityCmaintenanceEnables AI coding tools to search, inspect, recommend, and export SVG icons from svgicons.com for use in design systems, frontend projects, and AI-assisted workflows.MIT- AlicenseNot gradedqualityAmaintenanceEnables AI assistants to search, retrieve, and save Nucleo icons from the user's local library directly into projects.6 npm7MIT