mcpField
B
better-icons

better-icons

github.com/better-authDesign & UI1.4k6.0k installsUpdated 30w ago
Repository

About better-icons

A CLI and MCP server for finding and retrieving icons from more than 200 libraries through Iconify. It is intended for developers and AI agents that need to search, inspect, or add SVG icons to projects.

Key features

  1. 01Search icons across collections
  2. 02Retrieve individual or multiple SVGs
  3. 03Browse icon collections
  4. 04Recommend icons by use case
  5. 05Find similar icons across collections
  6. 06Scan projects and sync icons

Use cases

  1. 01Finding an icon by name or use case
  2. 02Downloading search results as SVG files
  3. 03Adding an icon to a project file

MCP support

Its MCP server exposes tools for searching, retrieving, recommending, and comparing icons, browsing collections, and scanning or syncing project icons.

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/better-auth/better-icons --skill better-icons

After installing, type/better-iconsin Claude Code to confirm it loaded.

Details

From the project README

Better Icons

Search and retrieve icons from 200+ libraries via Iconify.

Installation

Before using any better-icons commands, ensure the tool is available in the environment.

Option 1 — Install globally (recommended, matches all examples below):

# Using npm
npm install -g better-icons

# Using Bun (faster)
bun add -g better-icons

Option 2 — Run without installing (prefix every command with npx or bunx):

# Using npx (npm)
npx better-icons search arrow --limit 10
npx better-icons get lucide:home > icon.svg

# Using bunx (Bun — faster)
bunx better-icons search arrow --limit 10
bunx better-icons get lucide:home > icon.svg

For AI agents: Prefer the global install so that better-icons is on $PATH and the commands below work as-is. Run the install step once during environment setup, then use the commands without npx/bunx.

CLI

# Search icons
better-icons search <query> [--prefix <prefix>] [--limit <n>] [--json]

# Search and download all found icons as SVG files
better-icons search <query> -d [dir] [--color <color>] [--size <px>]

# Get icon SVG (outputs to stdout)
better-icons get <icon-id> [--color <color>] [--size <px>] [--json]

# Setup MCP server for AI agents
better-icons setup [-a cursor,claude-code] [-s global|project]

Examples

better-icons search arrow --limit 10
better-icons search home --json | jq '.icons[0]'
better-icons get lucide:home > icon.svg
better-icons get mdi:home --color '#333' --json

# Batch download all search results
better-icons search arrow -d              # saves to ./icons/
better-icons search check -d ./my-icons   # saves to ./my-icons/
better-icons search star -d -c '#000' -s 24 --limit 64

Icon ID Format

prefix:name - e.g., lucide:home, mdi:arrow-right, heroicons:check

Popular Collections

lucide, mdi, heroicons, tabler, ph, ri, solar, iconamoon


MCP Tools (for AI agents)

ToolDescription
search_iconsSearch across all libraries
get_iconGet single icon SVG
get_iconsBatch retrieve multiple icons
list_collectionsBrowse available icon sets
recommend_iconsSmart recommendations for use cases
find_similar_iconsFind variations across collections
sync_iconAdd icon to project file
scan_project_iconsList icons in project

TypeScript Interfaces

interface SearchIcons {
  query: string
  limit?: number        // 1-999, default 32
  prefix?: string       // e.g., 'mdi', 'lucide'
  category?: string     // e.g., 'General', 'Emoji'
}

interface GetIcon {
  icon_id: string       // 'prefix:name' format
  color?: string        // e.g., '#ff0000', 'currentColor'
  size?: number         // pixels
}

interface GetIcons {
  icon_ids: string[]    // max 20
  color?: string
  size?: number
}

interface RecommendIcons {
  use_case: string      // e.g., 'navigation menu'
  style?: 'solid' | 'outline' | 'any'
  limit?: number        // default 10
}

interface SyncIcon {
  icons_file: string    // absolute path
  framework: 'react' | 'vue' | 'svelte' | 'solid' | 'svg'
  icon_id: string
  component_name?: string
}

API

All icons from https://api.iconify.design

Comments

Markdown supported