Icon MCP

io.github.pratham-jain33v0.1.0更新于 Oct 2, 2026

Lucide icon sets for AI: search 2000+ icons, style them, batch-export SVG. Offline, no key.

概览

AI 生成的概览

让助手搜索 2000 多个内置 Lucide 图标并生成带样式的 SVG 标记,离线运行且无需 API 密钥。

功能
提供两个工具:search_icons 按名称和标签的关键词查找图标,generate_icons 将一个图标或一整套匹配的图标渲染为带样式的 SVG 标记。描边宽度、颜色、尺寸等样式参数会应用到同一次调用中的所有图标,因此返回的整套图标在视觉上保持一致。SVG 以标记形式返回,助手可将其保存到项目中。全部操作在本地针对内置图标集运行。
适用场景
适合助手在构建界面时需要真实图标而非表情符号的场景,尤其是页面需要一套风格一致的图标时。也适合你大致知道想要什么但不确定确切图标名称,或希望图标生成在无网络环境下也能工作的情况。
运行要求
以本地进程通过 stdio 运行。可用 uvx icon-mcp 或 pip install icon-mcp 安装;需要 Python,不需要 Node.js 或 npx。无需 API 密钥、账号、环境变量或网络访问,因为图标集已内置在软件包中。
安装前请注意
该项目自称非官方社区项目,并非由 Lucide 制作或与其关联;内置的 Lucide 图标集采用 ISC 许可证。该服务器只读取内置图标并返回 SVG 标记,本身不会写入、发送或删除数据;保存返回的 SVG 由助手在你的项目中完成。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Icon MCP,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

icon-mcp

mcp-name: io.github.pratham-jain33/icon-mcp

[License: MIT] [Python 3.10+] [MCP Compatible] [Version] [PyPI]

Give any AI assistant a custom icon button. No emojis, no designer needed.

Unofficial community project. Not made by, endorsed by, or affiliated with Lucide. The Lucide icon set (ISC licensed) is bundled inside the package, so everything works offline.

Why

AI assistants reach for emojis when a UI needs an icon, because drawing a good icon is actual design work. This server plugs into any MCP-compatible assistant (Claude Desktop, Claude Code, Cursor, and more) and lets it search 2000+ Lucide icons by keyword, restyle them (stroke width, color, size), and generate a whole matching set in one call so every icon on the page looks like it belongs together. The SVGs come back as markup the assistant saves straight into the project. No API key, no account, no network.

Tools

ToolDescription
search_iconsFinds icons by keyword across names and tags. Use when you don't know the exact icon name.
generate_iconsRenders one icon or a whole matching set as styled SVG markup. Takes names or plain-words queries plus shared stroke_width, color, size.

Quickstart

Install

No cloning needed:

bash
uvx icon-mcp

or with pip:

bash
pip install icon-mcp

From source instead:

bash
git clone https://github.com/pratham-jain33/icon-mcpcd icon-mcppython -m venv .venv.venv/bin/pip install -e .

Connect your assistant

Claude Desktop config file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
json
{  "mcpServers": {    "icon-mcp": {      "command": "uvx",      "args": ["icon-mcp"]    }  }}

No environment variables, no keys. From source, point at your checkout instead:

json
{  "mcpServers": {    "icon-mcp": {      "command": "/absolute/path/to/icon-mcp/.venv/bin/python",      "args": ["-m", "icon_mcp.server"]    }  }}

Restart Claude Desktop, then try: "Find me a settings icon and a trash icon, both 1.5px stroke in #2f6bff at 32px, as SVGs."

Configuration

None. There is nothing to configure: no API keys, no accounts, no network access. The icon set ships inside the package.

How it works

  1. You ask the assistant for icons in plain words.
  2. The assistant calls search_icons to find the right names, or passes keywords straight to generate_icons.
  3. The server resolves each query to a bundled Lucide SVG and rewrites four attributes on it: width, height, stroke-width, stroke. Pure XML manipulation, no rendering, no native dependencies.
  4. Every icon in one call gets the identical style, so the set is visually consistent by construction.
  5. The server returns JSON with the SVG markup per icon; the assistant saves them as .svg files in your project.

Example session

You:    I need icons for my landing page nav: home, features, pricing,        contact. Make them all match: thin 1.5 stroke, blue #2f6bff.
Claude: [calls generate_icons with ["home", "features", "pricing",        "contact"], stroke_width=1.5, color="#2f6bff"]        Done. Four SVGs, all 1.5px stroke in #2f6bff, saved to icons/.        "features" resolved to the "sparkles" icon, "contact" to "mail".

Why icon-mcp instead of Unicon

Unicon is the closest existing tool: an MCP server over a hosted icon API with 19,000+ icons across 9 libraries. icon-mcp takes the opposite trade:

  • Fully offline. The whole set is bundled in the package. No hosted API, works on a plane.
  • No account, no tiers. Free forever, nothing to sign up for.
  • Python-native. Installs with uvx/pip; no Node or npx needed.
  • One-call consistent sets. Pass a list of icons plus one style; every SVG comes back matching. The style params (stroke width, color, size) are first-class, not an afterthought.
  • Smaller, calmer surface. Two tools, one library, zero config.

The trade: one library (Lucide) instead of nine, and keyword search instead of semantic search. For shipping a consistent icon set on a page, that's the whole job.

Parameters

generate_icons accepts:

ParameterDefaultRules
icons(required)1-50 names or keyword queries, e.g. ["home", "trash can"]
stroke_width2.00.5 to 4 (2 is Lucide's default)
color"currentColor"currentColor, hex (#2f6bff), or CSS name (red)
size241 to 1024 pixels

Queries that don't resolve are reported in the unresolved list instead of failing the whole call.

Roadmap

  • v0.1 — bundled Lucide set (v1.50.0), keyword search, parametric SVG styling, batch sets in one call
  • Website: paste a prompt, download a styled set
  • More libraries (Tabler, Heroicons) as opt-in bundles

Contributing

Issues and pull requests are welcome. If you add a tool, write its description the way you'd explain it to a smart friend who has never seen it — the assistant reads that text to decide when to use it. To refresh the icon bundle against a newer Lucide release, bump LUCIDE_VERSION in scripts/fetch_lucide.py and run it.

License

MIT © Pratham Jain. See LICENSE.

Acknowledgments

Built on Lucide's icon set (ISC licensed, see icon_mcp/LUCIDE_LICENSE) and the Model Context Protocol.

来源:README.md,提交 b4fc23b

工具

0
工具元数据尚未被收录。

版本历史

1
  1. v0.1.0最新Oct 2, 2026