Better Icons

Search the Iconify icon catalogue and write chosen icons into a project's icons file

By Better Auth JavaScript Local · stdio DesignDeveloper tools

73 popularity score ★ 1.5k ↓ 1.2k/wk

Connect your client

Local (npm)

Add in one click

Opens the app, which asks before it adds the server.

Or add it by command or config

Claude CodeTerminal
claude mcp add better-icons -- npx -y better-icons
Claude Desktopclaude_desktop_config.json
{
  "mcpServers": {
    "better-icons": {
      "command": "npx",
      "args": [
        "-y",
        "better-icons"
      ]
    }
  }
}
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "better-icons": {
      "command": "npx",
      "args": [
        "-y",
        "better-icons"
      ]
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "better-icons": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "better-icons"
      ]
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.better-icons]
command = "npx"
args = ["-y", "better-icons"]
Gemini CLITerminal
gemini mcp add --scope user better-icons npx -- -y better-icons

What it does

Better Icons is a local MCP server, and also a command-line tool, that looks up icons from the public Iconify API (api.iconify.design), which covers more than 150 open icon sets such as Lucide, Material Design Icons, Heroicons and Tabler. A coding assistant can search by keyword, filter by set or category, fetch an icon as SVG with a chosen colour and size, pull up to 20 icons in one call, ask for suggestions for a use case, and find the same symbol in other sets.

The tool that sets it apart is sync_icon: instead of pasting SVG into the chat, it turns the icon into a React, Vue, Svelte or Solid component (or plain SVG) and appends it to an icons file in the project, then returns the import line to use. scan_project_icons reads that file back so the assistant can reuse what is already there.

It also keeps a small record of what you use in ~/.better-icons/preferences.json: how often each icon set is picked, used to rank future searches, and a history of recent icons capped at 50 entries (src/memory.ts at v1.0.4). The v1.0.4 source registers 11 tools, matching the README. Running the package with no subcommand starts the MCP server over stdio; the setup subcommand instead writes the config into Cursor, Claude Code, OpenCode, Windsurf, VS Code or Google Antigravity.

What it needs

RuntimeNode.js 18+

Node.js 18 or later (the package's engines field) for npx. Outbound internet access to api.iconify.design, which every lookup calls. No account or key. Building from source uses Bun.

Limits

Every search and icon fetch depends on the public Iconify API; there is no offline mode or cache of icon data. search_icons returns 32 results by default (up to 999 with limit), find_similar_icons 10 by default (up to 50), recommend_icons at most 20, and get_icons takes at most 20 IDs per call. The recent-icons history keeps the last 50 icons. sync_icon only produces components for react, vue, svelte, solid or plain svg. The built-in version string in src/constants.ts still reads 1.0.0 in the 1.0.4 release, so the server reports that version to clients.

Who it suits

Suits developers who let an assistant build front-end UI in React, Vue, Svelte or Solid and want real icons from known sets instead of invented SVG, with the icons kept in one project file. It runs locally with no sign-in, so it is easy to try. Pick something else if you need icons that are not in Iconify's catalogue, work without internet access, or want the assistant to have no write access to project files: in that case avoid calling sync_icon, or use the CLI by hand.

Tools 11

search_icons
Search icons by keyword across Iconify sets, optionally filtered by set prefix or category.
get_icon
Fetch one icon as SVG, JSX and Iconify usage code, or as a URL, with optional colour and size.
get_icons
Fetch up to 20 icons in one call with a shared colour and size.
list_collections
List the available icon sets, filtered by category or name.
recommend_icons
Suggest icons for a described use case, optionally solid or outline.
find_similar_icons
Find versions of a given icon in other sets and styles.
get_icon_preferences
Show which icon sets you use most, from the local usage record.
clear_icon_preferences
Reset the local usage record.
get_recent_icons
List icons used recently, 20 by default.
sync_icon
Fetch an icon and append it as a component to a project's icons file, returning the import line.
scan_project_icons
Read an icons file and list the icons already in it.

Similar servers