Icons MCP Server
# Icons MCP Server
An MCP server providing access to **200,000+ icons** from 150+ libraries. Search, retrieve, convert, and optimize icons for your applications.
## Installation
```bash
git clone https://github.com/devstroop/icons-mcp.git
cd icons-mcp
npm install
npm run build
```
## Setup
**VS Code** (`.vscode/mcp.json`):
```json
{
"servers": {
"icons": {
"command": "node",
"args": ["/path/to/icons-mcp/dist/index.js"]
}
}
}
```
**Claude Desktop** (`claude_desktop_config.json`):
```json
{
"mcpServers": {
"icons": {
"command": "node",
"args": ["/path/to/icons-mcp/dist/index.js"]
}
}
}
```
---
## Tools
### `recommend_icons`
Get icon suggestions for UI use cases.
```
useCase: "navigation" | "ecommerce" | "user" | "status" | "settings" | "social" | ...
```
### `search_icons`
Search 200k+ icons by keyword.
```
query: "shopping cart"
limit: 10
```
### `get_icon`
Get a single icon as SVG/PNG.
```
name: "lucide:home"
size: 24
color: "#000"
```
### `get_multiple_icons`
Batch fetch up to 50 icons.
```
icons: [{ name: "lucide:home" }, { name: "lucide:user" }]
```
### `list_libraries`
List available icon libraries.
### `list_categories`
Get categories from a library.
### `create_sprite`
Combine icons into a single SVG sprite.
```
icons: ["lucide:home", "lucide:user"]
library: "iconify"
optimize: true
```
### `convert_icon`
Convert SVG → PNG at any size.
```
iconData: "<svg>...</svg>"
toFormat: "png"
size: 128
```
### `optimize_svg`
Compress SVG with SVGO (50-70% reduction).
---
## Icon Format
Icons use `prefix:name` format:
| Prefix | Library | Count |
|--------|---------|-------|
| `lucide` | Lucide | 1,500+ |
| `mdi` | Material Design | 7,000+ |
| `heroicons` | Heroicons | 300+ |
| `tabler` | Tabler | 5,000+ |
| `ph` | Phosphor | 7,000+ |
| `fa6-solid` | Font Awesome | 2,000+ |
| `simple-icons` | Brand Logos | 3,000+ |
Browse all: [icon-sets.iconify.design](https://icon-sets.iconify.design/)
---
## Examples
**Get home icon:**
```json
{ "name": "lucide:home" }
```
**Search icons:**
```json
{ "query": "arrow", "limit": 5 }
```
**Dashboard icons:**
```json
{
"icons": [
{ "name": "lucide:home" },
{ "name": "lucide:users" },
{ "name": "lucide:settings" }
]
}
```
**Status icons with colors:**
```json
{
"icons": [
{ "name": "lucide:check", "color": "#22c55e" },
{ "name": "lucide:x", "color": "#ef4444" }
]
}
```
---
## License
MIT
TDQS
Scored across 9 tools
Most tools have distinct purposes: discovery (list_libraries, search_icons, list_categories), retrieval (get_icon, get_multiple_icons), and processing (convert_icon, create_sprite, optimize_svg). However, list_libraries and list_categories both list available items, which could cause minor confusion, though the latter is scoped to categories within a library.
All tool names follow a consistent verb_noun pattern (list_libraries, search_icons, get_icon, get_multiple_icons, list_categories, convert_icon, create_sprite, optimize_svg), with recommend_icons as the only minor deviation. The pattern is clear and predictable.
9 tools are well-scoped for an icon management server, covering discovery, retrieval, conversion, sprite creation, and optimization without redundancy. Each tool serves a distinct purpose.
The surface covers discovery, retrieval, conversion, and optimization comprehensively. Minor gaps include no direct PNG-to-SVG conversion and no tool for managing local icon collections, but these are not core to the server's purpose.