インストール
コンテンツ詳細
インストール
{
"mcpServers": {
"icon-composer": {
"command": "npx",
"args": ["-y", "icon-composer-mcp"]
}
}
}🎨 Icon Composer MCP
Liquid Glass エフェクト (iOS 26+) を使用して画像・アイコン・ロゴを作成するための CLI および MCP サーバー。Apple とは提携していません。
✨ 主な特徴
.iconバンドルをプログラムで作成 — PNG または SVG グリフから生成- 完全な Liquid Glass 対応 — スペキュラハイライト、ブラーマテリアル、シャドウ、半透明
- ダークモード + アピアランスバリアント — アピアランスごとの塗りつぶし特殊化に対応
- AI エージェント対応 — 12 個の MCP ツール + 3 個のワークフロープロンプト(組み込みインストラクション付き)
📦 インストール
Claude Code
claude mcp add icon-composer -- npx -y icon-composer-mcp
Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json に以下を追加:
{
"mcpServers": {
"icon-composer": {
"command": "npx",
"args": ["-y", "icon-composer-mcp"]
}
}
}
Cursor
プロジェクトルートの .cursor/mcp.json(グローバルの場合は ~/.cursor/mcp.json)に追加:
{
"mcpServers": {
"icon-composer": {
"command": "npx",
"args": ["-y", "icon-composer-mcp"]
}
}
}
サーバーは Cursor Settings > MCP Servers に表示されます。再起動は不要です。
VS Code
プロジェクトルートの .vscode/mcp.json(グローバルの場合は Command Palette > MCP: Open User Configuration を開く)に追加:
注意: VS Code では
"mcpServers"ではなく"servers"を使用し、"type"フィールドが必須です。
{
"servers": {
"icon-composer": {
"type": "stdio",
"command": "npx",
"args": ["-y", "icon-composer-mcp"]
}
}
}
エディタ内に Start/Stop/Restart ボタンがインライン表示されます。初回起動時には信頼確認が求められます。
Windsurf
まず Windsurf Settings > Cascade > Model Context Protocol (MCP) で MCP を有効にします。
次に ~/.codeium/windsurf/mcp_config.json に追加:
{
"mcpServers": {
"icon-composer": {
"command": "npx",
"args": ["-y", "icon-composer-mcp"]
}
}
}
Windsurf 設定の 更新ボタン を押してサーバーを読み込みます。
その他の MCP クライアント
このサーバーは stdio トランスポートを使用します。ほとんどの MCP クライアントは以下の設定形式を使用します:
{
"mcpServers": {
"icon-composer": {
"command": "npx",
"args": ["-y", "icon-composer-mcp"]
}
}
}
または、サーバーを直接実行:
npx -y icon-composer-mcp
CLI のみ (MCP なし)
npm install -g icon-composer-mcp
icon-composer --help
🔍 仕組み
- グリフを用意 — 任意の PNG または SVG ロゴ・画像
.iconバンドルを作成 — 背景の塗り、レイヤースケール、ガラスエフェクトを設定- Apple の ictool が Liquid Glass をレンダリング — スペキュラハイライト、シャドウ、奥行き、半透明
- エクスポート — プレビュー PNG、App Store マーケティングアイコン、または Xcode 用の
.iconバンドル
⚙️ 必要条件
- Node.js 18+
- macOS かつ Liquid Glass レンダリング用の Icon Composer がインストールされていること
brew install --cask icon-composer - フラットプレビュー、バンドルの作成・編集、マーケティングエクスポートは Icon Composer がなくても 任意のプラットフォーム で動作します
icon-composer doctor を実行してセットアップを確認できます。
⌨️ CLI コマンド
| コマンド | 説明 |
|---|---|
create |
前景画像から新しい .icon バンドルを作成 |
add-layer |
既存のバンドルにレイヤーを追加 |
remove |
レイヤーまたはグループを削除 |
inspect |
バンドルの内容を読み込んで表示 |
glass |
グループに Liquid Glass エフェクトを設定 |
appearance |
ダーク/ティントモードのオーバーライドを設定 |
fill |
背景の塗りを設定 (solid, gradient, automatic, none) |
position |
レイヤー/グループのスケールとオフセットを設定 |
fx |
すべてのガラスエフェクトをオン/オフ切り替え |
preview |
プレビュー PNG をエクスポート (Liquid Glass またはフラット) |
render |
ictool 経由でピクセルパーフェクトな Liquid Glass をレンダリング |
export-marketing |
App Store Connect 用のフラット 1024x1024 PNG をエクスポート (アルファなし) |
doctor |
システム設定と依存関係をチェック |
詳細
create — 新しい .icon バンドルを作成
icon-composer create <foreground_path> <output_dir> --bg-color <hex> [options]
| オプション | デフォルト | 説明 |
|---|---|---|
--bg-color <hex> |
必須 | 背景色 (例: "#0A66C2") |
--bundle-name <name> |
AppIcon |
バンドル名 (.icon 拡張子なし) |
--dark-bg-color <hex> |
— | ダークモードの背景色 |
--glyph-scale <n> |
1.0 |
グリフスケール (1.0 = 標準、アイコン領域の約 65%) |
--specular / --no-specular |
true |
スペキュラハイライト |
--shadow-kind <kind> |
layer-color |
シャドウタイプ: neutral、layer-color、none |
--shadow-opacity <n> |
0.5 |
シャドウの不透明度 (0–1) |
--blur-material <n> |
— | ブラーマテリアル値 (0–1) |
--translucency-enabled |
false |
半透明グラデーションを有効化 |
--translucency-value <n> |
0.4 |
半透明の量 (0–1) |
出力: <output_dir>/<bundle_name>.icon/ を作成し、icon.json マニフェストと Assets/ ディレクトリを含みます。
add-layer — 既存のバンドルにレイヤーを追加
icon-composer add-layer <bundle_path> <image_path> --name <name> [options]
| オプション | デフォルト | 説明 |
|---|---|---|
--name <name> |
必須 | レイヤー名 |
--group-index <n> |
0 |
対象グループのインデックス |
--create-group |
false |
このレイヤー用に新しいグループを作成 |
--opacity <n> |
1.0 |
レイヤーの不透明度 (0–1) |
--scale <n> |
1.0 |
レイヤースケール |
--offset-x <n> |
0 |
X オフセット (ポイント) |
--offset-y <n> |
0 |
Y オフセット (ポイント) |
--blend-mode <mode> |
normal |
ブレンドモード (例: multiply、screen、overlay) |
--glass / --no-glass |
true |
Liquid Glass エフェクトに参加 |
対応フォーマット: .png、.jpg、.jpeg、.svg、.webp、.heic、.heif
remove — レイヤーまたはグループを削除
icon-composer remove <bundle_path> --target <layer|group> --group-index <n> [--layer-index <n>]
inspect — バンドルの内容を読み込んで表示
icon-composer inspect <bundle_path>
出力: 完全なマニフェスト JSON を出力し、すべてのアセットをサイズとともに一覧表示します。
glass — Liquid Glass エフェクトを設定
icon-composer glass <bundle_path> [options]
| オプション | 説明 |
|---|---|
--group-index <n> |
対象グループ (デフォルト: 0) |
--specular / --no-specular |
スペキュラハイライト |
--blur-material <n> |
ブラーの量 (0–1) |
--shadow-kind <kind> |
neutral、layer-color、none |
--shadow-opacity <n> |
シャドウの不透明度 (0–1) |
--translucency-enabled / --no-translucency-enabled |
半透明の切り替え |
--translucency-value <n> |
半透明の量 (0–1) |
--opacity <n> |
グループの不透明度 (0–1) |
--blend-mode <mode> |
グループのブレンドモード |
--lighting <type> |
combined または individual |
appearance — ダーク/ティントモードのオーバーライドを設定
icon-composer appearance <bundle_path> --target <fill|group|layer> --appearance <dark|tinted> [options]
| オプション | 説明 |
|---|---|
--target <type> |
fill (背景色)、group (ガラスエフェクト)、または layer (個別レイヤー) |
--appearance <mode> |
dark または tinted |
--group-index <n> |
グループインデックス (target=group または target=layer 用) |
--layer-index <n> |
グループ内のレイヤーインデックス (target=layer で必須) |
--bg-color <hex> |
このアピアランスの背景色 |
--specular / --no-specular |
このアピアランスのスペキュラ |
--shadow-kind <kind> |
このアピアランスのシャドウタイプ |
--shadow-opacity <n> |
このアピアランスのシャドウの不透明度 |
--opacity <n> |
このアピアランスの不透明度 |
--blur-material <n> |
このアピアランスのブラーマテリアル値 (0–1) |
--translucency-enabled / --no-translucency-enabled |
このアピアランスの半透明切り替え |
--translucency-value <n> |
このアピアランスの半透明の量 (0–1) |
--hidden / --no-hidden |
このアピアランスの非表示状態 |
--blend-mode <mode> |
このアピアランスのブレンドモード (target=layer) |
--fill-color <hex> |
このアピアランスの塗り色 (target=layer) |
--position-scale <n> |
このアピアランスの位置スケール |
--position-offset-x <n> |
このアピアランスの位置 X オフセット |
--position-offset-y <n> |
このアピアランスの位置 Y オフセット |
fill — 背景の塗りを設定
icon-composer fill <bundle_path> --type <solid|gradient|automatic|none> [options]
| オプション | 説明 |
|---|---|
--type <type> |
solid、gradient、automatic、または none |
--color <hex> |
主要色 (solid またはグラデーション下部用) |
--color2 <hex> |
副次色 (グラデーション上部) |
--gradient-angle <n> |
グラデーション角度 (度) (デフォルト: 0) |
position — レイヤー/グループのスケールとオフセットを設定
icon-composer position <bundle_path> [options]
| オプション | デフォルト | 説明 |
|---|---|---|
--target <type> |
layer |
layer または group |
--group-index <n> |
0 |
グループインデックス |
--layer-index <n> |
— | レイヤーインデックス (--target layer で必須) |
--scale <n> |
— | スケール係数 (0.05–3.0) |
--offset-x <n> |
— | X オフセット (ポイント) |
--offset-y <n> |
— | Y オフセット (ポイント) |
fx — すべてのガラスエフェクトを切り替え
icon-composer fx <bundle_path> --enable|--disable
すべてのグループに対してスペキュラ、シャドウ、ブラー、半透明を一度に有効または無効にします。
preview — プレビュー PNG をエクスポート
icon-composer preview <bundle_path> <output_path> [options]
| オプション | デフォルト | 説明 |
|---|---|---|
--size <n> |
1024 |
出力サイズ (ピクセル) |
--appearance <mode> |
— | dark または tinted |
--flat |
false |
フラットレンダリングを強制 (Liquid Glass をスキップ) |
--canvas-bg <preset> |
— | light、dark、checkerboard、homescreen-light、homescreen-dark |
--apple-preset <name> |
— | Apple 壁紙: sine-purple-orange、sine-gasflame、sine-magenta、sine-green-yellow、sine-purple-orange-black、sine-gray |
--canvas-bg-color <hex> |
— | カスタム背景色 |
--canvas-bg-image <path> |
— | カスタム背景画像 |
--zoom <n> |
1.0 |
ズームレベル (キャンバスに対するアイコンのサイズ) |
出力: PNG ファイル。デフォルトでは Liquid Glass レンダリングを使用します (Icon Composer がインストールされていない場合はフラットにフォールバック)。
render — ictool 経由で Liquid Glass をレンダリング
icon-composer render <bundle_path> <output_path> [options]
| オプション | デフォルト | 説明 |
|---|---|---|
--platform <name> |
iOS |
iOS、macOS、または watchOS |
--rendition <name> |
Default |
Default、Dark、TintedLight、TintedDark、ClearLight、ClearDark |
--width <n> |
1024 |
出力幅 |
--height <n> |
1024 |
出力高さ |
--scale <n> |
1 |
スケール係数 (1x, 2x, 3x) |
--light-angle <n> |
— | 光の角度 (0–360) |
--tint-color <n> |
— | ティント色相 (0–1) |
--tint-strength <n> |
— | ティント強度 (0–1) |
| キャンバスオプション | — | preview と同じ |
必須: Icon Composer.app がインストールされていること。見つからない場合はインストール手順を含むエラーを返します。
export-marketing — App Store Connect 用にエクスポート
icon-composer export-marketing <bundle_path> <output_path> [--size <n>]
出力: アルファチャンネルのないフラット PNG (ITMS-90717 の却下を回避)。デフォルト 1024x1024。
doctor — システム設定をチェック
icon-composer doctor
出力: Node バージョン、プラットフォーム、ictool のパスとバージョンを報告します。Icon Composer が見つからない場合はインストール手順を出力します。
🔌 MCP ツール
| ツール | 説明 |
|---|---|
create_icon |
前景画像と背景色から .icon バンドルを作成 |
add_layer_to_icon |
既存のバンドルに新しいレイヤーを追加 |
remove_layer |
レイヤーまたはグループを削除、オプションでアセットをクリーンアップ |
read_icon |
バンドルのマニフェストとアセットを検査 |
set_glass_effects |
スペキュラ、ブラー、シャドウ、半透明を設定 |
set_appearances |
ダーク/ティントモードのオーバーライドを設定 |
set_fill |
背景の塗りを設定 |
set_layer_position |
レイヤーのスケールとオフセットを調整 |
toggle_fx |
すべてのガラスエフェクトを一度に有効/無効化 |
export_preview |
プレビュー PNG をレンダリング |
render_liquid_glass |
Apple の ictool 経由でレンダリング (Icon Composer が必要) |
export_marketing |
App Store Connect 用のフラット不透明 PNG をエクスポート |
すべてのツールは { content: [{ type: "text", text: "..." }], isError?: true } を返します。
詳細
create_icon
前景画像から .icon バンドルを作成します。
| パラメータ | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
foreground_path |
string | yes | — | PNG または SVG への絶対パス |
output_dir |
string | yes | — | 出力ディレクトリ |
bundle_name |
string | no | AppIcon |
バンドル名 |
bg_color |
string | yes | — | 背景の 16 進カラー |
dark_bg_color |
string | no | — | ダークモードの背景色 |
glyph_scale |
number | no | 1.0 |
グリフスケール (0.1–2.0) |
specular |
boolean | no | true |
スペキュラハイライト |
shadow_kind |
enum | no | layer-color |
neutral、layer-color、none |
shadow_opacity |
number | no | 0.5 |
シャドウの不透明度 (0–1) |
blur_material |
number | no | — | ブラーの量 (0–1) |
translucency_enabled |
boolean | no | false |
半透明を有効化 |
translucency_value |
number | no | 0.4 |
半透明の量 (0–1) |
add_layer_to_icon
add_layer_to_icon
既存のバンドルにレイヤーを追加します。
| パラメータ | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
bundle_path |
string | yes | — | .icon バンドルへのパス |
image_path |
string | yes | — | 画像ファイルへのパス |
layer_name |
string | yes | — | レイヤー名 |
group_index |
number | no | 0 |
対象グループ |
create_group |
boolean | no | false |
新しいグループを作成 |
opacity |
number | no | 1.0 |
レイヤーの不透明度 (0–1) |
scale |
number | no | 1.0 |
レイヤースケール (0.1–2.0) |
offset_x |
number | no | 0 |
X オフセット |
offset_y |
number | no | 0 |
Y オフセット |
blend_mode |
enum | no | normal |
ブレンドモード |
glass |
boolean | no | true |
ガラスへの参加 |
remove_layer
remove_layer
レイヤーまたはグループを削除します。target=layer の場合は layer_index が必須です。
| パラメータ | 型 | 必須 | デフォルト |
|---|---|---|---|
bundle_path |
string | yes | — |
target |
enum | yes | — |
group_index |
number | yes | — |
layer_index |
number | no | — |
cleanup_assets |
boolean | no | true |
read_icon
read_icon
バンドルを検査します。完全なマニフェスト JSON とサイズ付きのアセット一覧を返します。
| パラメータ | 型 | 必須 |
|---|---|---|
bundle_path |
string | yes |
set_glass_effects
set_glass_effects
グループに Liquid Glass を設定します。すべてのエフェクトパラメータはオプションです — 指定された値のみが変更されます。
| パラメータ | 型 | デフォルト | 説明 |
|---|---|---|---|
bundle_path |
string | — | バンドルへのパス |
group_index |
number | 0 |
対象グループ |
specular |
boolean | — | スペキュラの切り替え |
blur_material |
number|null | — | ブラー (0–1、無効化する場合は null) |
shadow_kind |
enum | — | neutral、layer-color、none |
shadow_opacity |
number | — | シャドウの不透明度 (0–1) |
translucency_enabled |
boolean | — | 半透明の切り替え |
translucency_value |
number | — | 半透明の量 (0–1) |
opacity |
number | — | グループの不透明度 (0–1) |
blend_mode |
enum | — | ブレンドモード |
lighting |
enum | — | combined または individual |
set_appearances
set_appearances
背景の塗り、グループエフェクト、または個別レイヤーのプロパティに対してダーク/ティントのオーバーライドを設定します。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
bundle_path |
string | yes | バンドルへのパス |
target |
enum | yes | fill、group、または layer |
appearance |
enum | yes | dark または tinted |
group_index |
number | no | グループインデックス (target=group または target=layer 用) |
layer_index |
number | no | グループ内のレイヤーインデックス (target=layer で必須) |
bg_color |
string | no | このアピアランスの背景色 (target=fill) |
specular |
boolean | no | このアピアランスのスペキュラ (target=group) |
shadow_kind |
enum | no | シャドウタイプ (target=group) |
shadow_opacity |
number | no | シャドウの不透明度 (target=group) |
opacity |
number | no | このアピアランスの不透明度 (target=group または target=layer) |
blur_material |
number|null | no | このアピアランスのブラーマテリアル (target=group) |
translucency_enabled |
boolean | no | このアピアランスの半透明を有効化 (target=group) |
translucency_value |
number | no | このアピアランスの半透明の量 (target=group) |
hidden |
boolean | no | このアピアランスの非表示状態 (target=group または target=layer) |
blend_mode |
enum | no | このアピアランスのブレンドモード (target=layer) |
fill_color |
string | no | このアピアランスの塗り色の 16 進 (target=layer) |
position_scale |
number | no | このアピアランスの位置スケール (0.05–3.0) |
position_offset_x |
number | no | このアピアランスの位置 X オフセット |
position_offset_y |
number | no | このアピアランスの位置 Y オフセット |
set_fill
set_fill
背景の塗りを設定します。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
bundle_path |
string | yes | バンドルへのパス |
fill_type |
enum | yes | solid、gradient、automatic、none |
color |
string | no | 16 進カラー (solid またはグラデーション下部) |
color2 |
string | no | グラデーション上部の色 |
gradient_angle |
number | no | 角度 (度) (デフォルト: 0) |
set_layer_position
set_layer_position
レイヤーまたはグループのスケールとオフセットを調整します。
| パラメータ | 型 | デフォルト | 説明 |
|---|---|---|---|
bundle_path |
string | — | バンドルへのパス |
target |
enum | layer |
layer または group |
group_index |
number | 0 |
グループインデックス |
layer_index |
number | — | レイヤーインデックス (target=layer 用) |
scale |
number | — | スケール (0.05–3.0) |
offset_x |
number | — | X オフセット |
offset_y |
number | — | Y オフセット |
toggle_fx
toggle_fx
すべてのグループのガラスエフェクトを有効または無効にします。
| パラメータ | 型 | 必須 |
|---|---|---|
bundle_path |
string | yes |
enabled |
boolean | yes |
export_preview
export_preview
プレビュー PNG をレンダリングします。デフォルトでは Liquid Glass を使用し、フラットにフォールバックします。
| パラメータ | 型 | デフォルト | 説明 |
|---|---|---|---|
bundle_path |
string | — | バンドルへのパス |
output_path |
string | — | 出力 PNG パス |
size |
number | 1024 |
出力サイズ (16–2048) |
appearance |
enum | — | dark または tinted |
flat |
boolean | false |
フラットレンダリングを強制 |
canvas_bg |
enum | — | プリセット背景 |
apple_preset |
enum | — | Apple 壁紙プリセット |
canvas_bg_color |
string | — | カスタム背景の 16 進 |
canvas_bg_image |
string | — | 背景画像パス |
zoom |
number | 1.0 |
ズームレベル (0.1–3.0) |
return_image |
boolean | true |
レンダリング画像を base64 でインライン返却 |
render_liquid_glass
render_liquid_glass
Apple の ictool 経由でピクセルパーフェクトな Liquid Glass をレンダリングします。Icon Composer.app が必要です。
| パラメータ | 型 | デフォルト | 説明 |
|---|---|---|---|
bundle_path |
string | — | バンドルへのパス |
output_path |
string | — | 出力 PNG パス |
platform |
enum | iOS |
iOS、macOS、watchOS |
rendition |
enum | Default |
Default、Dark、TintedLight、TintedDark、ClearLight、ClearDark |
width |
number | 1024 |
出力幅 (16–2048) |
height |
number | 1024 |
出力高さ (16–2048) |
scale |
number | 1 |
スケール係数 (1–3) |
light_angle |
number | — | 光の角度 (0–360) |
tint_color |
number | — | ティント色相 (0–1) |
tint_strength |
number | — | ティント強度 (0–1) |
| キャンバスオプション | — | — | export_preview と同じ |
return_image |
boolean | true |
レンダリング画像を base64 でインライン返却 |
export_marketing
export_marketing
App Store Connect 用のフラットマーケティング PNG。ガラスエフェクトなし、アルファチャンネルなし。
| パラメータ | 型 | デフォルト | 説明 |
|---|---|---|---|
bundle_path |
string | — | バンドルへのパス |
output_path |
string | — | 出力 PNG パス |
size |
number | 1024 |
出力サイズ (16–2048) |
return_image |
boolean | true |
レンダリング画像を base64 でインライン返却 |
📝 MCP プロンプト
| プロンプト | パラメータ | 説明 |
|---|---|---|
create-app-icon |
image_path、output_dir、brand_color、dark_color? |
ガイド付きワークフロー: ロゴからアイコンを作成、プレビュー、反復、エクスポート |
add-dark-mode |
bundle_path、dark_color |
ビフォー/アフタープレビュー付きで既存のアイコンにダークモードを追加 |
export-for-app-store |
bundle_path、output_dir |
App Store 提出用のマーケティング PNG + プレビューをエクスポート |
💡 使用例
ブランドアイコンを作成
# Create with brand color
icon-composer create logo.svg ./out --bg-color "#0A66C2"
# Add dark mode
icon-composer appearance ./out/AppIcon.icon --target fill --appearance dark --bg-color "#0D1B2A"
# Configure glass effects
icon-composer glass ./out/AppIcon.icon --specular --shadow-kind layer-color --blur-material 0.3
# Preview
icon-composer preview ./out/AppIcon.icon preview.png
App Store 用にエクスポート
# Marketing icon (flat, no alpha, 1024x1024)
icon-composer export-marketing ./out/AppIcon.icon marketing.png
# The .icon bundle goes into your Xcode project's asset catalog
ガラス付きマルチレイヤーアイコン
# Create base icon
icon-composer create background.svg ./out --bg-color "#1C1C2E"
# Add foreground layers
icon-composer add-layer ./out/AppIcon.icon glyph.svg --name glyph --opacity 0.8
icon-composer add-layer ./out/AppIcon.icon badge.svg --name badge --create-group
# Configure glass per group
icon-composer glass ./out/AppIcon.icon --group-index 0 --specular --blur-material 0.3
icon-composer glass ./out/AppIcon.icon --group-index 1 --specular --shadow-kind neutral
# Render Liquid Glass
icon-composer render ./out/AppIcon.icon glass-preview.png
⚠️ 制限事項
- Liquid Glass レンダリングには macOS と Apple の Icon Composer.app のインストールが必要です。フラットレンダリングはどこでも動作します。
- ClearLight/ClearDark レンディション はグレーを背景にレンダリングされます。Apple のガラス透明性には Metal GPU が必要で、CLI 経由では利用できません。
🏗️ アーキテクチャ
src/lib/ Pure library (bundle, manifest, render, ictool)
src/lib/ops-*.ts Operations layer (MCP result format)
src/cli.ts CLI (Commander.js, 14 commands)
src/server.ts MCP server (thin wrapper, 12 tools + 3 prompts)
🤝 コントリビューション
# Install dependencies
bun install
# Run tests
bun test # 175 unit tests
npm run test:mcp # 16 MCP integration tests
# Build
bun run build
# Visual test gallery
bun src/cli.ts visual-test --out ./gallery
代替品








VIP会員