Search 10,000+ open-source icons (Lucide, Heroicons, Tabler, Simple Icons) as SVG or PNG.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)
A free, agent-readable service that aggregates 10,000+ open-source icons β Lucide,
Heroicons, Tabler, and Simple Icons β
and serves them as SVG or PNG at predictable URLs, with keyword + semantic search, an llms.txt, and an MCP server.
Runs entirely within the Cloudflare free tier (Workers + R2 + Workers AI).
| Need | Do this |
|---|---|
| Embed an icon you know the name of | GET /i/{name}.svg (best match) or /icons/{set}/{name}.svg |
| Find the right icon | GET /api/search?q=shopping+cart β names + ready URLs |
| Read the whole API in one shot | GET /llms.txt (or /llms-full.txt) |
| Native tool calls | MCP server at /mcp (search_icons, get_icon, list_sets) |
| OpenAPI | GET /openapi.json |
GET /icon/{set}/{name} β crawlable HTML page per icon (preview, usage, JSON-LD ImageObject + breadcrumb). /icon/{name} 302-redirects to the best match.GET /sitemap.xml β every icon page (~10k URLs).GET /robots.txt β explicitly allows AI crawlers (GPTBot, OAI-SearchBot, ClaudeBot, PerplexityBot, Google-Extended, β¦) and points to the sitemap.WebSite+SearchAction and WebAPI JSON-LD and Open Graph tags./{INDEXNOW_KEY}.txt; npm run indexnow pings Bing/Yandex to crawl new or changed URLs instantly (pass paths to submit a subset, e.g. npm run indexnow /icon/lucide/house).color= hex / CSS color / currentColor β e.g. ?color=%23e11d48size= 1..2048 pxstroke= 0..20 (line icons)style= e.g. solid (Heroicons), filled (Tabler)format= svg | pngExample: /i/shopping-cart.svg?color=crimson&size=48&stroke=1.5
Semantic search = keyword ranking fused (reciprocal-rank fusion) with cosine similarity over the
in-memory embeddings. No Vectorize, no per-vector billing, no dimension cap. If embeddings.bin is
absent, search gracefully falls back to keyword-only.
In
wrangler dev --localthe Workers AI binding is offline, so search runs keyword-only locally. Semantic search activates once deployed (or when running against the remote AI binding).
npm run deploy runs scripts/deploy.mjs: it creates the iconserve-icons
bucket (idempotent), uploads the four artifacts to remote R2, then wrangler deploy.
Edit scripts/lib/sets.mjs, then re-run npm run build:data && npm run upload:r2
(local) or npm run deploy (remote). Set priority for /i/{name} best-match is DEFAULT_SET_ORDER in
wrangler.toml.
Icons are redistributed under their original permissive licenses: Lucide (ISC), Heroicons (MIT), Tabler (MIT), Simple Icons (CC0). Brand marks from Simple Icons are trademarks of their respective owners β use them per each brand's guidelines.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/iconserve)<a href="https://allmcps.com/mcp/iconserve"><img src="https://allmcps.com/api/badge/iconserve?style=directory" alt="Iconserve on AllMCPs" /></a>