Skip to main content
Glama

@sohampatwardhan/iconify-mcp

npm version

Unofficial community MCP server for Iconify. It searches the public Iconify catalog, returns each collection's license, and sends PNG previews back as MCP image content so a model can see the icons.

Icon pages link to Icônes, Anthony Fu's icon browser, which is a front end over the same catalog.

Contact sheet of twelve Lucide icons rendered by iconify-mcp

Tools

Tool

What you get

list_collections

Filter the catalog by name, prefix, or category. Each hit includes author, license, icon count, and sample ids.

get_collection

One collection: license, categories, a page of icon names, and a PNG of its sample icons.

search_icons

Keyword search (query, optional prefix / prefixes / category, limit, start). Results include Iconify ids, licenses, and Icônes links, plus a contact-sheet PNG.

get_icon

One icon (prefix:name): SVG, dimensions, collection, license, alias parent, Icônes URL, and a PNG. Snippets cover SVG, data URL, Vue, React, Svelte, UnoCSS, Tailwind, and the Iconify name.

preview_icons

One labeled contact sheet for a list of ids, or for the top search matches. size, color, background, and columns are configurable.

search_icons and get_collection include a preview image by default. Pass preview: false when you only want the JSON.

Iconify search matches names and keywords. It does not search by visual similarity. Use the contact sheet to compare candidates.

Code snippets

get_icon returns the formats Icônes offers:

  • Iconify name: lucide:house

  • SVG and a data URL

  • Iconify SVG URL: https://api.iconify.design/lucide/house.svg

  • Vue, React, and Svelte components

  • UnoCSS: <div class="i-lucide-house"></div>

  • Tailwind (Iconify plugin): <span class="icon-[lucide--house]"></span>

Snippet SVGs keep currentColor so they inherit text color. Pass color (for example #b45309) when the SVG and the PNG should use a fixed color. PNGs default to #1c1917 on white. Palette icons that do not use currentColor keep their original colors.

Resources

URI

Body

iconify://collections

Collection list with licenses

iconify://collection/{prefix}

One collection, including up to 200 icon names

iconify://icon/{prefix}/{name}.svg

SVG

iconify://icon/{prefix}/{name}.png

128px PNG on white

iconify://icon/{prefix}/{name}.json

Metadata and snippets

iconify:// is the scheme to use. The same resources are also registered on icones:// so older URIs keep working.

Icônes links look like https://icones.js.org/collection/lucide?icon=lucide:house.

Related MCP server: Iconify MCP Server

Setup

Requires Node.js 20 or newer.

npx -y @sohampatwardhan/iconify-mcp@latest

The published bin is iconify-mcp. icones-mcp is a compatibility alias for the same program. Stdio is the default. Logs go to stderr so they stay off the JSON-RPC stream. The MCP server name is iconify-mcp.

Cursor

Add this to ~/.cursor/mcp.json or the project's .cursor/mcp.json:

{
  "mcpServers": {
    "iconify": {
      "command": "npx",
      "args": ["-y", "@sohampatwardhan/iconify-mcp@latest"]
    }
  }
}

Claude Desktop

The same mcpServers block goes in the desktop config:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

  • Linux: ~/.config/Claude/claude_desktop_config.json

Restart Claude Desktop after saving.

Claude Code

claude mcp add iconify -- npx -y @sohampatwardhan/iconify-mcp@latest

VS Code

Create .vscode/mcp.json:

{
  "servers": {
    "iconify": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@sohampatwardhan/iconify-mcp@latest"]
    }
  }
}

Streamable HTTP

HTTP mode is stateless and has no authentication. Bind it to localhost.

npx -y @sohampatwardhan/iconify-mcp@latest --http --port 3333

The MCP endpoint is http://127.0.0.1:3333/mcp. A client config looks like:

{
  "mcpServers": {
    "iconify": {
      "url": "http://127.0.0.1:3333/mcp"
    }
  }
}

GET /health returns ok.

MCP Inspector

The web UI:

npm install
npm run build
npx @modelcontextprotocol/inspector node dist/cli.js

A non-interactive check of the stdio server:

npx @modelcontextprotocol/inspector --cli --method tools/list node dist/cli.js
npx @modelcontextprotocol/inspector --cli --method tools/call \
  --tool-name get_icon \
  --tool-args-json '{"icon":"lucide:house","size":64}' \
  node dist/cli.js

Examples

Search and look at the sheet:

{
  "name": "search_icons",
  "arguments": { "query": "arrow", "prefix": "lucide", "limit": 8 }
}

Fetch one icon as a React component and a 128px PNG:

{
  "name": "get_icon",
  "arguments": { "icon": "lucide:house", "formats": ["react", "svg", "iconify"] }
}

Compare a hand-picked set. This is the call that produced the image at the top of the README:

{
  "name": "preview_icons",
  "arguments": {
    "title": "Lucide",
    "columns": 4,
    "size": 72,
    "icons": [
      "lucide:house", "lucide:search", "lucide:heart", "lucide:star",
      "lucide:sun", "lucide:moon", "lucide:cloud", "lucide:camera",
      "lucide:bell", "lucide:settings", "lucide:user", "lucide:mail"
    ]
  }
}

Prompts that work well once the server is connected:

  • "Search Lucide for a house icon and show me the candidates."

  • "Get the SVG and a Svelte component for tabler:brand-github."

  • "Make a contact sheet of weather icons from Phosphor."

Licenses

This server is MIT. See LICENSE.

Icon artwork is not relicensed. Every collection on Iconify has its own license (MIT, Apache-2.0, ISC, CC BY 4.0, and others). list_collections, get_collection, search_icons, get_icon, and preview_icons return that license's title, SPDX id, and URL. SVG snippets include a comment with the collection, author, and license. Read that license before shipping an icon.

Contact-sheet labels are set in Inter, which is bundled under the SIL Open Font License. The license text is in assets/fonts/OFL.txt. Rasterized labels in a PNG are pixels. The font file itself stays under the OFL.

Data source

This server calls the public Iconify API at https://api.iconify.design. Icônes (icones.js.org) is the browsing UI those icon links open. The client uses:

  • GET /collections and GET /collection

  • GET /search

  • GET /{prefix}.json?icons=...

SVGs are built locally with @iconify/utils and rasterized with @resvg/resvg-js. The client keeps at least 100ms between requests, caches collection metadata, search results, and icon bodies in memory, and retries 429 and 5xx responses.

The public API is a shared service. Point ICONIFY_API_URL at your own Iconify API instance if you need higher volume.

Variable

Default

Purpose

ICONIFY_API_URL

https://api.iconify.design

API origin

ICONES_MIN_INTERVAL_MS

100

Minimum gap between API calls

ICONES_CACHE

enabled

Set to 0 to disable the memory cache

Development

npm install
npm run lint
npm test
npm run typecheck
npm run build
node dist/cli.js --help
npm run smoke

npm run lint checks TSDoc comments with eslint-plugin-tsdoc (tsdoc/syntax). npm test includes rendering tests and a live call against the public API. npm run smoke starts the built stdio server, calls preview_icons, and writes docs/contact-sheet.png. CI runs npm ci, then lint, typecheck, test, build, and smoke.

prepublishOnly compiles TypeScript into dist/ before the package is packed.

Releasing

The package on npm is @sohampatwardhan/iconify-mcp. Version 0.2.0 is the first version of that scoped package. The old unscoped name icones-mcp stays on the registry as a deprecated package.

Trusted publishing can be attached only after the package exists. Publish 0.2.0 once from a maintainer machine, then add the GitHub Actions publisher, then let tags publish later versions.

npm login
npm ci
npm publish --access public

Leave --provenance off for that local publish. Provenance is added by the GitHub Actions workflow, which has the OIDC token. Do not push a v0.2.0 tag for this bootstrap. The workflow would try to publish 0.2.0 again.

On npmjs.com, open @sohampatwardhan/iconify-mcp → Settings → Trusted publishing (the section is also labeled Trusted Publisher). Choose GitHub Actions and enter:

Field

Value

Organization or user

sohampatwardhan

Repository

iconify-mcp

Workflow filename

release.yml

Environment name

empty

The filename is release.yml only, not .github/workflows/release.yml. Allow direct npm publish. A publisher created after 3 September 2026 starts with npm stage publish allowed and does not allow npm publish until that action is selected. Leave dist-tag management off. The same link can be created with npm CLI 11.15.0 or newer:

npm trust github @sohampatwardhan/iconify-mcp \
  --repo sohampatwardhan/iconify-mcp \
  --file release.yml \
  --allow-publish

The first successful publish from that workflow has to happen within two days of saving the publisher, or the configuration expires. Cut the next version for that check:

npm version patch   # or minor, or major
git push --follow-tags

npm version writes the version and a vX.Y.Z tag. .github/workflows/release.yml runs on that tag. It refuses the job when the tag is not v plus package.json "version", then runs npm ci, lint, typecheck, test, build, and smoke, publishes with npm publish --provenance --access public, and opens a GitHub Release with generated notes.

Deprecate the old package name after the scoped package is on the registry:

npm deprecate icones-mcp "Renamed to @sohampatwardhan/iconify-mcp"

Available Tools

5 tools
get_collectionGet an icon collectionA
Read-onlyIdempotent

Get one Iconify collection: license, author, category counts, and a page of icon names. By default also returns a PNG contact sheet of the collection's sample icons so you can see the style. Set preview to false to skip the image. Pass category to page icons inside one category.

NameRequiredDescriptionDefault
limitNoIcon names per page. Default 80.
offsetNoOffset into the icon name page. Default 0.
prefixYesCollection prefix, such as lucide, mdi, or tabler.
previewNoInclude a PNG of sample icons. Default true.
categoryNoCategory title to page, or "uncategorized".

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, openWorld, non-destructive, so the safety profile is covered. The description adds a genuinely useful behavioral fact beyond that: by default it returns a PNG contact sheet, which is a potentially heavy payload, and preview=false suppresses it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with what is returned and the identity parameter's effect. Minor overlap with schema-declared defaults (preview, category) but no filler sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, yet the description tells the agent exactly what fields to expect (license, author, category counts, icon names) plus the default image payload. For a read-only, five-parameter tool this is sufficient to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all five parameters are already documented including defaults. The description adds only a rationale for preview ("so you can see the style") and a hint about category paging; it does not explain limit/offset interplay beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Get one Iconify collection") and enumerates what comes back: license, author, category counts, and a page of icon names. The singular "one" implicitly separates it from list_collections, but no sibling is named explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete operating guidance for options (set preview to false to skip the image; pass category to page inside one category), but never says when to choose this over list_collections, search_icons, or get_icon. Usage is implied rather than routed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_iconGet an iconA
Read-onlyIdempotent

Get one icon by Iconify id (prefix:name). Returns dimensions, collection, license, alias parent when this name is an alias, the Icônes URL, code snippets, and a PNG you can see. Snippets cover raw SVG, a data URL, Vue, React, Svelte, an UnoCSS class, a Tailwind Iconify class, and the Iconify name. Snippet SVGs stay on currentColor unless color is set. Use preview_icons to compare several icons.

NameRequiredDescriptionDefault
iconYesIconify id, for example "lucide:house" or "mdi:home".
sizeNoPNG size in pixels. Default 128.
colorNoHex, CSS color name, or rgb()/rgba(). Omit to keep snippet SVGs on currentColor. PNGs use #1c1917 when omitted.
aliasesNoAlso list other names that alias this icon. Requires the collection payload. Default false.
formatsNoSnippet formats to include. Default: all of them.
backgroundNoPNG background. Default #ffffff. Use "transparent" for no background.
includeImageNoInclude the PNG. Default true.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, non-destructive, open-world behavior, and the description adds genuinely new context: the payload includes a visible PNG, an alias parent is surfaced only when the name is an alias, and snippets default to currentColor. That goes beyond the annotation set without contradicting it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The identification rule and the returned-field inventory are front-loaded, and the closing sentence routes to the sibling. The middle snippet enumeration is list-like and slightly padded, but every sentence still carries actionable information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and seven parameters, the description does the work of describing the response shape (dimensions, collection, license, alias parent, URL, snippets, PNG) and calls out the visible image. Nothing essential for a correct single call is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description restates the currentColor behavior and enumerates snippet formats that the schema enum already lists, adding little meaning the schema does not already carry.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with a specific verb and resource ('Get one icon') and pins down the identifier format ('by Iconify id (prefix:name)'), which immediately separates it from search_icons and list_collections. It also names the panel of returned fields, so an agent knows exactly what kind of result to expect.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Use preview_icons to compare several icons" gives an explicit alternative with the condition that selects it (multiple icons vs. one). It does not mention when to prefer search_icons or get_collection, so the routing is clear but not exhaustive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_collectionsList icon collectionsA
Read-onlyIdempotent

List Iconify collections available on Icônes, including license, author, icon count, category, and sample icon ids. Filter with query, prefix, or category. Does not return icon images; call get_collection or preview_icons to see icons. Icon sets keep their own licenses.

NameRequiredDescriptionDefault
limitNoMaximum collections to return. Default 40.
queryNoCase-insensitive match against prefix, name, author, category, tags, or license.
prefixNoOnly collections whose prefix equals or starts with this, such as mdi.
categoryNoOnly collections whose category contains this text.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already establish read-only, idempotent, non-destructive, open-world behavior. The description adds meaningful context beyond that: it lists the metadata returned, states that icon images are not returned, and notes that each icon set keeps its own license.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded, with the core purpose in the first sentence and exclusions immediately after. There is minor redundancy around licensing because license is both listed as returned metadata and restated at the end.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list operation with no output schema, the description does enough: it explains the returned metadata, states what is not returned, and points to alternatives for icons. The only minor gap is that pagination and limit behavior are left entirely to the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters are already well documented in the schema. The description reinforces the query, prefix, and category filters but adds little beyond those schema descriptions and does not mention the limit parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: list Iconify collections available on Icônes. It also clarifies the returned fields and explicitly distinguishes itself from get_collection and preview_icons by saying it does not return icon images.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear filtering guidance via query, prefix, or category, and routes image-viewing use cases to get_collection or preview_icons. It does not explicitly compare itself with search_icons, so the alternative guidance is useful but not fully exhaustive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

preview_iconsPreview iconsA
Read-onlyIdempotent

Render a labeled PNG contact sheet of several icons so you can compare them in one image. Pass Iconify ids, or a search query plus an optional prefix, and the top matches are drawn. Supports size, color, background, and columns. Each icon's license is included in the text result. At most 24 icons.

NameRequiredDescriptionDefault
sizeNoIcon size in pixels. Default 64.
colorNoHex, CSS color name, or rgb()/rgba(). Omit to keep snippet SVGs on currentColor. PNGs use #1c1917 when omitted.
iconsNoIconify ids to draw, such as ["lucide:house", "lucide:search"].
limitNoHow many search matches to draw. Default 12.
queryNoSearch text used when icons is omitted.
titleNoOptional heading drawn on the sheet.
labelsNoDraw the icon name under each glyph. Default true.
prefixNoCollection prefix used with query.
columnsNoNumber of columns. Default up to 4.
backgroundNoSheet background. Default #f7f6f3.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover safety (readOnly, idempotent, non-destructive, openWorld), so the description's added value is the output shape: a PNG plus a text result carrying each icon's license, and a hard cap of 24 icons. That is useful context for a tool with no output schema, but rendering details such as sheet dimensions or failure behavior when no icons match are unstated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short sentences, front-loaded with what the tool produces before the invocation modes and limits. The 'Supports size, color, background, and columns' clause mildly duplicates the schema but still serves as a quick capability scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 10 optional parameters, no required fields, and no output schema, the description covers the essentials: what is returned (PNG sheet + text with licenses), how to select icons, and the 24-item cap. Remaining detail (title, labels, column defaults) is fully documented in the schema, so nothing critical is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so a 3 is the floor, but the description adds real meaning by framing 'icons' and 'query'+'prefix' as alternatives ('Pass Iconify ids, or a search query plus an optional prefix'), which the schema only hints at via 'Search text used when icons is omitted.' It also names the tunable knobs (size, color, background, columns) and restates the 24-icon ceiling.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and artifact: 'Render a labeled PNG contact sheet of several icons so you can compare them in one image.' This is clearly distinct from the sibling read tools (search_icons, get_icon, list_collections) because it produces a composite visual, though it never names those siblings explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear context for when to reach for it ('so you can compare them in one image') and explains the two input modes: explicit Iconify ids, or a search query plus optional prefix. It stops short of exclusions or pointing to siblings for single-icon or text-only lookups.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_iconsSearch iconsA
Read-onlyIdempotent

Search icons across Iconify, the catalog behind Icônes (https://icones.js.org). Matches icon names and keywords, not arbitrary visual similarity. Returns icon ids, the collection license, and an Icônes URL. By default also returns one labeled PNG contact sheet of the matches so you can see and compare them. Set preview to false for text only.

NameRequiredDescriptionDefault
sizeNoIcon size in the contact sheet, in pixels. Default 56.
colorNoHex, CSS color name, or rgb()/rgba(). Omit to keep snippet SVGs on currentColor. PNGs use #1c1917 when omitted.
limitNoMaximum icons to return. Default 12.
queryYesSearch text, for example home, arrow, or cloud.
startNoOffset into the search results. Default 0.
prefixNoLimit the search to one collection prefix.
columnsNoContact sheet columns. Default is up to 4.
previewNoAttach a contact-sheet PNG of the returned icons. Default true.
categoryNoLimit the search to icon sets in this Iconify category.
prefixesNoLimit the search to these collection prefixes.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), so the description's job is to add context, which it does: it discloses the return payload (icon ids, collection license, Icônes URL) and that a labeled PNG contact sheet is returned by default. It does not mention rate limits or result-count behavior, keeping it below a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tightly packed sentences with the resource and matching semantics front-loaded, followed by return contents and the preview opt-out. No filler wording.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With ten fully documented parameters, rich annotations, and no output schema, the description does the needed extra work of describing the return format and default PNG behavior. Minor gaps remain around result pagination and preview payload cost, but overall it is sufficient to call the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all ten parameters are already documented, and the description only reinforces the preview toggle and contact-sheet behavior. It adds little meaning beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Search icons across Iconify') and names the underlying catalog. It also clarifies the matching semantics ('matches icon names and keywords, not arbitrary visual similarity'), which distinguishes this search tool from sibling lookup tools like get_icon and preview_icons.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear usage context: search by name/keyword rather than visual similarity, and 'Set preview to false for text only' tells the agent how to opt out of the PNG payload. It stops short of explicitly routing between siblings such as list_collections or get_icon, so no exclusions are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 5 tool updatesv0.2.1
    • First observedget_collection
    • First observedget_icon
    • First observedlist_collections
    • First observedpreview_icons
    • First observedsearch_icons

TDQS

A4.1/5.0

Scored across 5 tools

Disambiguation4/5

Each tool has a distinct resource/action focus: list_collections (catalog browsing), get_collection (one set's metadata + icon page), search_icons (cross-collection discovery), get_icon (single icon details/snippets), preview_icons (visual comparison). The only friction is that search_icons and get_collection both emit PNG contact sheets by default, blurring the line with preview_icons, but the descriptions explicitly steer callers to preview_icons for comparison.

Naming Consistency5/5

All five names follow a clean snake_case verb_noun pattern (list_collections, get_collection, search_icons, get_icon, preview_icons). Verbs are used consistently and predictably: list/search for discovery, get for single-item retrieval, preview for rendering.

Tool Count5/5

Five tools is well-scoped for an icon catalog browser: one discovery-listing tool, one collection lookup, one search, one item lookup, and one batch preview. Nothing extraneous and no obvious repetition of capability.

Completeness4/5

The surface covers the full browse lifecycle (list → detail → search → single icon with snippets → visual compare) with no dead ends for typical use. Minor gaps: no tool to fetch/export a raw Iconify collection JSON or bulk icon data, and exhaustive icon enumeration relies on implicit paging inside get_collection.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Provide access to Iconify's MCP server with over 200,000 open-source vector ICONS, supporting icon set browsing, searching, and obtaining multi-framework usage examples.
    4
    2
    Apache 2.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides access to over 200,000 open-source vector icons from more than 200 icon sets via the Iconify API. It enables users to browse, search, and retrieve specific icon data along with usage examples for popular web frameworks like React, Vue, and Tailwind CSS.
    305 npm
    21
    GPL 3.0
  • A
    license
    A
    quality
    D
    maintenance
    Provides access to Iconify's 200,000+ open source vector icons from 200+ icon sets, enabling search, browsing, and retrieval of icon data with framework usage examples.
    4
    9 npm
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables searching, fetching SVG, and discovering icons from Iconify's 200,000+ icon library across 150+ sets.
    26 npm
    MIT