💡 摘要
Better Icons 通过 CLI 工具和 MCP 服务器为 AI 代理提供访问超过 200,000 个图标的功能,来自多个集合。
🎯 适合人群
🤖 AI 吐槽: “看起来很能打,但别让配置把人劝退。”
风险:Medium。建议检查:是否执行 shell/命令行指令;文件读写范围与路径穿越风险。以最小权限运行,并在生产环境启用前审计代码与依赖。
Better Icons
Search and retrieve 200,000+ icons from 150+ icon collections. Works as an MCP server for AI agents or CLI tool.
Quick Start
Add SKills
You can enable the underlying icons cli usage using skills
npx add-skill better-auth/better-icons
MCP Server (AI Agents)
Configure the MCP server to enable icon tools in your AI coding agents.
npx better-icons setup
This interactively configures the MCP server for:
- Cursor
- Claude Code
- OpenCode
- Windsurf
- VS Code (Copilot)
CLI (Direct Usage)
Use the CLI to search and retrieve icons directly from your terminal.
# Search for icons npx better-icons search arrow npx better-icons search home --prefix lucide --limit 10 # Get icon SVG (outputs to stdout) npx better-icons get lucide:home > icon.svg npx better-icons get mdi:account --color '#333' --size 24 # JSON output for scripting npx better-icons search settings --json | jq '.icons[:5]' npx better-icons get heroicons:check --json
Why?
Icons are a common pain point in AI-assisted coding. Models often struggle to know which icons are available, generate correct SVG code, maintain consistent styles, and organize icons properly. Inline SVGs also consume unnecessary tokens.
Features
- 200,000+ Icons - Search across 150+ icon collections (Lucide, Heroicons, Material Design, etc.)
- Auto-Learning - Remembers which icon collections you use and prioritizes them in future searches
- Project Sync - Icons are written directly to your icons file (
.tsx,.ts,.js) instead of pasting SVG into chat (saves tokens!) - Batch Retrieval - Get multiple icons at once
- Similar Icons - Find the same icon across different collections and styles
- Recent Icons - Quick access to icons you've used before
- Multi-Framework - React, Vue, Svelte, Solid, and raw SVG exports
Manual Installation
Cursor
Add to ~/.cursor/mcp.json:
{ "mcpServers": { "better-icons": { "command": "npx", "args": ["-y", "better-icons"] } } }
Claude Code (CLI)
Add to ~/.claude/settings.json:
{ "mcpServers": { "better-icons": { "command": "npx", "args": ["-y", "better-icons"] } } }
MCP Tools
The following tools are available when using the MCP server with AI agents.
search_icons
Search for icons across 150+ icon collections.
Search for "arrow" icons
Search for "home" icons in the lucide collection
Parameters:
query(required): Search query (e.g., 'arrow', 'home', 'user')limit(optional): Maximum results (1-999, default: 32)prefix(optional): Filter by collection (e.g., 'mdi', 'lucide')category(optional): Filter by category
get_icon
Get the SVG code for a specific icon with multiple usage formats.
Get the SVG for mdi:home
Get a URL for mdi:home
Get lucide:arrow-right with size 24
Parameters:
icon_id(required): Icon ID in format 'prefix:name' (e.g., 'mdi:home')color(optional): Icon color (e.g., '#ff0000', 'currentColor')size(optional): Icon size in pixelsformat(optional): 'svg' (default) or 'url'
Returns:
- Raw SVG code
- React/JSX component code
- Iconify component usage
- Direct SVG URL (when
format: "url")
list_collections
List available icon collections/libraries.
List all icon collections
Search for "material" collections
Parameters:
category(optional): Filter by categorysearch(optional): Search collections by name
recommend_icons
Get icon recommendations for a specific use case.
What icon should I use for a settings button?
Recommend icons for user authentication
Parameters:
use_case(required): Describe what you needstyle(optional): 'solid', 'outline', or 'any'limit(optional): Number of recommendations (1-20)
get_icon_preferences
View your learned icon collection preferences with usage statistics.
Show my icon preferences
What icon collections do I use most?
clear_icon_preferences
Reset all learned icon preferences to start fresh.
Clear my icon preferences
Reset icon preferences
find_similar_icons
Find similar icons or variations of a given icon across different collections and styles.
Find icons similar to lucide:home
What other arrow icons are there like mdi:arrow-right?
Parameters:
icon_id(required): Icon ID to find variations oflimit(optional): Maximum number of similar icons (1-50, default: 10)
get_icons
Get multiple icons at once (batch retrieval). More efficient than multiple get_icon calls.
Get these icons: lucide:home, lucide:settings, lucide:user
Parameters:
icon_ids(required): Array of icon IDs (max 20)color(optional): Color for all iconssize(optional): Size in pixels for all icons
get_recent_icons
View your recently used icons for quick reuse.
Show my recent icons
What icons have I used recently?
Parameters:
limit(optional): Number of recent icons to show (1-50, default: 20)
sync_icon
Get an icon AND automatically add it to your project's icons file. The recommended way to add icons.
Sync the lucide:home icon to my project
Add a settings icon to my icons file
Parameters:
icons_file(required): Absolute path to the icons fileframework(required): 'react', 'vue', 'svelte', 'solid', or 'svg'icon_id(required): Icon ID in format 'prefix:name'component_name(optional): Custom component namecolor(optional): Icon colorsize(optional): Icon size in pixels
Returns:
- Confirmation that icon was added (or already exists)
- Import statement to use
- Usage example
scan_project_icons
Scan an icons file to see what icons are already available.
What icons are already in my project?
Scan my icons file
Parameters:
icons_file(required): Absolute path to the icons file
Popular Icon Collections
| Prefix | Name | Style | Icons |
|--------|------|-------|-------|
| mdi | Material Design Icons | Solid | 7,000+ |
| lucide | Lucide Icons | Outline | 1,500+ |
| heroicons | Heroicons | Both | 300+ |
| tabler | Tabler Icons | Outline | 5,000+ |
| ph | Phosphor Icons | Multiple | 9,000+ |
| ri | Remix Icons | Both | 2,800+ |
| fa6-solid | Font Awesome 6 | Solid | 2,000+ |
| simple-icons | Simple Icons | Logos | 3,000+ |
CLI Reference
Search Icons
Search across 150+ icon collections.
better-icons search <query> [options]
| Option | Description |
|--------|-------------|
| -p, --prefix <prefix> | Filter by collection (e.g., lucide, mdi) |
| -l, --limit <number> | Maximum results (default: 32) |
| --json | Output as JSON for scripting |
Get Icon
Retrieve a single icon's SVG code.
better-icons get <icon-id> [options]
| Option | Description |
|--------|-------------|
| -c, --color <color> | Icon color (e.g., #ff0000, currentColor) |
| -s, --size <pixels> | Icon size in pixels |
| --json | Output as JSON with metadata |
The icon ID format is prefix:name (e.g., lucide:home, mdi:arrow-right).
Setup Commands
better-icons setup # Interactive setup wizard better-icons setup -y # Auto-confirm (global scope) better-icons setup -s project # Setup for current project only better-icons config # Show manual config instructions
| Option | Description |
|--------|-------------|
| -y, --yes | Skip confirmation prompts |
| -a, --agent <agents...> | Specify agents (cursor, claude-code, opencode, windsurf, vscode) |
| -s, --scope <scope> | Config scope: global (default) or project |
Development
# Install dependencies bun install # Run locally bun run dev # Build bun run build
License
MIT
优点
- 广泛的图标库
- 支持多种框架
- 用户偏好的自动学习功能
- 批量检索提高效率
缺点
- 初始设置对某些用户可能较复杂
- 依赖外部库
- 高级功能的文档有限
- 处理大型图标集时可能存在性能问题
相关技能
免责声明:本内容来源于 GitHub 开源项目,仅供展示和评分分析使用。
版权归原作者所有 better-auth.
