Skip to main content
Glama

freeicon-mcp — 多源图标/素材聚合服务器

npm version License: MIT

简体中文 | English

中文

freeicon-mcp 让 AI 助手(Claude / Cursor / Codex / ChatGPT / Windsurf / Qoder / Kimi Code / MiniMax / ZCode / WorkBuddy / opencode 等主流客户端)通过 MCP 从 19 个免费素材源搜索下载图标、插画、照片与艺术品——百万级图标 + 1 亿+ CC 图片,还能按规范生成自定义 SVG 图标与品牌 Logo(多个创意方向 + 品牌级校验)、提取任意网站的图标(favicon / apple-touch-icon / SVG logo)。

我要找…

做法

UI 图标

i_search_all(keyword) → i_download(source, id, color?, size?)

品牌 logo

i_download(source="simple-icons", id="github")

多色插画

i_search(keyword, type="illustration") → i_download_svg(id)

照片 / 艺术品

i_download(source="openverse" / "artic" / "cma", id)

网站 favicon / logo

i_site_icon(url="apple.com")(自动解析 + 三级兜底)

场景插画配图

ia_generate(scene="...", style="flat") → AI 按专业规范画 480×360 场景卡(14 种风格)

位图转矢量

i_bitmap_to_svg(path="icon.png")(PNG/JPEG → 分层 SVG,照片类自动拒绝)

项目 logo / 品牌标识

lg_generate(project="freeicon", style="tech") → N 个创意方向,AI 逐个绘制并校验

搜不到 → 生成

g_generate(description) → AI 画 → g_validate(svg)

Related MCP server: Freepik MCP

功能特性

  • 🔍 跨源融合搜索:一次关键词命中全部免费源,id 格式统一标注

  • 🎨 矢量优先:SVG 图标任意改色 / 任意尺寸,结果直接写入项目

  • 🖼 多色插画:iconfont 插画库原始多色 SVG、博物馆 CC0 高清艺术品

  • 🌐 网站图标提取:给一个 URL,抓取 favicon / apple-touch-icon / SVG logo(三级兜底,SVG/位图智能交付)

  • 🪄 AI 图标生成:Lucide 官方设计规范 + 安全校验(拒绝脚本注入等恶意内容)

  • 🖌 场景插画:14 种专业扁平插画风格(人物/道具/构图/失败模式全规范,源自 mengto/skills MIT)

  • 🔄 位图转矢量:PNG/JPEG 一键转分层 SVG(照片类自动识别拒绝)

  • 🏷 品牌 Logo 设计:2-6 个截然不同的创意方向 + 品牌级校验(自包含/文字回退/小尺寸可辨识)

  • 📦 双渠道发布:npm + GitHub Packages 镜像(Release 触发自动发布)

  • 🔓 零门槛:全源免 API key,仅 iconfont.cn 需登录

数据来源(19 源 + iconfont)

仅 iconfont.cn 需要登录(🔐),其余全部免登录免 key。

数据源

数量

协议

登录

Iconify(聚合 150+ 图标集)

200,000+

各集开源

—

Lucide / Tabler / MDI / Heroicons / Bootstrap / Ionicons / Octicons / Remix / Iconoir / css.gg / Boxicons

704–7,447

MIT 等

—

Simple Icons(品牌 logo)

3,247

CC0

—

Font Awesome Free

2,883

CC BY 4.0

—

Icons8(免费档,仅 PNG)

100,000+

需署名

—

Wikimedia Commons

海量 SVG

逐图标注

—

Openverse(CC 图片聚合)

1 亿+

逐图标注

—

Art Institute of Chicago

62,000+

CC0

—

Cleveland Museum of Art

30,000+

CC0

—

iconfont.cn(图标 + 插画)

海量

—

🔐 需登录

完整信息(id 格式、交付格式、署名要求、各源说明)→ docs/sources.md

快速开始

npm install -g freeicon-mcp

接入 MCP 客户端(主流客户端配置入口见 docs/guide.md):

{ "mcpServers": { "freeicon": { "command": "npx", "args": ["-y", "freeicon-mcp"], "type": "stdio" } } }
i_guide                                   # AI 先调这个,返回完整使用指南
i_search_all(keyword="home")              # 跨源搜索
i_download(source="tabler", id="home", color="#3B82F6", size=32)

opencode 等其它客户端配置 → docs/guide.md

使用须知

  1. 🔐 iconfont.cn 需要登录:调 i_login 弹浏览器登录(cookie 自动保存,约 30 天);其余 19 源无需任何登录

  2. iconfont 先搜后下:i_download_svg / i_detail 必须先用 i_search 搜到该 ID

  3. 署名义务:Font Awesome Free 与 Icons8 免费档需署名;Openverse / Commons 逐图协议见搜索结果的 extra

  4. 光栅源(Icons8 / Openverse / AIC / CMA)交付 base64 图片(data URI),改色不适用;Openverse 匿名限额 20 次/分,ov_register(email) 一键注册后 100 次/分 + 10,000 次/天

  5. 插画(iconfont 插画库)为多色原稿 SVG,下载时不应用改色,可设尺寸

更多细节 → docs/guide.md

文档

文档

内容

docs/sources.md

数据源完整列表:协议、登录、署名、id 格式、交付格式

docs/tools.md

33 个工具完整参考与 id 格式速查

docs/guide.md

安装配置、iconfont 登录、工作流、使用须知、故障排查

English

freeicon-mcp is a Model Context Protocol server that puts 19 free icon & asset sources in front of your AI assistant — over a million icons, 100M+ Creative Commons images, and public-domain museum art. Search, recolor, resize, download — extract any website’s favicon or logo from its URL — and when nothing fits, generate a custom SVG icon to spec.

Works out of the box with Claude, Cursor, Codex, ChatGPT, Windsurf, Qoder, Kimi, MiniMax, ZCode, opencode, and any other MCP-compatible client.

What you can do

You want…

Call

UI icons

i_search_all(keyword="home") → i_download(source, id, color?, size?)

Brand logos

i_download(source="simple-icons", id="github")

Full-color illustrations

i_search(keyword, type="illustration") → i_download_svg(id)

Photos & artwork

i_download(source="openverse" / "artic" / "cma", id)

A website’s favicon / logo

i_site_icon(url="apple.com") — page parsing with 3-tier fallback

Nothing fits → draw one

g_generate(description) → AI sketches it → g_validate(svg)

Sources

Every source is free and keyless — only iconfont.cn requires a login 🔐.

Source

Assets

License

Login

Iconify (aggregates 150+ sets)

200,000+

per-set OSS

—

Lucide, Tabler, MDI, Heroicons, Bootstrap, Ionicons, Octicons, Remix, Iconoir, css.gg, Boxicons

704–7,447 each

MIT & friends

—

Simple Icons (brand logos)

3,247

CC0

—

Font Awesome Free

2,883

CC BY 4.0

—

Icons8 (free tier, PNG only)

100,000+

attribution

—

Wikimedia Commons

millions of SVGs

per-file

—

Openverse (CC image aggregator)

100M+

per-image

—

Art Institute of Chicago · Cleveland Museum of Art

92,000+

CC0

—

iconfont.cn (icons + illustrations)

massive

—

🔐 login

Full details: docs/sources.md

Quick start

npm install -g freeicon-mcp

Drop it into your MCP config (see docs/guide.md for per-client paths):

{ "mcpServers": { "freeicon": { "command": "npx", "args": ["-y", "freeicon-mcp"], "type": "stdio" } } }

Then from your AI assistant:

i_search_all(keyword="home")      # search every source at once
i_download(source="tabler", id="home", color="#3B82F6", size=32)

Good to know

  • Only iconfont.cn needs a login (i_login opens a browser; cookies last ~30 days). Everything else works instantly.

  • Search before you download — iconfont downloads are served straight from search results.

  • Attribution: Font Awesome Free and Icons8's free tier require credit; Openverse and Commons carry per-image licenses in every result.

  • Raster sources (Icons8, Openverse, AIC, CMA) return base64 data URIs — color overrides don't apply.

  • Openverse's anonymous limit is 20 req/min; ov_register(email) raises it to 100 req/min in one command.

Docs

Full documentation lives in docs/ (Chinese): sources · tools · guide. AI clients can also call i_guide for the built-in guide.


License

MIT

Available Tools

33 tools
g_generateA

Get a precise spec for generating a custom SVG icon, then the AI (you) draws the SVG following it. Use when i_search_all finds nothing suitable. After drawing, ALWAYS pass the SVG through g_validate to sanitize and normalize it (color/size injection, XML check, security filter).

Inputs: description (required), size, style.

g_validateA

Validate, sanitize and normalize an AI-generated (or any hand-written) SVG icon: XML well-formedness, security filter (rejects /event handlers//javascript:), adds missing xmlns/viewBox, injects color/size. Returns the cleaned SVG ready for use, plus warnings.

Inputs: svg (required), size, color.

ia_generateA

Get a complete drawing spec for a flat-illustration scene card (480x360 SVG) in one of 14 professional styles (flat cut-paper, bold pop, halftone, ink sketch, isometric, one-line, vintage emblem, ...). The spec carries exact palettes, character proportions, composition rules and failure modes from the original methodology. The AI (you) draws the SVG per spec, validates with ia_validate, then delivers.

Inputs: scene (required), style (required), size.

ia_validateA

Validate an illustration scene-card SVG drawn per ia_generate: security filter, self-contained check (no /external refs — illustrations must be pure vector), canvas 4:3 check, composition density hints. Returns normalized SVG with warnings.

Inputs: svg (required), size.

i_bitmap_to_svgA

Vectorize a flat graphic image (icon / logo / flat illustration / screenshot of simple shapes) into a layered color SVG. Input object awareness: PHOTO-type images (high color entropy) are rejected — photo-to-SVG produces huge blurry files; keep photos as PNG/WebP. Only convert images you have rights to. Binary mode gives a clean 2-color result for icons/logos.

Inputs: path (required), color_mode, max_colors, allow_photo, +1 more.

i_check_authB

Check if you are currently logged in to iconfont.cn.

Inputs: no named parameters.

i_check_networkA

Check if iconfont.cn is reachable from this machine. Tests DNS resolution and TCP connectivity. If unreachable, provides troubleshooting steps (DNS change, hosts file, VPN).

Inputs: no named parameters.

i_detailA

Get detailed information about an icon on iconfont.cn. The icon MUST have been returned by a recent search call (iconfont no longer has a per-icon detail endpoint; data comes from the search cache).

Inputs: id (required).

i_downloadA

Unified download: download an icon as SVG text from ANY registered source. Pass the source id (e.g. "lucide", "tabler", "mdi") and the icon id (name from search results). Optional color overrides the stroke/fill color. Optional size overrides width/height. Use i_sources to see available sources, or i_search_all to find icons.

Inputs: id (required), source (required), size, color.

i_download_svgA

Download an icon as SVG text from iconfont.cn. The icon MUST have been returned by a recent search call (iconfont no longer has a per-icon detail endpoint, so the SVG is taken from the search cache). Pass an ID returned by search. Optional color overrides fills. Optional size overrides width/height.

Inputs: id (required), size, color.

i_guideA

Return the usage guide for this freeicon MCP (tool list, login flow, search→download workflow, key rules). Call this first if unsure how to use the tools. No login required.

Inputs: no named parameters.

i_list_collectionsC

Search icon collections on iconfont.cn.

Inputs: keyword (required).

i_list_project_iconsA

List all icons in an iconfont.cn project by its Symbol URL. No login required.

Inputs: symbolUrl (required).

i_loginA

Start a local reverse-proxy login server for iconfont.cn and return its URL. Open the URL in your normal browser and log in (any method: phone+password, WeChat scan, GitHub, Weibo, SMS, etc.). After success the page shows a "登录成功" notice and the user can close the tab (the proxy serves it for a few seconds, then shuts itself down; a later "connection refused" on that tab is normal). Cookies are captured automatically. Then call i_login_wait (or i_check_auth) to confirm. This is the recommended login method.

Inputs: port.

i_login_send_smsA

Step 1 of SMS login. Opens a browser, fills the phone number and requests a verification code. Then call i_login_with_sms with the received code within 3 minutes.

Inputs: phone (required).

i_login_waitA

Block until the login server (started by login) reports a successful login, then shut it down. Returns the captured login info.

Inputs: timeout.

i_login_with_passwordA

Log in to iconfont.cn with a phone number + password. Opens a visible browser and auto-fills the form. If a slider/captcha appears, solve it in the window — cookies are captured automatically once login completes.

Inputs: account (required), password (required).

i_login_with_smsA

Step 2 of SMS login. Submit the SMS verification code received after calling login_send_sms. Cookies are captured automatically once login completes.

Inputs: code (required).

i_search_allA

Search icons across ALL or specific data sources. Returns combined results with source labels. By default searches all sources. Use sources parameter to limit to specific sources (e.g. sources=["lucide","tabler"]) or use source keywords: "free" (all open sources), "all" (everything). Iconfont requires login.

Inputs: keyword (required), page, sources, pageSize.

i_site_iconA

Extract a website’s icon or logo from its URL. Three tiers: 1) declared icons ( / apple-touch-icon) — SVG returns as text, raster as data URI; 2) inline logos in the page markup — 1:1 vector restoration (style context carried); 3) Google favicon service fallback. Also lists every candidate found.

Inputs: url (required), size, source.

i_sourcesA

List all available icon data sources with details (icon count, license, auth requirement, status). Use this to discover which sources are available for search and download.

Inputs: no named parameters.

i_versionA

Return the current version of this freeicon MCP server and check if a newer version is available on GitHub.

Inputs: no named parameters.

l_download_svgA

[Lucide] Download a lucide icon as SVG text (open source, no login). For unified download from any source, use i_download instead.

Inputs: name (required), size, color.

l_get_tagsB

[Lucide] Get tags for a specific lucide icon (open source, no login).

Inputs: name (required).

lg_generateA

Create a complete logo design brief + SVG authoring spec for a project: design summary, N distinct creative directions (geometric letterform / abstract symbol / mascot / negative space / wordmark), and strict SVG rules (viewBox, self-contained, text fallback, small-size legibility). The AI (you) draws one SVG per direction following the spec, validates each with lg_validate, then presents the concepts. Distilled from the logo-designer skill methodology.

Inputs: project (required), style, colors, format, +2 more.

lg_validateA

Validate a logo SVG (brand-grade, stricter than g_validate): security filter, self-contained check (rejects /external refs — logos must work offline), text fallback-font check, stroke legibility for small sizes, semantic group suggestions, viewBox/aspect sanity. Returns the normalized SVG with warnings to iterate on.

Inputs: svg (required), format.

l_list_allA

[Lucide] List all available lucide icons (open source, no login). 2007+ icons total.

Inputs: page, pageSize.

ov_check_authA

Check whether Openverse API credentials are configured (higher rate limits) or the server is running anonymous (20/min + 200/day).

Inputs: no named parameters.

ov_loginA

Save Openverse API credentials (OAuth2 client_id/client_secret) to raise rate limits from 20/min + 200/day (anonymous) to 100/min + 10,000/day. Register an application at https://api.openverse.org/v1/ to get them. The exchange is verified immediately; anonymous access keeps working without this.

Inputs: clientId (required), clientSecret (required).

ov_registerA

One-click Openverse app registration: registers an application via the public API, receives client_id/client_secret, exchanges them for a token and saves credentials — rate limits go from 20/min + 200/day to 100/min + 10,000/day. A verification link is emailed to the address you provide (clicking it is recommended but credentials work immediately). If credentials already exist, use ov_login instead.

Inputs: email (required), name.

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    B3.3/5.0

    Scored across 33 tools

    Disambiguation3/5

    Core workflows overlap in ways that require careful reading: i_search vs i_search_all vs l_search, and i_download vs i_download_svg vs l_download_svg are three-way near-duplicates distinguished only by source scope. The four iconfont login variants (i_login, i_login_with_cookie, i_login_with_password, i_login_with_sms) and three validators (g_validate, lg_validate, ia_validate) are separable but only because descriptions explicitly cross-reference each other. Descriptions do help, so this is workable but not clean.

    Naming Consistency3/5

    The surface follows a consistent prefix_verb_noun shape (i_search, l_download_svg, ov_login, lg_validate), which is readable throughout. However the prefixes are semantically muddled: i_ means 'iconfont-only' for i_search/i_download_svg but 'general/icon' for i_search_all, i_sources, i_download, i_guide, and i_bitmap_to_svg, so the same prefix signals two different scopes. A few outliers (i_site_icon, i_bitmap_to_svg) are verbs-noun without a clear grouping.

    Tool Count2/5

    33 tools is heavy for what is fundamentally search-and-download plus SVG generation. The count is inflated by redundant layers: five login/auth tools for iconfont, three for Openverse auth, and two parallel download paths per source. Consolidating source-specific tools under the unified i_search_all/i_download would cut the surface substantially.

    Completeness3/5

    The iconfont and open-source icon lifecycle (search, detail, download, list collections, project icons, auth) is well covered, and SVG generation/validation has full generate→validate loops. But Openverse is a dangling feature: ov_register/ov_login/ov_check_auth exist with no corresponding ov_search or download tool, leaving that integration unusable. There is also no collection-detail or upload/favorite operation, though these are minor.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers