infyicon-mcp
Infyicon MCP Server
Search 161,000+ free hand-drawn vector icons from any MCP client — Claude Desktop, Claude Code, ChatGPT, Cursor, VS Code, Codex, Gemini CLI, Windsurf and more. Every icon comes in four matching styles (outline, fill, color-outline, color-fill) with ready-to-embed SVG markup and PNG URLs at 16–512 px.
Hosted endpoint (recommended):
https://infyicon.com/mcp— streamable HTTP, stateless, no auth, no API keySetup guide with copy-paste config for every client: https://infyicon.com/developers
Icon license: free for personal & commercial use with attribution to infyicon.com — see https://infyicon.com/license
Tools
Tool | What it does |
| Search 161,000+ icons by keyword, optionally filtered to one of the four styles. Returns ids, page URLs, SVG + PNG URLs, tags. |
| Full SVG markup for an icon id — ready to embed in HTML/JSX/design tools. |
| Direct transparent-PNG URLs (16, 24, 32, 64, 128, 256, 512 px) for an icon id. |
| Most popular icon categories with counts and category-page URLs. |
| Look up CSS classes in the Infyicon UI webfont (61,000+ glyphs, |
Related MCP server: brain-mcp-icon-visual
Quick start — hosted endpoint
Claude Code
claude mcp add --transport http infyicon https://infyicon.com/mcpClaude Desktop / claude.ai — Settings → Connectors → Add custom connector → URL https://infyicon.com/mcp
Cursor / VS Code / Windsurf (mcp.json)
{
"mcpServers": {
"infyicon": { "url": "https://infyicon.com/mcp" }
}
}Codex CLI (~/.codex/config.toml)
[mcp_servers.infyicon]
url = "https://infyicon.com/mcp"Gemini CLI (~/.gemini/settings.json)
{
"mcpServers": {
"infyicon": { "httpUrl": "https://infyicon.com/mcp" }
}
}Full, always-current instructions for all clients: https://infyicon.com/developers
Run locally (stdio)
standalone.js is a zero-dependency Node 18+ entry point. It answers initialize / tools/list locally and relays tools/call to the hosted endpoint (where the search index and 161k SVG assets live).
git clone https://github.com/krupalghori44-dev/infyicon-mcp.git
node infyicon-mcp/standalone.js # MCP over stdio
node infyicon-mcp/standalone.js --http 3000 # or streamable HTTP at :3000Client config for the stdio version:
{
"mcpServers": {
"infyicon": { "command": "node", "args": ["/path/to/infyicon-mcp/standalone.js"] }
}
}Docker
docker build -t infyicon-mcp .
docker run -i infyicon-mcpRepo layout
standalone.js— zero-dependency stdio/HTTP server (local bridge; what the Dockerfile runs)mcp.js— the production Express module that serveshttps://infyicon.com/mcp(reference; depends on server-side assets)Dockerfile— builds the standalone bridge
Example
"Find me a shopping cart icon in outline style and give me the SVG."
The client calls search_icons {"query":"shopping cart","style":"outline"}, picks an id like shopping-cart-12_10432, then get_icon_svg returns the full markup to paste straight into your project.
License
Code in this repository: MIT. Icons served by the API remain free for personal and commercial use with attribution to infyicon.com — details at https://infyicon.com/license.
Available Tools
5 toolsget_icon_pngAInspect
Get direct PNG download URLs (16-512px, transparent background) for an Infyicon icon id.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Icon id like hammer-16_66091 | |
| size | No | Optional single size; omit for all sizes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the return format (PNG download URLs), pixel range, and transparent background, which adds value beyond the schema. However, it does not mention whether the operation is read-only, what happens on invalid IDs, or whether the URLs are direct or API-mediated, leaving some behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, information-dense sentence that front-loads the action and key attributes. No filler, no redundant restatement of the tool name, and every word contributes to the meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with no output schema, the description covers the key facts: target resource, format, size range, and background transparency. It does not explain that omitting 'size' returns all sizes, but that is already stated in the schema, so the textual description is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents the id and size parameters. The description adds only the transparent background detail and the size range, which is already captured by the enum. The description does not need to compensate for undocumented parameters, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get direct PNG download URLs') and names the resource ('Infyicon icon id'). The 'PNG' designation also clearly distinguishes it from its sibling tool get_icon_svg without requiring the agent to open either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used when the agent needs PNG download URLs for an icon, but it does not explicitly state when to prefer this over sibling tools such as get_icon_svg or search_icons. There is no alternative guidance or exclusions, making usage largely implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_icon_svgAInspect
Get the full SVG markup of an Infyicon icon by id (format: slug_number, e.g. hammer-16_66091 — get ids from search_icons). Returns ready-to-embed SVG code.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Icon id like hammer-16_66091 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it clearly states what the tool returns: 'full SVG markup' and 'ready-to-embed SVG code.' This is appropriate transparency for a simple read-like retrieval tool, covering the output without requiring more detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two compact sentences: it leads with the action and resource, provides the id format and example, and appends the return value. Every sentence adds necessary context, and there is no irrelevant detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with no output schema or annotations, the description covers the essential operational aspects: what it does, how to identify the parameter, where to find valid ids, and what the response is. It omits error behavior, but that is not a significant gap for such a straightforward getter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the id parameter with a relevant example, and the description echoes the format and adds the useful note about obtaining ids from search_icons. That is slight reinforcement but not substantial new meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource: full SVG markup of an Infyicon icon by id. It also provides the id format and contrasts with sibling tools by specifying SVG rather than PNG or category listing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context by explaining the id format and directing users to get ids from search_icons. It does not explicitly list when to prefer this tool over get_icon_png, but the guidance about id acquisition supports correct usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_categoriesAInspect
List the most popular Infyicon icon categories with icon counts. Category pages live at https://infyicon.com/free-icons/.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max categories (default 30) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden. It does disclose that the output is sorted by popularity and includes icon counts, and it provides the URL slug pattern. Yet it does not specify the exact response shape, any auth requirements, or whether the limit parameter affects pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler. The core behavior is front-loaded, and the second sentence adds a directly useful URL format for the resulting category slugs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should reveal more about the response structure, such as the fields returned in each category object. The slug pattern and icon counts are hinted at, but the return shape is not clearly stated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, 'limit', is already fully documented in the schema with min/max and default values. The description adds no additional semantic nuance, so with 100% schema coverage the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'List the most popular Infyicon icon categories with icon counts.' It clearly distinguishes this from the sibling icon lookup/search tools, making the tool's role immediately identifiable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: when a list of popular categories is needed. However, it does not explicitly place it relative to siblings like search_icons or get_icon_svg, nor does it state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_iconsAInspect
Search 161,000+ free Infyicon vector icons. Returns matches with icon id, style, page URL, SVG and PNG URLs. Styles: outline (black line), fill (black solid), color-outline, color-fill. Free to use with attribution to infyicon.com.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default 10) | |
| query | Yes | What to search for, e.g. "shopping cart", "doctor", "hammer" | |
| style | No | Optional: restrict to one style |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must carry behavioral context. It adds that the icons are free to use with attribution, explains the available styles, and specifies the return fields (id, style, URLs). This goes beyond a generic statement and helps the agent predict outcomes, though it does not discuss ordering, pagination, or error cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is composed of concise, front-loaded sentences, and each sentence contributes functional information: action, returned properties, style definitions, and licensing. It is efficient and informative, though the style enum listing unnecessarily repeats the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description provides a reasonable level of completeness: you know what the tool searches, what the response shape-ish, and what options exist. It does not describe when to use this tool vs. siblings, or any rate/return-limits beyond what's in schema, but for a search tool these are minor gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with useful parameter documentation (query examples, style enums, limit defaults). The description does include style names, but these duplicates schema enum and doesn't add meaning beyond it. Since the schema already carries the semantics, a baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies a specific verb and resource: 'Search 161,000+ free Infyicon vector icons.' It also enumerates what is returned (icon id, style, URLs), making the purpose unambiguous. While it does not explicitly differentiate from sibling tools like uicons_lookup, the search focus is clear enough to stand apart from get_icon_svg/get_icon_png.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what the tool does but offers no guidance on when to choose it over alternatives. It does not mention, for instance, that if an agent already knows an icon's ID it should use get_icon_svg, or that list_categories should be used for category listing. Usage context is only implied, not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uicons_lookupAInspect
Look up CSS class names in the Infyicon UI webfont (61,000+ glyphs). Use the returned class like with stylesheet https://infyicon.com/uicons/uicons.css
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Glyph name to search, e.g. "home", "arrow" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of disclosing the operation. It correctly implies a read-only lookup and explains the output format and associated stylesheet. However, it does not mention error behavior, multiple-match semantics, or response shape beyond the single example.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loaded with the core purpose, and lamppost compares efficiently. The second half supplies a concrete usage snippet and the stylesheet URL, all in two sentences with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite lacking an output schema, the description explains what is returned (a CSS class) and how to use it, which strongly supports correct invocation. It does not go as far as describing failure or multiple-result behavior, but for a simple one-param lookup this is largely sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% description coverage for the only parameter, `name`, which is described as a 'Glyph name to search'. The tool description adds no extra parameter semantics, only illustrating a search result. Baseline 3 applies because the schema already provides sufficient meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Look up CSS class names'), the resource ('Infyicon UI webfont'), and the scale ('61,000+ glyphs'). The example output `<i class="ii-r-home"></i>` makes the purpose concrete and helps distinguish this from sibling tools that return SVG/PNG icons or list categories.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains how to use the returned class, but does not explicitly tell an agent when to choose this tool over `search_icons` or the icon exporters. The intended use case is implied by 'CSS class names' rather than stated as a clear rule or comparison with 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. Dates show when Glama detected each change.
5 tool updates
v1.0.0- First observed
get_icon_png - First observed
get_icon_svg - First observed
list_categories - First observed
search_icons - First observed
uicons_lookup
TDQS
The core search, category, and webfont lookup tools are clearly distinct, and get_icon_svg vs get_icon_png are easily told apart by format. Mild overlap exists because search_icons already returns SVG and PNG URLs, but the dedicated getter tools target specific icon IDs and formats.
Most tools follow a consistent verb_noun snake_case pattern: search_icons, get_icon_svg, get_icon_png, list_categories. uicons_lookup breaks the pattern slightly by leading with the object instead of a verb.
Five tools is a well-scoped count for an icon service covering discovery, asset retrieval, category browsing, and webfont lookup. Each tool has a clear purpose and none feel redundant or bloated.
The toolset covers the main icon workflows: searching icons, fetching SVG/PNG assets, browsing categories, and looking up webfont classes. Minor gaps remain, such as listing icons within a category or keyword-searching the uicons webfont, but the core surface is solid.
Maintenance
Related MCP Connectors
Icons for agentic development: search & fetch 366,000+ open-source icons as SVG/PNG. No API key.
Search and download icons, illustrations, elements and emojis in PNG or SVG formats.
Multilingual semantic SVG icon search with previews for AI coding agents. 20,000+ icons.
320K+ open-source SVG icons: 12 tools, anonymous metadata search; SVG, exports, collections via Pro.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides 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.16915GPL 3.0
- FlicenseNot gradedqualityDmaintenanceVisual icon search, retrieval, and comparison for AI agents. Search 200k+ icons semantically, render side-by-side comparison grids, and retrieve raw SVG markup — all tools return images so vision-capable LLMs can see the icons.1-
- AlicenseNot gradedqualityDmaintenanceProvides 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.25MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI-powered icon search, generation, and download from 275,000+ icons with web-based authentication and subscription plans.14MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/krupalghori44-dev/infyicon-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server