340k SVG icons β browser, CLI (writes source), and MCP for Cursor/Claude.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag β we're steadily working through the catalog.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
340,000+ SVG icons β searchable, customizable, and a package manager for your icon codebase.
Website + API + CLI + MCP. Find any icon, write it into the project as source (no giant dependency), migrate mixed icon libraries, and let AI agents use the same engine.
Repo: github.com/LeulAria/Aria-Icons
The npm package name is aria-icons (verified unused on the registry at the time of adding the CLI). The CLI is tiny: it talks to the Aria Icons API and only downloads the icons you request.
| Command | Purpose |
|---|---|
search <query> | Search all collections |
get <id> | Print SVG or framework source |
add <namesβ¦> | Write icon files into the repo |
migrate --to <set> | Map existing icon-package imports onto one collection |
doctor | Audit mixed libraries |
suggest [src/] | Recommend a consistent set |
init | Write .aria-icons.json |
setup | Configure MCP for Cursor / Claude / VS Code / β¦ |
mcp | Stdio MCP server (default if you run aria-icons with no args) |
Icon ids: collection:name (lucide:house, tabler:arrow-up, thesvg:github).
Full CLI docs: packages/cli/README.md.
Local (stdio) β what aria-icons setup writes:
Remote HTTP β same catalog, hosted with the website:
Public REST used by the CLI (tiny payloads, no icon database in the package):
| Endpoint | |
|---|---|
GET /api/v1/search?q= | Search |
GET /api/v1/icon?id=lucide:house | One icon |
GET /api/v1/icons?ids=a,b | Batch |
GET /api/v1/collections | Collections |
GET /api/v1/similar?id= | Similar / other sets |
GET /api/v1/equivalent?id=&to= | Cross-set mapping |
During local development:
First, install the dependencies:
Fetch the brand + Iconify icon sources (one-time, or whenever you want to refresh), then rebuild the search catalog:
Then, from the repo root, run the development server:
Open http://localhost:3001 in your browser. The in-app Contribute Icons page (/contribute) walks through adding a new set.
Icons come from three storage backends, all indexed into one catalog:
| Source | Storage | Fetch |
|---|---|---|
| Vendored sets (Lucide, Tabler, Heroicons, β¦) | one JSON per set in apps/web/icons/vendored/ | committed to the repo |
| theSVG brand logos (6,500+ brands, variants) | apps/web/icons/thesvg.json | bun run fetch:thesvg (auto-packs) |
| Iconify collections (200+ sets) | one JSON per set in apps/web/icons/iconify/ | bun run fetch:iconify (add -- --all for every set) |
After fetching, rebuild the search catalog:
This writes public/icons-meta.json (browser + MCP search index with names,
tags, aliases, and categories) and icons-name.json.
Every icon set here was contributed or curated by the community β new sets
and better metadata are always welcome. The in-app guide at
/contribute walks through it, and the
short version is:
apps/web/icons/<your-set-name>/ (lowercase, hyphenated file names β the file name becomes the icon name).apps/web/src/lib/icon-sets.ts (id, label, homepage, and whether it's line or solid style).bun run pack:icons -- --delete && bun run generate-icons inside apps/web.bun run dev β check the sidebar, grid rendering, and search.Other ways to contribute:
bun run fetch:thesvg.bun run fetch:iconify -- --sets <prefix>.Only submit icons you have the right to share, and include the license in your PR (MIT, CC0, or similarly permissive licenses preferred).
Manual npm publish:
Pre-release:
Website deploy is unchanged (Vercel / your current host for apps/web). After deploy, /api/v1/* and /api/mcp are what the CLI and remote MCP use.
bun run dev: Start all applications in development modebun run build: Build all applicationsbun run check-types: Check TypeScript types across all appsbun run cli:dev: Run the CLI from sourcebun run cli:build: Bundle the CLI for npmbun run cli:release: Version, tag, and push the CLIInside apps/web:
bun run fetch:thesvg: Fetch/refresh theSVG brand icons (packs into icons/thesvg.json)bun run fetch:iconify: Fetch Iconify sets (-- --sets a,b, -- --all)bun run pack:icons: Collapse loose SVG folders into one JSON per set (-- --delete removes sources)bun run generate-icons: Rebuild the icon search catalogMIT Β© Leul Aria
Factual signals from GitHub, npm, and our automated checks β not a rating.
No reviews yet β be the first to share how this listing worked for you.
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/aria-icons)<a href="https://allmcps.com/mcp/aria-icons"><img src="https://allmcps.com/api/badge/aria-icons?style=directory" alt="Aria Icons on AllMCPs" /></a>