Lucide icon sets for AI: search 2000+ icons, style them, batch-export SVG. Offline, no key.
Runs on your machine from its package; the steps are below.
Not assessed yet.
Odel charges nothing per call. The publisher may charge for its own service.
Runs locally over stdio
This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).
Run
uvx icon-mcp
MCP client config
{
"mcpServers": {
"icon-mcp": {
"command": "uvx",
"args": [
"icon-mcp"
]
}
}
}mcp-name: io.github.pratham-jain33/icon-mcp
Give any AI assistant a custom icon button. No emojis, no designer needed.
Unofficial community project. Not made by, endorsed by, or affiliated with Lucide. The Lucide icon set (ISC licensed) is bundled inside the package, so everything works offline.
AI assistants reach for emojis when a UI needs an icon, because drawing a good icon is actual design work. This server plugs into any MCP-compatible assistant (Claude Desktop, Claude Code, Cursor, and more) and lets it search 2000+ Lucide icons by keyword, restyle them (stroke width, color, size), and generate a whole matching set in one call so every icon on the page looks like it belongs together. The SVGs come back as markup the assistant saves straight into the project. No API key, no account, no network.
| Tool | Description |
|---|---|
search_icons | Finds icons by keyword across names and tags. Use when you don't know the exact icon name. |
generate_icons | Renders one icon or a whole matching set as styled SVG markup. Takes names or plain-words queries plus shared stroke_width, color, size. |
Install
No cloning needed:
uvx icon-mcp
or with pip:
pip install icon-mcp
From source instead:
git clone https://github.com/pratham-jain33/icon-mcp
cd icon-mcp
python -m venv .venv
.venv/bin/pip install -e .
Connect your assistant
Claude Desktop config file:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json{
"mcpServers": {
"icon-mcp": {
"command": "uvx",
"args": ["icon-mcp"]
}
}
}
No environment variables, no keys. From source, point at your checkout instead:
{
"mcpServers": {
"icon-mcp": {
"command": "/absolute/path/to/icon-mcp/.venv/bin/python",
"args": ["-m", "icon_mcp.server"]
}
}
}
Restart Claude Desktop, then try: "Find me a settings icon and a trash icon, both 1.5px stroke in #2f6bff at 32px, as SVGs."
None. There is nothing to configure: no API keys, no accounts, no network access. The icon set ships inside the package.
search_icons to find the right names, or passes keywords straight to generate_icons.width, height, stroke-width, stroke. Pure XML manipulation, no rendering, no native dependencies..svg files in your project.You: I need icons for my landing page nav: home, features, pricing,
contact. Make them all match: thin 1.5 stroke, blue #2f6bff.
Claude: [calls generate_icons with ["home", "features", "pricing",
"contact"], stroke_width=1.5, color="#2f6bff"]
Done. Four SVGs, all 1.5px stroke in #2f6bff, saved to icons/.
"features" resolved to the "sparkles" icon, "contact" to "mail".
Unicon is the closest existing tool: an MCP server over a hosted icon API with 19,000+ icons across 9 libraries. icon-mcp takes the opposite trade:
uvx/pip; no Node or npx needed.The trade: one library (Lucide) instead of nine, and keyword search instead of semantic search. For shipping a consistent icon set on a page, that's the whole job.
generate_icons accepts:
| Parameter | Default | Rules |
|---|---|---|
icons | (required) | 1-50 names or keyword queries, e.g. ["home", "trash can"] |
stroke_width | 2.0 | 0.5 to 4 (2 is Lucide's default) |
color | "currentColor" | currentColor, hex (#2f6bff), or CSS name (red) |
size | 24 | 1 to 1024 pixels |
Queries that don't resolve are reported in the unresolved list instead of failing the whole call.
Issues and pull requests are welcome. If you add a tool, write its description the way you'd explain it to a smart friend who has never seen it — the assistant reads that text to decide when to use it. To refresh the icon bundle against a newer Lucide release, bump LUCIDE_VERSION in scripts/fetch_lucide.py and run it.
MIT © Pratham Jain. See LICENSE.
Built on Lucide's icon set (ISC licensed, see icon_mcp/LUCIDE_LICENSE) and the Model Context Protocol.