Make your AI a shadcn expert

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

NameTypeRequiredDefaultNotes
querystring (min 1 char)Icon name to search for — trigram-based, tolerates typos
limitnumber (1–100)25Higher limits don't materially slow the DB but cost tokens downstream

Example prompts

use shadcnio to find a magnifying-glass icon from Lucide or Heroicons
use shadcnio to search for a "github" brand icon
use 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 similarity descending, then by name alphabetically.
  • The (libraryId, name) tuple is the primary key — feed it straight to get_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.