icon-composer-mcp について
icon-composer-mcp は、iOS 26 以降向けの Liquid Glass 効果を備えた Apple の .icon バンドルを作成する コマンドライン ツール兼 MCP サーバーです。アプリアイコンやロゴを作成する開発者を対象とし、AI エージェントからも操作できます。Apple とは提携関係にありません。
主な機能
- 01PNG または SVG のグリフからの .icon バンドル作成
- 02スペキュラ、ブラー、シャドウ、透過効果の設定
- 03ダークモードと外観バリアントの上書き
- 0412 個の MCP ツールと 3 個のワークフロー用プロンプト
- 05ローカル環境を確認する doctor コマンド
活用シーン
- 01iOS アプリ向け Liquid Glass アイコンの生成
- 02App Store Connect 向けの不透明なマーケティングアイコンの書き出し
- 03AI エージェントによるアイコンレイヤーと塗りつぶしの調整
MCP 対応
stdio 方式で動作し、.icon バンドルの作成・編集・プレビュー・書き出しを行う 12 個のツールとワークフロー用プロンプトを MCP クライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
12掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| bg_color | string | はい | 16 進数形式の背景色(例:#0A66C2) |
| specular | boolean | いいえ | 鏡面ハイライト(Liquid Glass)を有効にする |
| output_dir | string | はい | .icon バンドルを書き込むディレクトリ |
| bundle_name | string | いいえ | .icon バンドルの名前(拡張子なし) |
| glyph_scale | number | いいえ | 前景グリフの拡大率(0.1-2.0、デフォルトは 1.0。Icon Composer でアイコン領域の約 65% を占めます) |
| shadow_kind | enum | いいえ | 影の種類neutral | layer-color | none |
| split_layers | boolean | いいえ | 複数の形状を含む SVG を個別のガラスレイヤーに分割します(各形状に独立したガラス効果が適用されます) |
| blur_material | number | いいえ | Liquid Glass のぼかし量(0-1、省略すると無効) |
| dark_bg_color | string | いいえ | 16 進数形式のダークモード背景色 |
| shadow_opacity | number | いいえ | 影の不透明度 |
| foreground_path | string | はい | 前景画像の絶対パス(PNG または SVG) |
| translucency_value | number | いいえ | 半透明度(0-1) |
| translucency_enabled | boolean | いいえ | 半透明グラデーションを有効にする |
詳細
Icon Composer MCP
Liquid Glass エフェクト(iOS 26 以降)を使って画像、アイコン、ロゴを作成する CLI および MCP サーバーです。Apple とは提携していません。
デモ
主な機能
.iconバンドルを作成:PNG または SVG のグリフからプログラムで作成できます- Liquid Glass を完全サポート:スペキュラーハイライト、ぼかしマテリアル、シャドウ、半透明
- ダークモードと外観バリアント:外観ごとに塗りつぶしを個別に設定できます
- AI エージェント対応:MCP ツール 12 個と、組み込みの指示を含むワークフロー用プロンプト 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 以降
- Liquid Glass のレンダリングには、Icon Composer をインストールした macOS
brew install --cask icon-composer - フラットプレビュー、バンドルの作成・編集、マーケティング用エクスポートは、Icon Composer なしで あらゆるプラットフォーム上で動作します
icon-composer doctor を実行して、セットアップを確認します。
CLI コマンド
| コマンド | 説明 |
|---|---|
create | 前景画像から新しい .icon バンドルを作成します |
add-layer | 既存のバンドルにレイヤーを追加します |
remove | レイヤーまたはグループを削除します |
inspect | バンドルの内容を読み取り、表示します |
glass | グループの Liquid Glass エフェクトを設定します |
appearance | ダークモード/色合いモードのオーバーライドを設定します |
fill | 背景の塗りつぶしを設定します(単色、グラデーション、自動、なし) |
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> | 主色(単色、またはグラデーションの下端) |
--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) |
| Canvas options | — | 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 | はい | — | .icon バンドルへのパス |
image_path | string | はい | — | 画像ファイルへのパス |
layer_name | string | はい | — | レイヤー名 |
group_index | number | いいえ | 0 | 対象のグループ |
create_group | boolean | いいえ | false | 新しいグループを作成 |
opacity | number | いいえ | 1.0 | レイヤーの不透明度(0~1) |
scale | number | いいえ | 1.0 | レイヤーのスケール(0.1~2.0) |
offset_x | number | いいえ | 0 | X オフセット |
offset_y | number | いいえ | 0 | Y オフセット |
blend_mode | enum | いいえ | normal | ブレンドモード |
glass | boolean | いいえ | true | Glass への適用 |
remove_layer
remove_layer
レイヤーまたはグループを削除します。target=layer の場合、layer_index は必須です。
| パラメーター | 型 | 必須 | デフォルト |
|---|---|---|---|
bundle_path | string | はい | — |
target | enum | はい | — |
group_index | number | はい | — |
layer_index | number | いいえ | — |
cleanup_assets | boolean | いいえ | true |
read_icon
read_icon
バンドルを調査します。完全なマニフェスト JSON と、サイズを含むアセット一覧を返します。
| パラメーター | 型 | 必須 |
|---|---|---|
bundle_path | string | はい |
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
背景塗りつぶし、グループエフェクト、または個々のレイヤープロパティに、ダーク/色付きのオーバーライドを設定します。
| Parameter | Type | Required | Description |
|---|---|---|---|
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
背景の塗りつぶしを設定します。
| Parameter | Type | Required | Description |
|---|---|---|---|
bundle_path | string | yes | バンドルへのパス |
fill_type | enum | yes | solid、gradient、automatic、none |
color | string | no | 16進数カラー(単色、またはグラデーションの下側の色) |
color2 | string | no | グラデーションの上側の色 |
gradient_angle | number | no | 角度(度単位、デフォルト:0) |
set_layer_position
set_layer_position
レイヤーまたはグループのスケールとオフセットを調整します。
| Parameter | Type | Default | Description |
|---|---|---|---|
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
すべてのグループのガラスエフェクトを有効または無効にします。
| Parameter | Type | Required |
|---|---|---|
bundle_path | string | yes |
enabled | boolean | yes |
export_preview
export_preview
プレビュー PNG をレンダリングします。デフォルトでは Liquid Glass を使用し、使用できない場合はフラット表示にフォールバックします。
| Parameter | Type | Default | Description |
|---|---|---|---|
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 が必要です。
| Parameter | Type | Default | Description |
|---|---|---|---|
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) |
| Canvas options | — | — | export_preview と同じ |
return_image | boolean | true | レンダリングした画像を base64 形式でインライン返却します |
export_marketing
export_marketing
App Store Connect 用のフラットなマーケティング PNG を出力します。ガラス効果とアルファチャンネルはありません。
| Parameter | Type | Default | Description |
|---|---|---|---|
bundle_path | string | — | バンドルのパス |
output_path | string | — | 出力 PNG のパス |
size | number | 1024 | 出力サイズ(16–2048) |
return_image | boolean | true | レンダリングした画像を base64 形式でインライン返却します |
MCP プロンプト
| Prompt | Parameters | Description |
|---|---|---|
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 のレンダリングには、Apple の Icon Composer.app をインストールした macOS が必要です。 フラット表示はどこでも利用できます。
- 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
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。