Image to SVG について
ラスター画像を拡大縮小可能な SVG に変換する MCP サーバーです。画像データや URL を受け取り、トレース、色処理、出力の細かさを調整できます。
主な機能
- 01ラスター画像を SVG に変換
- 02Base64 データや画像 URL に対応
- 03一般的なラスター形式に対応
- 04色やトレース設定の調整
- 05ローカルファイルへの任意アクセス
活用シーン
- 01ロゴを拡大縮小可能な形式に変換
- 02URL 上の画像を SVG に変換
- 03色精度を下げて簡略化した画像を作成
MCP 対応
MCP クライアントに画像から SVG への変換ツールを提供します。入力は Base64 画像データまたは URL で、ベクトル化パラメーターを指定できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
1掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| mode | string | いいえ | トレースモード:'spline'(滑らかな曲線)、'polygon'(直線のエッジ)、または 'none'(ピクセル単位で忠実) |
| colormode | string | いいえ | カラーモード:'color' はフルカラー、'binary' は白黒の線画 |
| image_url | any | いいえ | 画像を取得する URL(PNG、JPG、または WEBP)。これか image_base64 のいずれか一方を指定してください。 |
| hierarchical | string | いいえ | レイヤーの配置:'stacked'(重なりあり)または 'cutout'(重なりなし) |
| image_base64 | any | いいえ | Base64 エンコードされた画像データ(PNG、JPG、または WEBP)。これか image_url のいずれか一方を指定してください。 |
| filter_speckle | integer | いいえ | このピクセル数以下の斑点を除去します。値を大きくすると画像はきれいになりますが、小さなディテールが失われます。デフォルト:4。 |
| max_iterations | integer | いいえ | 曲線フィッティングの最大反復回数。値が大きいほど精度は高くなりますが、処理は遅くなります。デフォルトは 10 です。 |
| path_precision | integer | いいえ | SVG パス座標の小数精度。値が小さいほどファイルサイズは小さくなります。デフォルトは 8 です。 |
| color_precision | integer | いいえ | 色の量子化に使用する有効ビット数。値が小さいほど色数が減り、SVG が簡素になります。デフォルトは 6 です。 |
| corner_threshold | integer | いいえ | コーナー検出の角度しきい値(度)。デフォルトは 60 です。 |
| layer_difference | integer | いいえ | レイヤーを統合する色差のしきい値。値が大きいほどレイヤー数が減り、SVG が簡素になります。デフォルトは 16 です。 |
| length_threshold | number | いいえ | パスセグメントの最小長。デフォルトは 4.0 です。 |
| splice_threshold | integer | いいえ | スプラインをつなぐ角度しきい値。デフォルトは 45 です。 |
詳細
image2svg-mcp
ラスター画像(PNG、JPG、WEBP)をスケーラブルな SVG ベクターグラフィックに変換する MCP サーバーです。
機能
- 画像をBase64 エンコードデータまたはURLとして受け付けます
- PNG、JPG、JPEG、WEBP、TIFF など、一般的なラスター形式に対応しています
- ベクター化パラメーター(色精度、スペックル除去、トレースモードなど)を細かく制御できます
data:image/...;base64,URI プレフィックスを自動的に処理します- URL からのダウンロードをストリーミングし、サイズを 5 MB に制限します
- ローカル画像用の
file://URL に対応しています(--allow-local-files-pathでオプトイン)
使い方
実際の動作を確認するには、画像をオンラインで SVG に変換してください。
Claude Code と Claude Desktop
settings.json に追加します。
{
"mcpServers": {
"image2svg": {
"command": "uvx",
"args": ["image2svg-mcp"]
}
}
}
Claude Code では、コマンドラインを使って追加します。
claude mcp add image2svg --scope user -- uvx image2svg-mcp
ローカルファイルへのアクセスを有効にする場合:
claude mcp add image2svg --scope user -- uvx image2svg-mcp --allow-local-files-path /home/user/images
Docker
HTTP サーバーとして実行します。
docker run -p 8000:8000 ghcr.io/botmonster/image2svg-mcp
ローカルファイルへのアクセスを有効にする場合:
docker run -p 8000:8000 -v /home/user/images:/images ghcr.io/botmonster/image2svg-mcp --allow-local-files-path /images
claude mcp add image2svg --transport http --scope user http://localhost:8000/mcp
これにより、次のようなプロンプトを使用できます。
このローカルファイルを SVG に変換してください:file://logo.png
指定したディレクトリ(およびそのサブディレクトリ)内のファイルにのみアクセスできます。ディレクトリートラバーサルを防ぐため、パスは正規化されます。このフラグを指定しない場合、file:// URL は拒否されます。
プロンプトの例
このツールを使って LLM に依頼できることの例を紹介します。
1. シンプルな画像から SVG への変換
山々の向こうに沈む夕日の画像を生成してから、SVG に変換してください。
LLM はラスター画像を生成し、その後、デフォルト設定で convert_image_to_svg ツールを使って、きれいなベクター画像を作成します。
2. 特定のパラメーターを指定した細かな変換
青い円の中に白い星があるロゴを作成してください。次に、輪郭がくっきりするようにバイナリの colormode を使って SVG に変換し、ノイズを除去するために filter_speckle を 10 に設定してください。
これは、白黒の線画風の出力に colormode: "binary" を使用します。ロゴやアイコンに最適です。filter_speckle の値を大きくすると、小さなアーティファクトが除去されます。
3. ミニマルなスタイルで URL から変換
ミニマルなポスター風にするため、色精度を低くして、この画像をシンプルな SVG に変換してください:https://example.com/photo.png
color_precision: 3 を使用すると色数が大幅に減り、アーティスティックなポスタライズ風のベクター効果が得られます。スタイリッシュなイラストに最適です。
4. Base64 画像を直接変換
この Base64 画像を SVG に変換してください:iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAO0lEQVR4nGP8z8Dwn4EIwESMIqwKGRn+MzBisYQJXRE2NopCbKYgi5Huxv8MjBiSyGJMuCTQNTJSPRwBCjYOD5JU5rIAAAAASUVORK5CYII=
中央に青い円がある 10x10 の赤い正方形です。URL が不要なため、インライン画像データを使ったツールのテストに便利です。
ツールのパラメーター
| パラメーター | 型 | デフォルト | 範囲 | 説明 |
|---|---|---|---|---|
image_base64 | 文字列 | - | - | Base64 でエンコードされた画像データです。image_url またはこちらのいずれかを指定してください。 |
image_url | 文字列 | - | - | 画像を取得する URL です(有効化されている場合は http://、https://、または file://)。image_base64 またはこちらのいずれかを指定してください。 |
colormode | 文字列 | "color" | color、binary | フルカラーまたは白黒の線画です。 |
mode | 文字列 | "spline" | spline、polygon、none | トレースモードです。滑らかな曲線、直線のエッジ、またはピクセル単位で忠実な出力を選択します。 |
filter_speckle | 整数 | 4 | 0-128 | N ピクセル以下の斑点を除去します。 |
color_precision | 整数 | 6 | 1-12 | 色の量子化ビット数です。値を小さくすると色数が減り、SVG がシンプルになります。 |
layer_difference | 整数 | 16 | 0-128 | レイヤーを結合する際の色差です。 |
corner_threshold | 整数 | 60 | 0-180 | 角を検出する角度のしきい値(度)です。 |
length_threshold | 浮動小数点数 | 4.0 | 3.5-10.0 | パスセグメントの最小長です。 |
splice_threshold | 整数 | 45 | 0-180 | スプラインを接続する角度のしきい値です。 |
path_precision | 整数 | 8 | 1-12 | SVG 座標の小数点以下の桁数です。 |
hierarchical | 文字列 | "stacked" | stacked、cutout | レイヤーの配置モードです。 |
max_iterations | 整数 | 10 | 1-100 | 曲線フィッティングの最大反復回数です。 |
開発
インストール
git clone https://github.com/botmonster/image2svg-mcp.git
cd image2svg-mcp
uv sync
テストの実行
uv run pytest tests/ -v
MCP Inspector の実行
uv run fastmcp dev inspector src/image2svg_mcp/server.py:mcp
ライセンス
Apache 2.0 - LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。