Web Icons Generator CLI MCP

Web Icons Generator CLI MCP

Generates all required web app icons and manifest files from a single source image with framework auto-detection. Supports Next.js App Router, traditional web apps, and PWA standards with zero configuration.

Category
访问服务器

README

@entro314labs/web-icons-generator-cli-mcp 🎨

Generate all required web app icons and files from a single source image. Modern, fast, and framework-aware.

Available as CLI, MCP Server, and Claude Desktop Extension!

Features

Auto-detects app-icon.svg or app-icon.png in current directory ✅ Generates 8 essential files (2025 best practices) ✅ Framework auto-detection (Next.js, Astro, SvelteKit, Remix, Vite) ✅ Generates in current directory when run (respects process.cwd()) ✅ SVG and PNG support with automatic conversion ✅ Maskable icon with safe zone padding (Android 13+) ✅ Monochrome Safari pinned tab icon ✅ site.webmanifest generation ✅ HTML snippet ready to copy/paste ✅ MCP Server for Claude Desktop integration ✅ Claude Desktop Extension with quick actions ✅ Zero config – works out of the box

Installation

# Run directly with npx (no installation needed)
npx @entro314labs/web-icons-generator-cli-mcp source.svg

# Shorter aliases
npx @entro314labs/web-icons-generator-cli-mcp@latest
# After install: create-icons, webicons, or web-icons-generator-cli-mcp

# Or install globally
npm install -g @entro314labs/web-icons-generator-cli-mcp
create-icons  # shortest command!
webicons     # also works

Usage

Zero Config (Recommended)

# Place app-icon.svg or app-icon.png in your project root
cd my-project
npx @entro314labs/web-icons-generator-cli-mcp
# ✓ Found app-icon.svg in current directory
# ✓ Detected Next.js → using public/ directory
# ✨ Success! Generated 8 files

Basic Usage

# With source file as argument
npx @entro314labs/web-icons-generator-cli-mcp logo.svg

# Or if installed globally (use shorter commands)
create-icons logo.svg
webicons logo.svg

# Interactive mode (prompts for source if not found)
create-icons

Advanced Options

# Specify output directory
create-icons logo.svg --output ./public

# Custom Safari pinned tab color
create-icons logo.svg --color "#ff5733"

# Choose generation mode
create-icons logo.svg --mode nextjs    # Next.js App Router (app/)
create-icons logo.svg --mode traditional  # Traditional web app (public/)
create-icons logo.svg --mode auto      # Auto-detect (default)

# Full example
create-icons logo.svg -o ./app -m nextjs -c "#1a1a1a"

Generation Modes

The tool supports two generation modes for maximum compatibility:

🚀 Next.js App Router Mode (--mode nextjs)

Perfect for Next.js 13+ with App Router

Generated files (in app/ directory):

  • favicon.ico (32×32)
  • icon.png (512×512) - auto-linked by Next.js
  • apple-icon.png (180×180) - auto-linked by Next.js
  • apple-touch-icon.png (180×180) - for compatibility
  • icon.svg (if source is SVG) - auto-linked by Next.js

Benefits:

  • ✅ Zero configuration - icons auto-linked by Next.js
  • ✅ No manual <head> tags needed
  • ✅ Automatic metadata generation
  • ✅ Cleaner project structure

Usage:

create-icons logo.svg --mode nextjs
# or let it auto-detect
create-icons logo.svg  # detects Next.js App Router automatically

📁 Traditional Mode (--mode traditional)

Perfect for all other frameworks and traditional web apps

Generated files (in public/ directory):

  • favicon.ico (32×32)
  • icon.svg (scalable)
  • icon-192.png (192×192) - for PWA
  • icon-512.png (512×512) - for PWA
  • apple-touch-icon.png (180×180)
  • icon-maskable.png (512×512, with padding) - for Android
  • safari-pinned-tab.svg (monochrome) - for Safari
  • site.webmanifest (PWA manifest)

Requires: Manual HTML integration (copy from html-snippet.txt)

Usage:

create-icons logo.svg --mode traditional

Generated Files

Generated Files

Traditional Mode generates these files in your output directory:

/public/
  ├── favicon.ico              (32×32)
  ├── icon.svg                 (scalable)
  ├── icon-192.png             (192×192)
  ├── icon-512.png             (512×512)
  ├── apple-touch-icon.png     (180×180)
  ├── icon-maskable.png        (512×512, with padding)
  ├── safari-pinned-tab.svg    (monochrome)
  └── site.webmanifest         (PWA manifest)

/  (project root)
  └── icon-integration-guide.txt  (HTML snippet to copy)

Next.js App Router Mode generates these files in your app directory:

/app/  (or /src/app/)
  ├── favicon.ico              (32×32)
  ├── icon.png                 (512×512, auto-linked)
  ├── icon.svg                 (scalable, auto-linked)
  ├── apple-icon.png           (180×180, auto-linked)
  └── apple-touch-icon.png     (180×180, compatibility)

/  (project root)
  └── icon-integration-guide.txt  (integration instructions)

Framework Detection

The tool automatically detects your framework and uses the correct output directory and mode:

Framework Config File Default Mode Output Directory
Next.js (App Router) next.config.js + app/ nextjs app/
Next.js (Pages) next.config.js traditional public/
Astro astro.config.mjs traditional public/
SvelteKit svelte.config.js traditional static/
Remix remix.config.js traditional public/
Vite vite.config.js traditional public/
Default None detected traditional public/

HTML Integration

Next.js App Router (Auto-Linked)

No manual HTML needed! Next.js automatically generates these tags:

<link rel="icon" href="/favicon.ico" sizes="any" />
<link rel="icon" href="/icon.png" type="image/png" sizes="512x512" />
<link rel="apple-touch-icon" href="/apple-icon.png" />
<link rel="icon" href="/icon.svg" type="image/svg+xml" />

Traditional Mode (Manual Integration)

After generation, copy the contents of icon-integration-guide.txt to your HTML <head>:

<!-- Favicon (modern + fallback) -->
<link rel="icon" href="/icon.svg" type="image/svg+xml">
<link rel="icon" href="/favicon.ico" sizes="any">

<!-- Apple Touch Icon -->
<link rel="apple-touch-icon" href="/apple-touch-icon.png">

<!-- Web App Manifest (PWA) -->
<link rel="manifest" href="/site.webmanifest">

<!-- Safari Pinned Tab -->
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5">

AI Assistant Integration

After generation, the tool provides an AI-ready prompt you can use with Claude, ChatGPT, or other assistants to verify your setup:

I generated web app icons in the [directory] for this [framework] app.
Please read the integration guide at icon-integration-guide.txt and verify
that all icon files are correctly placed and properly integrated.

Requirements

  • Node.js 18 or higher
  • Source image in SVG, PNG, or JPG format
  • For best results, use square SVG with transparent background

Supported Input Formats

  • .svg – Recommended (scalable, generates all files)
  • .png – Good (generates raster icons, SVG files need manual creation)
  • .jpg/.jpeg – Acceptable (generates raster icons, SVG files need manual creation)

How It Works

  1. Looks for app-icon.svg or app-icon.png in current directory (or uses provided path)
  2. Detects your framework (Next.js, Astro, etc.) and determines the best generation mode
  3. Auto-selects mode: Next.js App Router → nextjs mode, others → traditional mode
  4. Converts & resizes your source image to all required sizes for the selected mode
  5. Generates maskable icon with proper 20% safe zone padding (traditional mode)
  6. Creates monochrome SVG for Safari pinned tabs (SVG sources only, traditional mode)
  7. Generates manifest with correct icon references (traditional mode)
  8. Outputs integration guide in html-snippet.txt

Why This Tool?

Most icon generators are:

  • ❌ Outdated (generate 30+ unnecessary files)
  • ❌ Online-only (require uploading your logo)
  • ❌ Not framework-aware (manual directory setup)
  • ❌ Missing modern features (maskable icons, SVG favicons)
  • ❌ Don't support Next.js App Router conventions

This tool:

  • ✅ Generates only what you need (2025 standards)
  • ✅ Works offline (CLI-based)
  • ✅ Auto-detects your framework
  • ✅ Includes modern PWA features
  • Supports Next.js App Router with zero-config auto-linking
  • Dual-mode support: traditional web apps + Next.js

Examples

Example 1: Zero Config (Recommended)

cd my-nextjs-app
# Create app-icon.svg in the project root
create-icons
# ✓ Found app-icon.svg in current directory
# ✓ Detected Next.js → using public/ directory
# ✨ Success! Generated 8 files

Example 2: Next.js Project with Custom Path

cd my-nextjs-app
create-icons assets/logo.svg
# ✓ Detected Next.js → using public/ directory
# ✨ Success! Generated 8 files

Example 3: Custom Output

create-icons assets/brand.svg --output static/icons
# Generated icons in static/icons/

Example 4: Brand Color

create-icons logo.svg --color "#ff6b35"
# Safari pinned tab will use #ff6b35

Browser Support

File Supported Browsers
favicon.ico All browsers (legacy fallback)
icon.svg Chrome 80+, Firefox 41+, Safari 9+
apple-touch-icon.png iOS Safari, macOS Safari
icon-192.png, icon-512.png Chrome/Edge (PWA), Android
icon-maskable.png Android 13+ (adaptive icons)
safari-pinned-tab.svg Safari 9+ (pinned tabs)

Troubleshooting

"Source file not found"

  • Ensure the path to your source image is correct
  • Use relative or absolute paths: ./logo.svg or /Users/you/project/logo.svg

"Invalid file format"

  • Only SVG, PNG, and JPG are supported
  • Convert other formats (WebP, GIF) to PNG first

Icons not displaying

  1. Ensure files are at domain root (https://yourdomain.com/favicon.ico)
  2. Check HTML <head> tags are present
  3. Clear browser cache (hard refresh: Cmd+Shift+R / Ctrl+Shift+R)

MCP Server & Claude Desktop

This package includes an MCP (Model Context Protocol) server for integration with Claude Desktop. 4 tools available for complete icon workflows.

Quick Setup

Add to your Claude Desktop config:

{
  "mcpServers": {
    "web-icons": {
      "command": "npx",
      "args": ["-y", "@entro314labs/web-icons-generator-cli-mcp", "--mcp"]
    }
  }
}

Available Tools

  1. generate_web_icons - Generate icons + manifest from any source image
  2. auto_generate_icons - Zero-config generation (finds app-icon.svg/png)
  3. check_icons_status - Audit which icons exist/missing
  4. integrate_icons_html - Automatically add icon tags to HTML files

Usage with Claude

Ask Claude to help with icons:

  • "Generate web icons for my Next.js project"
  • "Check if my project has all required icons"
  • "Create icons from logo.svg and add them to my HTML"
  • "Add icon tags to my index.html file"

See MCP-TOOLS.md for detailed tool reference.

See MCP.md for complete documentation.

Development

# Clone repository
git clone https://github.com/entro314-labs/web-icons-generator-cli-mcp.git
cd web-icons-generator-cli-mcp

# Install dependencies
npm install

# Build
npm run build

# Test CLI
npm link
web-icons-generator-cli-mcp test.svg

# Test MCP server
web-icons-generator-cli-mcp --mcp

## License

MIT

## Credits

Built with:
- [sharp](https://sharp.pixelplumbing.com/) – High-performance image processing
- [commander](https://github.com/tj/commander.js) – CLI framework
- [ora](https://github.com/sindresorhus/ora) – Elegant terminal spinners
- [chalk](https://github.com/chalk/chalk) – Terminal styling
- [prompts](https://github.com/terkelg/prompts) – Interactive prompts

---

Made with ❤️ for modern web developers who want simple, correct icon generation.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选