Favicon MCP Server について
Favicon MCP Server は、Web アプリ向けに SVG アイコンを ICO と PNG のファビコンへ変換します。MCP クライアントから SVG の内容またはファイルを渡し、Base64 データの受け取りやファイル保存ができます。
主な機能
- 01SVG から ICO への変換
- 02SVG から PNG への変換
- 0316、32、48 px のサイズ生成
- 04Base64 エンコードデータの返却
- 05生成ファイルの保存
活用シーン
- 01SVG ロゴからファビコンファイルを作成
- 02Web サイト用の ICO・PNG 素材を生成
MCP 対応
MCP クライアントに `svg_to_favicon` ツールを公開し、SVG の内容またはファイルパスと出力形式を受け取ります。結果は Base64 データとして返すか、ファイルに保存できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Favicon MCP サーバー
Web アプリケーション向けに SVG 画像をさまざまなファビコン形式(ICO および PNG)に変換する Model Control Protocol(MCP)サーバーです。
https://github.com/user-attachments/assets/7dcab05c-2340-4f8b-befc-7614b495685f
機能
- SVG から ICO への変換:SVG 画像を ICO 形式(16x16、32x32、48x48 ピクセル)に変換します。
- SVG から PNG への変換:SVG 画像を PNG 形式(16x16、32x32、48x48 ピクセル)に変換します。
- Base64 エンコード出力:Base64 エンコードされた出力により、簡単に統合できます。
- MCP プロトコルのサポート:LLM を活用したアプリケーションとシームレスに統合できます。
前提条件
- Go 1.20 以降
- 依存関係:
github.com/mark3labs/mcp-go v0.13.0github.com/sergeymakinen/go-icogithub.com/tdewolff/canvas
インストール
git clone https://github.com/elliotxx/favicon-mcp-server.git
cd favicon-mcp-server
go mod download
使い方
- サーバーを起動する:
go run main.go
- ツールのパラメーター:
svg_data:文字列で指定する SVG アイコンの内容です。output_formats:希望する出力形式(ico、png)を指定する文字列の配列です。デフォルト:["ico", "png"]。
レスポンスの例
サーバーは、リクエストされた形式のファビコンデータを Base64 エンコードして返します。
{
"content": [
{
"type": "text",
"text": "Successfully generated favicons"
}
],
"meta": {
"ico": "base64_encoded_ico_data",
"png": "base64_encoded_png_data"
}
}
使い方
入力方法
- SVG を直接入力:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "svg_to_favicon",
"arguments": {
"svg_data": "<svg width=\"32\" height=\"32\"><rect width=\"32\" height=\"32\" fill=\"red\"/></svg>"
}
}
}
- SVG ファイルを入力:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "svg_to_favicon",
"arguments": {
"svg_file": "path/to/your/icon.svg"
}
}
}
出力方法
-
Base64 エンコード出力(デフォルト):
- レスポンスで ICO および PNG データを Base64 エンコードして返します。
-
ファイル出力:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "svg_to_favicon",
"arguments": {
"svg_data": "<svg width=\"32\" height=\"32\"><rect width=\"32\" height=\"32\" fill=\"red\"/></svg>",
"output_dir": "path/to/output/directory",
"output_formats": ["ico", "png"]
}
}
}
ファイル出力を使用する場合:
- ICO ファイルは
favicon.icoとして保存されます。 - PNG ファイルは
favicon-{size}x{size}.pngとして保存されます(例:favicon-32x32.png)。
テスト
クイックテスト(推奨)
SVG を直接入力してテストする最も簡単な方法です:
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"svg_to_favicon","arguments":{"svg_data":"<svg width=\"32\" height=\"32\"><rect width=\"32\" height=\"32\" fill=\"red\"/></svg>"}}}' | go run main.go
テストファイルを使用する
テストファイルを使用する場合:
- テストケースを記述したテストファイル
test.jsonを作成します。 - 次のコマンドを実行します:
echo $(tr -d '\n' < test/test.json) | go run main.go
パラメーター
svg_data:文字列で指定する SVG の内容svg_file:SVG ファイルへのパスoutput_dir:出力ファイルを保存するディレクトリoutput_formats:希望する形式の配列(["ico", "png"])
開発
このプロジェクトは標準的な Go プロジェクトのレイアウトに従い、依存関係の管理には Go モジュールを使用しています。
プロジェクト構成
favicon-mcp-server/
├── main.go # Main server implementation
├── go.mod # Go module definition
├── go.sum # Go module checksums
└── README.md # This file
ソースからビルドする
go build
コントリビューション
- リポジトリをフォークします。
- 機能ブランチを作成します(
git checkout -b feature/amazing-feature)。 - 変更をコミットします(
git commit -m 'Add some amazing feature')。 - ブランチにプッシュします(
git push origin feature/amazing-feature)。 - プルリクエストを作成します。
Windsurf との統合
この MCP サーバーを Windsurf と統合するには、次の手順に従ってください。
- Windsurf を開き、Cascade インターフェースに移動します。
- MCP サーバーを設定します:
- ハンマーアイコンをクリックして「Configure」を選択し、
~/.codeium/windsurf/mcp_config.jsonファイルを開きます。 - 次の設定を追加します。
- ハンマーアイコンをクリックして「Configure」を選択し、
"mcpServers": {
"favicon-mcp-server": {
"command": "go",
"args": ["run", "main.go"],
"cwd": "/path/to/favicon-mcp-server",
"env": {}
}
}
/path/to/favicon-mcp-server をプロジェクトディレクトリの実際のパスに置き換えてください。
3. Windsurf を更新します:
- MCP ツールバーの「Refresh」ボタンをクリックして、新しい設定を読み込みます。
Cursor との統合
この MCP サーバーを Cursor と統合するには、次の手順に従ってください。
- MCP サーバーを有効にします:
- Cursor の設定に移動し、MCP サーバーのオプションを探します。
- まだ有効になっていない場合は、MCP サーバーを有効にします。
- 新しい MCP サーバーを追加します:
- 「Add new MCP server」をクリックします。
- サーバーの実行に使用する実行ファイルまたはコマンドへのパスを指定します。
- このプロジェクトでは、統合を簡単にするために、スタンドアロンの実行ファイルを作成するか、バンドルツールを使用する必要がある場合があります。
- サーバーの詳細を設定します:
- MCP サーバーを実行するコマンドを入力します。例:
go run main.go
- 実行ファイルへのパスが正しいことを確認してください。
4. サーバーを有効にします: - サーバーを追加した後、「Enable」をクリックして有効化します。
これらの手順に従うことで、Favicon MCP Server を Windsurf と Cursor の両方に統合し、AI を活用したツールで開発ワークフローを強化できます。
ライセンス
このプロジェクトは MIT License のもとでライセンスされています。詳細は LICENSE ファイルをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。