Shadcn.io is not affiliated with official shadcn/ui
search_icons
Fuzzy icon search across 222+ libraries (~285,000 icons) using PostgreSQL trigram similarity. Typo-tolerant and cross-library by default.
Icons live in their own Postgres DB because the catalog is huge — ~285,000 icons across 222 libraries. search_icons gives the agent a ranked, typo-tolerant fuzzy search directly against that index.
When to use it
- The user describes an icon with keywords ("magnifying glass", "settings", "arrow right").
- You want cross-library matches in one call — Lucide, Heroicons, Tabler, Simple Icons, all together.
- Before calling
get_icon, which needs the exact(library, name)pair.
Arguments
| Name | Type | Required | Default | Notes |
|---|---|---|---|---|
query | string (min 1 char) | ✓ | — | Icon name to search for — trigram-based, tolerates typos |
limit | number (1–100) | — | 25 | Higher limits don't materially slow the DB but cost tokens downstream |
Example prompts
use shadcnio to find a magnifying-glass icon from Lucide or Heroiconsuse shadcnio to search for a "github" brand iconuse shadcnio to find the five closest matches to "up arrow"Response shape
{
"count": 4,
"results": [
{ "libraryId": "lucide", "name": "search", "similarity": 1.0 },
{ "libraryId": "heroicons", "name": "magnifying-glass", "similarity": 0.82 },
{ "libraryId": "simple-icons", "name": "google-search-console", "similarity": 0.71 },
{ "libraryId": "tabler", "name": "search", "similarity": 0.68 }
]
}- Sorted by
similaritydescending, then bynamealphabetically. - The
(libraryId, name)tuple is the primary key — feed it straight toget_icon.
Manual invocation
curl -s -X POST "https://www.shadcn.io/api/mcp?token=YOUR_TOKEN" \
-H "content-type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "search_icons",
"arguments": { "query": "magnifying", "limit": 10 }
}
}' | jq '.result.content[0].text | fromjson | .results'FAQ
Was this page helpful?
Sign in to leave feedback.