Skip to main content
Glama

iconscout-mcp

MCP server for the Iconscout API: search and download icons, illustrations, 3D assets and Lottie animations directly from an AI agent.

Setup

Get API credentials at iconscout.com/api, then set environment variables:

ICONSCOUT_CLIENT_ID=your-client-id
ICONSCOUT_CLIENT_SECRET=your-client-secret
ICONSCOUT_DOWNLOAD_DIR=optional-default-save-dir

Build:

git clone https://github.com/ReverserID/iconscout-mcp.git
cd iconscout-mcp
npm install
npm run build   # esbuild main.ts -> main.js

Claude Code:

claude mcp add iconscout -e ICONSCOUT_CLIENT_ID=xxx -e ICONSCOUT_CLIENT_SECRET=yyy -- node /path/to/iconscout-mcp/main.js

Any MCP client (stdio):

{
  "mcpServers": {
    "iconscout": {
      "command": "node",
      "args": ["/path/to/iconscout-mcp/main.js"],
      "env": {
        "ICONSCOUT_CLIENT_ID": "xxx",
        "ICONSCOUT_CLIENT_SECRET": "yyy"
      }
    }
  }
}

Related MCP server: Freepik MCP

Tools

search_assets

Param

Default

Description

query

Search query

asset

icon

icon, illustration, 3d, lottie, all

price

all

all, free, premium

sort

relevant

relevant, latest, popular, color

page

1

Result page

limit

10

Results per page (1–50)

styles

Comma-separated style filter

Returns name, uuid, price and preview URL per result.

get_asset

Item details by uuid: type, price, preview, slug, web page.

preview_asset

Fetches the item's PNG thumbnail and returns it as MCP image content — the agent sees the icon before spending a download credit. Lottie items return the video thumb URL instead.

download_asset

Param

Default

Description

uuid

Item uuid

format

svg

svg, png, pdf, eps, ai (icons/illustrations); json, gif, mp4 (lottie); fbx, glb, obj (3d)

saveDir

./iconscout-downloads

Save directory

fileName

item name

File name override

Downloads via the signed CDN URL and saves to disk; returns the file path. Premium items consume API credits.

API notes

  • Search and item details need only Client-ID; downloads also send Client-Secret.

  • Endpoints: GET /v3/search, GET /v3/items/{uuid}, POST /v3/items/{uuid}/api-download.

Development

npm install
npm run build   # esbuild main.ts -> main.js
npm start

License

MIT

Available Tools

4 tools
download_assetA

Download an Iconscout item in the given format and save it to disk. Returns the saved file path and the signed CDN URL. Premium items consume API credits.

ParametersJSON Schema
NameRequiredDescriptionDefault
uuidYesItem uuid from search_assets
formatNoFile format: svg, png, pdf, eps, ai (icons/illustrations); json, gif, mp4 (lottie); fbx, glb, obj (3d)svg
saveDirNoDirectory to save into (default: /app/iconscout-downloads)
fileNameNoFile name override (extension added automatically)

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations provided, the description carries the burden of behavioral disclosure. It reveals the side effect (saving to disk), the return output (path and signed CDN URL), and the cost implication (premium items consume credits). It does not cover auth, overwrite behavior, or error cases, but the key behaviors are transparent.

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?

The description is concise and front-loaded, with three sentences that each add value: the action, the return values, and the credit consumption. There is no redundancy or filler.

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 tool with no output schema and no annotations, the description adequately covers the essential context: what it does, what it returns, and a notable cost caveat. It does not mention edge cases or explicit usage guidance, but the tool is simple and the schema covers parameter details well.

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?

The input schema already provides 100% coverage with descriptions for all four parameters, so the description adds little semantic value beyond the schema. The baseline of 3 is appropriate because the schema does the heavy lifting.

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 clearly states a specific action—downloading an Iconscout item in a given format and saving it to disk—which distinguishes it from sibling tools like search_assets, get_asset, and preview_asset. It also specifies the return values (file path and signed CDN URL).

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?

The description gives no guidance on when to use this tool versus the sibling tools, nor does it mention prerequisites or alternatives. The intended usage is only implied by the verb 'download'.

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

get_assetB

Get details of a single Iconscout item by uuid.

ParametersJSON Schema
NameRequiredDescriptionDefault
uuidYesItem uuid from search_assets

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations provided, the description carries full responsibility for behavioral disclosure. It only states that the tool fetches details, which is an implicit read operation, but does not mention return format, permissions, side effects, or any constraints beyond the uuid. For a simple getter this is minimal but not fully transparent.

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?

The description is a single, front-loaded sentence that is clear and economical. It earns its place with no wasted words or repetition.

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?

The tool is simple with one parameter and no output schema, so the description is mostly adequate. However, it omits any information about the return structure or how this differs from preview_asset/download_asset. Given its simplicity, this is acceptable but not thorough.

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 uuid parameter is described as 'Item uuid from search_assets', which is helpful context. The description adds little beyond the schema ('by uuid' is redundant), but it does reinforce the required identifier. No additional semantics are provided, so the baseline of 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 clearly states the action ('Get details') and the resource ('a single Iconscout item') with an explicit identifier ('by uuid'). This distinguishes it from sibling tools like search_assets, preview_asset, and download_asset, which serve different purposes.

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?

No guidance is given on when to use this tool versus alternatives. The schema mentions 'Item uuid from search_assets', but the description itself does not state a workflow or prerequisites. Users must infer that it follows a search, and the differences from preview/download are not explained.

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

preview_assetA

Fetch the PNG preview of an Iconscout item and return it as an image the agent can see.

ParametersJSON Schema
NameRequiredDescriptionDefault
uuidYesItem uuid from search_assets

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the burden of transparency. It discloses that the output is a PNG image presented as a visual for the agent, which is useful. However, it omits error handling, whether the operation is read-only, and interactions with invalid UUIDs, so it only partially covers behavior.

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?

One concise sentence that front-loads the purpose and output. No redundant wording, making it easy to scan and understand.

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?

Given the tool's simple one-parameter interface and lack of output schema, the description covers the core action and return type. However, it doesn't explain failure modes or how this relates to sibling tools, which could matter in a larger workflow.

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?

The input schema already gives the single parameter 'uuid' a descriptive definition ('Item uuid from search_assets'), covering 100% of the parameter's purpose. The description adds no extra parameter semantics, so the schema effectively carries that weight.

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?

The description clearly states the tool fetches a PNG preview of an Iconscout item, specifying the action (Fetch) and resource (PNG preview). It defines the output as an image the agent can see, making the purpose unambiguous. While it doesn't explicitly contrast with sibling tools, the specificity of 'PNG preview' differentiates it from search/get/download tools.

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?

The description implies usage when a visual preview is needed but provides no explicit guidance on when to use this over get_asset or download_asset, nor any exclusions or prerequisites. This leaves the agent to infer based on the tool name alone.

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

search_assetsA

Search Iconscout for icons, illustrations, 3D assets or Lottie animations. Returns name, uuid (needed for download/preview), price and a preview URL per result.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoResult page
sortNoSort orderrelevant
assetNoAsset type to searchicon
limitNoResults per page
priceNoFilter by priceall
queryYesSearch query, e.g. "shopping cart"
stylesNoComma-separated style filter, e.g. "line,flat"

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the burden of behavioral disclosure. It does disclose the return fields (name, uuid, price, preview URL) and highlights that uuid is needed for download/preview, which is useful. However, it does not mention pagination, default values, or the read-only nature of the operation beyond the implication of a search. Some behavioral context is added, but not exhaustive.

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?

The description is two sentences long, front-loaded with the primary action ('Search Iconscout') and asset types, followed by the key return value information. There is no redundant or filler content; every word 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?

Given the tool has 7 parameters and no output schema, the description provides essential return field information but omits pagination behavior and the default asset type (icon). However, the schema documents defaults and pagination parameters, so the description is mostly complete as an overview. The mention of 'per result' implies a list, and the uuid note gives necessary usage context. A small gap exists around default scope and pagination, but it is adequately covered by 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?

The schema provides 100% coverage with descriptive text for all 7 parameters, including defaults, enums, and examples. The description does not add parameter-level detail beyond what the schema already contains. Since the schema handles parameter semantics, the baseline of 3 is appropriate; the description's mention of return fields does not significantly enhance parameter understanding.

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 clearly states the tool searches Iconscout for specific asset types (icons, illustrations, 3D assets, Lottie animations). The verb 'Search' is specific, the resource is named, and the asset types are enumerated. This distinguishes it from sibling tools that get, preview, or download a single asset.

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?

The description implies the tool is the starting point for finding assets before using get/preview/download, but it does not explicitly state when to use it versus alternatives. No exclusions or alternative tool names are mentioned. The usage context is inferred from the sibling tool names rather than directly 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. 4 tool updatesv1.0.0
    • First observeddownload_asset
    • First observedget_asset
    • First observedpreview_asset
    • First observedsearch_assets

TDQS

A4/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: search finds assets, get retrieves metadata, preview fetches an image, and download saves the file. There is no overlap in functionality, making it easy for an agent to select the right tool.

Naming Consistency5/5

All tool names follow the verb_noun pattern (search_assets, get_asset, preview_asset, download_asset). The only variation is pluralization for search, which is semantically natural, and the pattern is fully consistent.

Tool Count5/5

Four tools is a well-scoped count for an asset search and download server. Each tool is essential and none are redundant, making the set feel neither sparse nor bloated.

Completeness5/5

The server covers the full end-to-end workflow: search for assets, inspect details, preview, and download. This is a complete lifecycle for consuming Iconscout assets, with no obvious missing operations for the stated domain.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers