Skip to main content
Glama
Osmansiddiquer

Iconify MCP Server

Iconify MCP Server

An MCP (Model Context Protocol) server that provides AI assistants with access to Iconify's extensive collection of over 200,000 open source vector icons from 200+ icon sets.

Features

  • Get all icon sets: Browse all available icon collections

  • Get specific icon set: Retrieve detailed information about a specific icon set

  • Search icons: Search through icons with flexible query parameters

  • Get icon data: Retrieve specific icon data with usage examples for popular frameworks (React, Vue, Svelte, HTML, CSS)

Related MCP server: Better Icons

Installation

npm install
npm run build

Usage

Add to your Claude Desktop MCP settings configuration:

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

Option 2: Local Development

Add to your Claude Desktop MCP settings configuration:

{
  "mcpServers": {
    "iconify": {
      "command": "node",
      "args": ["C:\\Users\\osman\\OneDrive\\Desktop\\Work\\Sciloop\\Lab\\iconify-mcp\\dist\\index.js"]
    }
  }
}

MCP Configuration File Location

Windows: %APPDATA%\Claude\claude_desktop_config.json macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Linux: ~/.config/Claude/claude_desktop_config.json

Available Tools

1. get_all_icon_sets

Browse all available icon collections from Iconify.

Parameters: None

Example: Returns list of 200+ icon sets with metadata

2. get_icon_set

Retrieve detailed information about a specific icon set.

Parameters:

  • prefix (string, required): The icon set prefix (e.g., 'mdi', 'fa', 'bi')

Example: { "prefix": "mdi" }

3. search_icons

Search through Iconify's icon collection.

Parameters:

  • query (string, required): Search query (e.g., 'home', 'arrow')

  • prefix (string, optional): Limit search to specific icon set

  • limit (number, optional): Maximum results (default: 64, max: 999)

Example: { "query": "home", "prefix": "mdi", "limit": 10 }

4. get_icon_data

Retrieve specific icon data with framework usage examples.

Parameters:

  • icon (string, required): Full icon name in format 'prefix:icon-name' (e.g., 'mdi:home')

Example: { "icon": "mdi:home" }

Returns icon data and usage examples for React, Vue, Svelte, HTML, and CSS.

Development

npm run dev    # Watch mode
npm run build  # Production build

License

MIT

Available Tools

4 tools
get_all_icon_setsA

Browse all available icon collections from Iconify (200+ icon sets with 200,000+ icons). Returns a list of all icon sets with their metadata including name, total icons, author, license, and sample icons.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries the full burden, and it does disclose the operation's nature (read-only browse, no arguments) plus the concrete payload fields returned: name, total icons, author, license, and sample icons. It stops short of describing response format or ordering, which keeps it from 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?

Two sentences, zero waste, front-loaded with the scope and scale before the return details. Every clause earns its place.

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?

No output schema exists, so the description must describe the return value, and it lists the metadata fields an agent can expect. It is adequate for a simple zero-parameter listing tool, though it omits format/ordering details that would make the payload fully predictable.

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?

Zero parameters, so there is nothing to disambiguate; the baseline for a parameterless tool is 4. The description correctly implies no filtering arguments exist by framing the call as 'all available' collections.

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 ('Browse all available icon collections from Iconify') and quantifies scope (200+ sets, 200,000+ icons). The word 'all' implicitly contrasts with the singular sibling get_icon_set, but no sibling is named explicitly, so the differentiation is left to inference.

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?

Usage is implied by 'Browse all available' — an agent can infer this is the enumeration/discovery entry point before drilling into get_icon_set. However, there is no explicit when-to-use statement and no mention of alternatives such as search_icons for targeted lookup.

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

get_icon_dataB

Retrieve specific icon data with usage examples for popular frameworks (React, Vue, Svelte, etc.). Provide the full icon name in format 'prefix:icon-name' (e.g., 'mdi:home', 'fa:user').

ParametersJSON Schema
NameRequiredDescriptionDefault
iconYesFull icon name in format 'prefix:icon-name' (e.g., 'mdi:home', 'fa:user', 'bi:heart')

TDQS

B3.3/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full behavioral burden. 'Retrieve' implies a read-only operation, and it discloses that output includes usage examples for frameworks, which is useful context. However, it does not describe return format (SVG, code snippets), error behavior, or any auth/rate-limit considerations for a tool with no output schema.

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?

Two tightly written sentences: the first front-loads the purpose and output scope, the second supplies the essential input format. No filler, no redundancy beyond a minor overlap with the schema example.

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

Completeness3/5

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

For a simple one-parameter read tool the description is adequate: it says what it retrieves and how to call it. But with no output schema, it remains vague about what 'icon data' actually contains (e.g., SVG path, license, usage snippets), leaving a meaningful gap for an agent that needs to know what to expect.

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 single parameter is fully documented in the schema. The description repeats the same format and examples without adding new semantics such as case sensitivity, prefix lists, or fallback behavior. Baseline 3 is appropriate when the schema does the heavy lifting.

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 ('Retrieve') and resource ('icon data'), with scope ('specific icon') and a bonus detail ('usage examples for popular frameworks'). Clear enough to distinguish from search_icons (which finds icons) and get_all_icon_sets (which lists sets), but the description never names a sibling or explicitly contrasts its role, so it stops short of 5.

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

Usage Guidelines2/5

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

Provides an invocation format ('prefix:icon-name') but offers no guidance on when to use this tool versus alternatives like search_icons or get_icon_set. No when/when-not conditions, no prerequisites, and no explicit routing to siblings.

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

get_icon_setB

Retrieve detailed information about a specific icon set including all available icons in that set. Provide the icon set prefix (e.g., 'mdi', 'fa', 'bi').

ParametersJSON Schema
NameRequiredDescriptionDefault
prefixYesThe icon set prefix (e.g., 'mdi', 'fa', 'bi', 'tabler')

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden. It discloses the payload content ('all available icons in that set'), which hints at a potentially very large response, but says nothing about size, pagination, permissions, caching, or behavior for an invalid prefix. That is a significant gap for a tool whose read-only nature must be inferred from 'Retrieve'.

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?

Two tight sentences, front-loaded with the purpose and followed by the required input. The second sentence largely restates the schema's parameter description, but it is short enough that the redundancy costs little.

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

Completeness3/5

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

For a one-parameter read tool this is minimally sufficient, and it does state what is returned. With no output schema, though, the shape of the returned data (fields per icon, ordering, size limits) is unexplained, and the potential volume of 'all available icons' in a large set like 'mdi' is not flagged.

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% and the single 'prefix' parameter is already documented with examples in the schema. The description's parenthetical ('mdi', 'fa', 'bi') adds no meaning beyond that, so the baseline 3 applies.

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 ('Retrieve detailed information about a specific icon set') and adds scope ('including all available icons in that set'), which implicitly distinguishes it from get_all_icon_sets. However, it never names a sibling explicitly, so differentiation is left to inference from 'specific' vs 'all'.

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?

Usage is only implied: the need to supply a known prefix signals 'use this when you already know which set you want,' contrasting with get_all_icon_sets. There is no explicit when-to-use, no guidance on choosing between this and search_icons or get_icon_data, and no error case for an unknown prefix.

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

search_iconsB

Search through Iconify's icon collection with flexible query parameters. Returns matching icons from all icon sets or a specific set.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoOptional: maximum number of results (default: 64, max: 999)
queryYesSearch query (e.g., 'home', 'arrow', 'user')
prefixNoOptional: limit search to specific icon set prefix

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It says nothing about authentication requirements, rate limits, result ordering, or pagination behavior beyond 'returns matching icons', which is a significant gap for a search tool.

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?

Two short sentences with the core action front-loaded and no filler. The second sentence is mildly redundant with the first but does add the scoping detail.

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

Completeness3/5

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

For a simple 3-parameter search tool with no annotations and no output schema, the description covers the essential purpose but omits return shape, ordering, and how limit interacts with result set. Adequate but with clear gaps.

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 three parameters are already documented in the schema (including default/max for limit). The description adds only the 'all icon sets or a specific set' framing for prefix, which is marginal value over 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 (search) and resource (Iconify's icon collection), and notes that results span all icon sets or one. It does not name or differentiate itself from the getter siblings (get_icon_set, get_all_icon_sets, get_icon_data), so an agent must infer the distinction.

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?

Usage is only implied: the phrase 'all icon sets or a specific set' hints at when to use prefix, but there is no explicit when-to-use/when-not statement and no reference to the sibling getters as alternatives.

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. 4 tool updatesv1.0.1
    • First observedget_all_icon_sets
    • First observedget_icon_data
    • First observedget_icon_set
    • First observedsearch_icons

TDQS

A3.6/5.0

Scored across 4 tools

Disambiguation4/5

get_all_icon_sets vs get_icon_set is clearly distinguished (all collections vs one collection), and search_icons is distinct. get_icon_data and get_icon_set both return icon-related info, so there is minor potential for confusion, but descriptions clarify the granularity.

Naming Consistency5/5

All four names follow a clean verb_noun snake_case pattern (get_icon_set, get_all_icon_sets, search_icons, get_icon_data). The convention is highly predictable and consistent.

Tool Count4/5

Four tools is a tight, well-scoped surface covering browse, search, set detail, and single-icon retrieval. It is slightly lean, but each tool earns its place for the icon-lookup domain.

Completeness4/5

The surface covers browsing sets, listing all sets, searching, and fetching icon data with framework usage examples, which handles the core icon-discovery lifecycle. Minor gaps exist (e.g., batch/multi-icon retrieval), but agents can work around them.

Maintenance

ActivityInactive
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
    C
    maintenance
    Provides access to over 200,000 icons from 150+ collections with features for searching, recommendations, and direct file synchronization. It supports multiple frameworks and optimizes AI performance by writing icon code directly to project files.
    457 npm
    1,273
    MIT
  • 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.
    256 npm
    15
    GPL 3.0