mcpField
A
Aseprite MCP Tools

Aseprite MCP Tools

ローカル
github.com/diiviメディア・デザイン8401 週間前に更新

Aseprite MCP Tools について

Aseprite MCP Toolsは、Asepriteでピクセルアートやアニメーションスプライトを作るAIアシスタント向けのPython製MCPサーバーです。描画、アニメーション、パレット、書き出し、ビジュアル分析に対応し、Luaを直接実行する手段も備えています。

主な機能

  1. 01キャンバス、レイヤー、ピクセル描画
  2. 02フレーム、セル、アニメーション編集
  3. 03パレット、グラデーション、ディザリング
  4. 04PNG、GIF、スプライトシートの入出力
  5. 05プレビュー、フレーム差分、品質検査
  6. 06Luaスクリプトの直接実行

活用シーン

  1. 01ゲーム用キャラクターや背景のピクセルアート制作
  2. 02アニメーションのフレーム列の作成と確認
  3. 03レトロパレットや陰影ランプの適用
  4. 04スプライトシートやアニメーションの書き出し

MCP 対応

MCPサーバーとして、描画、レイヤー、アニメーション、パレット、入出力、分析など、Asepriteを操作するツールをAIアシスタントに提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"aseprite": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"build"
]
}
}
}
起動コマンドdocker run -i --rm build

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
ocibuild

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Aseprite MCP ツール

AI アシスタントが Aseprite を自在に操作し、ピクセルアートやアニメーションスプライトを作成できる Python MCP サーバーです。

18 カテゴリにわたる 123 個のツール — キャンバス、描画、レイヤー、アニメーション、パレット、エフェクト、スライス、タイルマップ、エクスポート、視覚的なフィードバック/分析ツール、そして Lua を直接実行できるエスケープハッチを備えています。このツールセットは、LLM が基本的な図形を描くだけでなく、質の高いピクセルアートを作成するために必要なものをすべて提供できるよう設計されています。色相をずらしたシェーディング用の色階調、順序付きディザリング、輪郭線、量子化機能付きのレトロなパレットプリセット、オニオンスキン表示、フレーム差分、アニメーション作業用の境界チェックやリントチェックなどを備えています。

例

居心地のよい部屋(Opus 5.5)
夕暮れの寝室で宿題をする女の子と本棚で眠る猫を描いた、Claude Opus 5.5 によるアイソメトリックなピクセルアートアニメーション
夕暮れのアイソメトリックな寝室で、女の子が宿題をする様子をローファイ風のループアニメーションにしました。
128×128、16 フレームのループ、4×でエクスポート。
剣士:Fable 5 と Opus 5.5 の比較
Fable 5Opus 5.5
Claude Fable 5 が描いたピクセルアートの剣士Claude Opus 5.5 が描き直した同じ剣士
Claude Fable 5 による4フレームの剣の斬撃Claude Opus 5.5 による8フレームの剣の斬撃
ベンチマーク用の剣士と、構えから振り抜きまでの斬撃。
48×48、4フレームの斬撃。
Opus 5.5 は Fable 5 のスプライトを評価し、同じサイズで描き直しました。
48×48、8フレームの斬撃。

Fable 5 のタスクは、Lj Miranda による Draw Me a Swordsman のベンチマークを再現したものです。その研究結果が、このサーバーのツールセット拡張の着想となりました。

スライム(Opus 5.5)
Claude Opus 5.5 が描いたピクセルアートの緑色のスライム
緑色のスライム。
32×32の静止画、8×でエクスポート。
Claude Opus 5.5 による、スクワッシュ&ストレッチを使って右へ跳ねるスライム
スクワッシュ&ストレッチを使って右へ跳ねるスライム。
43フレームのアニメーション、4×でエクスポート。
剣士対スライム(Opus 5.5)
Claude Opus 5.5 による、剣士がスライムを斬りつけ、スライムが赤く点滅し、ダメージ数値 -12 が飛び出して体力バーが減るアニメーション
剣士がスライムを斬りつけます。スライムは赤く点滅して体力が減り、ダメージ数値が飛び出します。
80×58、15フレーム、5×でエクスポート。

関連プロジェクト

Aseprite Live — AI エージェントが Aseprite でピクセルアートを描く様子を、ブラウザー上でリアルタイムに見られます

ツールのカテゴリ

カテゴリツール数説明
キャンバス7スプライトの作成、レイヤーやフレームの管理、アクティブ状態の設定
描画16ピクセル、テキスト行、線、長方形、円、楕円、多角形、パス、塗りつぶし、グラデーション、アイソメトリックボックス
テキスト3ビットマップのスプライトシートまたは TrueType フォントを使ったテキストの描画と計測
レイヤー7削除、名前変更、複製、並べ替え、ブレンドモード、統合、フラット化
選択範囲と領域4長方形の領域や色の移動、コピー、消去
エフェクト12輪郭線、色の置換、HSL 調整、組織的ディザリング、ネイティブの Aseprite フィルター
アニメーション24フレーム、セル、タグ、イージング付きのトゥイーン、伝播
パレット8パレットの取得・設定、レトロなプリセット、カラーレamp、量子化、カラーモード
変形4反転、回転、サイズ変更、切り抜き
スライス5名前付き領域、9パッチの中心、ピボットポイント
タイルマップ5タイルマップレイヤー、タイルセットの編集、タイルの配置
エクスポートとインポート8PNG、GIF、スプライトシート、レイヤー別・タグ別エクスポート、背景上のプレビュー、画像のインポート
検査6ピクセル(1つのレイヤー、表示中の合成画像、またはテキスト行形式)の読み取りとスプライトのメタデータ
分析と視覚的フィードバック6モデルが確認できるスプライトプレビュー、オニオンスキンのレンダリング、フレーム差分、境界、リント、色の統計
品質4アニメーションの一貫性の検証とサニタイズ
シーン1スプライトファイル間でのレイヤーのコピー
プレビューとガイド3ローカル HTTP プレビューサーバー、ワークフローガイド
スクリプト1上記で対応していないあらゆる操作に使える、Lua を直接実行する手段
キャンバス
ツール説明
create_canvas指定した寸法で新しいスプライトを作成します
add_layer新しいレイヤーを追加します。名前付きグループ内にも追加できます
add_group新しいグループレイヤーを追加します。ネストも可能です
add_frame新しいフレームを追加します
set_frameアクティブなフレームを設定します
set_frame_duration1つのフレームの長さをミリ秒単位で設定します
set_layerアクティブなレイヤーを設定します。必要に応じて作成することもできます
描画

すべての _at バリエーションは特定のレイヤー/フレームを対象とし、必要に応じてセルを作成できます。座標はスプライト全体を基準とします。

draw_rows(filename="mug.aseprite", layer_name="mug", frame_index=1, x=4, y=2,
          rows=[".WWWW..",
                ".WWWWKK",
                ".WWWW.K",
                "..WW.K."],
          legend={"W": "#F4F4F4", "K": "#8B5A2B"}, outline="#1A1C2C")

.(または凡例にない文字)はピクセルを変更せず、read_rows は同じ形式でピクセルを返します。そのため、編集時は読み取った内容の数文字を変更して、再度描画できます。

ツール説明
draw_pixelsピクセルごとの色を指定して、個々のピクセルを描画します
draw_pixels_at特定のレイヤー/フレームにピクセルを描画します
draw_line / draw_line_at太さを指定した線
draw_rectangle / draw_rectangle_at輪郭線のみ、または塗りつぶしの長方形
draw_circle / draw_circle_at輪郭線のみ、または塗りつぶしの円
draw_ellipse_atx/y の半径を個別に指定した、輪郭線のみ、または塗りつぶしの楕円
draw_polygon点のリストから輪郭線のみ、または塗りつぶしの多角形を描画します
draw_path点のリストに沿って、指定した太さの折れ線を描画します
fill_area / fill_area_atバケツツールによる塗りつぶし
apply_gradient_rect長方形を滑らかな線形グラデーションで塗りつぶします
draw_rows文字の行と色の凡例を使ってピクセルを描画します。ASCII アートのように扱え、1px の輪郭線も任意で付けられます。顔、手、動物、取っ手など、手作業で選んだディテールを配置するのに適したコンパクトな方法です
draw_iso_box家具や小道具向けに、各面の色を指定した、輪郭が滑らかな 2:1 のアイソメトリックボックスを描画します
テキスト

Aseprite の Lua API にはテキスト描画機能がないため、サーバー上でグリフをラスタライズし、スプライトに合成します。サポートされているフォントバックエンドは 2 種類です。ビットマップスプライトシートフォント(ピクセルアートに最適です。グリフはすでにピクセルで構成されており、size は整数倍で拡大します)と、アンチエイリアスを指定しない限りアンチエイリアスなしでレンダリングされる TrueType の .ttf/.otf ファイルです。

フォントは ~/.aseprite-mcp/fonts から検出されます。ビットマップフォントは font.json とシート PNG を含むディレクトリで、TrueType フォントはフォントファイルのみです。インストール済みのシステムフォントも一覧に表示されます。font には直接パスを指定することもできます。

ツール説明
list_text_fontsdraw_text で利用できるビットマップフォントと TrueType フォントを一覧表示します
measure_text幅、高さ、送り幅、ベースラインの範囲を取得します。描画し直して確認することなく、パネルのサイズを決めたりラベルを中央揃えしたりできます
draw_textアンカー、疑似ボールド、アウトライン、ドロップシャドウ、文字間隔を指定してテキストを描画します

レイアウトがテキストに依存する場合は、まず measure_text を呼び出してください。draw_text が使用するものと同じメトリクスが返されるため、ラベルの中央揃えやプレートのサイズ調整を 1 回で行えます。

measure_text(text="MODERATOR", font="minecraft", size=2, bold=1)
  -> width=115 height=15 advance_width=117 above_baseline=14 below_baseline=1 left_bearing=0

draw_text(filename="badge.aseprite", text="MODERATOR", x=64, y=17,
          font="minecraft", size=2, anchor="baseline", bold=1,
          color="#FFFFFF", shadow_color="#14237A")

アンカーは topleft/top/topright、left/center/right、bottomleft/bottom/bottomright に加え、複数のラベルを同じベースラインに揃える baselineleft/baseline/baselineright です。アウトラインとシャドウはスタンプのサイズを大きくしますが、グリフの位置は移動しません。

font.json
{
  "name": "my-font",
  "letter_gap": 1,
  "space_width": 3,
  "sheets": [{
    "file": "sheet.png",
    "cell_w": 8, "cell_h": 8,
    "ascent": 7,
    "chars": [" !\"#$%&'()*+,-./", "0123456789:;<=>?"]
  }],
  "overrides": {
    "86": {"ascent": 7, "rows": ["#...#", "#...#", ".#.#.", "..#.."]}
  }
}

各シートには独自の ascent が設定されているため、セルサイズが異なるシート同士でもベースラインが揃います。これにより、コンパクトな ASCII シートと高さのあるアクセント付き文字のシートを組み合わせて、1 つのテキスト列にできます。origin はシートに余白がある場合にセルグリッドをずらします。ink_rule: "dark" は、可変幅グリフのボックスを区切るために不透明な白背景を使用するシートを読み込みます。また、advance: "box" はインク領域ではなくボックスから送り幅を取得します。overrides は個々のグリフを手描きの行に置き換えます。シートに含まれるグリフが中央からずれていたり、行に収まらないほど高かったりする場合に便利です。

レイヤー
ツール説明
delete_layer名前を指定してレイヤーを削除します
rename_layerレイヤーの名前を変更します
duplicate_layerすべてのセル、レイヤーの不透明度、ブレンドモードを含めてレイヤーを複製します。グループ内への複製も指定できます
reorder_layerスタック内の位置にレイヤーを移動します
set_layer_blend_modeブレンドモードを設定します(乗算、スクリーン、オーバーレイなど、19 種類)
merge_layer_downレイヤーを 1 つ下のレイヤーに結合します
flatten_spriteすべてのレイヤーを 1 つに統合します
選択範囲と領域
ツール説明
move_regionピクセルの矩形範囲を切り取り、別の場所に貼り付けます
copy_region矩形範囲を別の位置、レイヤー、またはフレームにコピーします
erase_region矩形範囲を透明にします
erase_colorマジック消しゴム:許容値を指定して、特定の色のピクセルをすべて透明にします
効果

ピクセルアート向けのツールボックスです。輪郭をきれいに整え、パレットに配慮した色の混合や、さまざまな陰影を付けられます。

ツール説明
outline_cel不透明なすべてのピクセルの周囲、または領域内の図形の周囲だけに1pxの輪郭を追加します
replace_colorアルファ値を維持しながら、ある色を別の色に置き換えます(許容値を指定できます)
adjust_hslセルの色相・彩度・明度を変更します。パレットの置き換え、夜のシーン、影などに使えます
apply_dither_gradientBayer 4×4の組織的ディザリングを使った2色のグラデーションです
apply_dither_pattern指定した密度で2色を均一に混ぜるディザリングです

ネイティブフィルターは、レイヤーとフレームに対してAseprite独自のエンジンコマンドを実行します。

ツール説明
outline_native不透明なピクセルの周囲にAsepriteのOutlineコマンドを適用します
adjust_hsl_nativeAsepriteの色相/彩度/明度フィルターです
adjust_brightness_contrast明るさ/コントラストフィルターです
invert_colors色を反転します
apply_convolution畳み込みフィルターです。ぼかし、シャープ化、エッジ、エンボスなどに対応します
list_convolution_matricesapply_convolutionで使える組み込みマトリックスを一覧表示します
extract_paletteスプライトから最適なパレットを作成します(ネイティブの色量子化)
アニメーション
ツール説明
add_frames任意の表示時間を指定して、N個のフレームを追加します
delete_frameフレームを削除します
set_frame_duration_allすべてのフレームの表示時間を設定します
duplicate_frame_rangeフレーム範囲をN回複製します
copy_frame / propagate_frame_to_rangeフレームのすべてのセルをほかのフレームにコピーします
create_cel / clear_cel / copy_celレイヤー/フレーム上のセルを管理します
propagate_cels選択したレイヤーのセルをフレーム範囲全体にコピーします
set_cel_positionセルをx,yに配置します
set_cel_opacity1つのセルの不透明度を設定します
offset_cel_positionsフレーム全体でセルを指定した差分だけ移動します
tween_cel_positionsフレーム間で位置を線形補間します
tween_cel_positions_easedイージング(ease_in/out、smoothstep)を使って位置を補間します
tween_cel_opacity_easedイージングを使って不透明度を補間します
tween_cel_scale_easedアンカーを指定し、イージングを使って拡大縮小を補間します
oscillate_cel_positions正弦波による動き(上下動、呼吸、ホバリング)を付けます
set_tag / delete_tag方向(前進/逆再生/ピンポン)を指定してアニメーションタグを設定/削除します
set_layer_visibility / set_layer_opacityレイヤー単位の表示状態と不透明度を設定します
set_onion_skinオニオンスキンのUI設定を行います(一括処理についてはrender_onion_skinを参照してください)
get_sprite_infoスプライトのメタデータ(サイズ、レイヤー、フレーム、表示時間、タグ)を取得します
パレット
ツール説明
get_paletteパレットを16進数カラーとして読み取ります
set_palette16進数カラーのリストからパレットを設定します
list_palette_presets組み込みのレトロパレットを一覧表示します
apply_palette_presetプリセットを適用します。gameboy、pico8、c64、cga、dawnbringer16、dawnbringer32、grayscale_4、monochromeに対応します
generate_color_rampベースカラーから、色相を変化させた暗色から明色への陰影ランプを作成します
quantize_to_paletteすべてのピクセルを最も近いパレットカラーに合わせます
remap_colors_in_cel_rangeフレーム範囲全体で特定の色を置き換えます
set_color_modeRGB、グレースケール、インデックスカラーを相互に変換します
変形
ツール説明
flip_layerセルを水平方向または垂直方向に反転します
rotate_layerセルを90/180/270°回転します
resize_canvasスプライトを新しい寸法に拡大縮小します
crop_canvas四角形の範囲に切り抜きます
スライス
ツール説明
create_slice名前付きの長方形領域を作成します
set_slice_center9パッチの伸縮可能な中央部分を設定します
set_slice_pivotピボットポイントを設定します
list_slices境界、中央、ピボットを含むすべてのスライスをJSON形式で一覧表示します
delete_sliceスライスを削除します
タイルマップ
ツール説明
create_tilemap_layer独自のタイルセットとタイルグリッドを持つタイルマップレイヤーを追加します
draw_on_tileタイルセットのタイルにピクセルを描画します(新しいタイルは自動で追加されます)
set_tilesグリッド位置を指定してマップにタイルを配置します
get_tile_atグリッドセルを占めるタイルを読み取ります
get_tilemap_infoタイルサイズ、タイル数、マップの寸法を JSON で取得します
エクスポートとインポート
ツール説明
export_spritePNG、GIF、JPG などにエクスポートします
export_frame1 フレームを整数倍に拡大して PNG でエクスポートします(作業内容を見るには view_sprite を使います)
export_spritesheetスプライトシート(横方向/縦方向/行/列/パック)を、任意の JSON メタデータとタグごとのフィルタリング付きでエクスポートします
export_layersレイヤーごとに 1 つの PNG をエクスポートします
export_tagアニメーションタグを GIF または PNG シーケンスとしてエクスポートします
export_animation全フレームまたは 1 つのタグを、拡大し、任意で単色背景を付けて GIF または PNG シーケンスとしてエクスポートします。スプライト自体は変更されません
import_image_as_layerPNG をレイヤーにインポートします(参照画像、事前作成したパーツ)
copy_sprite.aseprite ファイルを複製します
インスペクション
ツール説明
get_pixel_color1 ピクセルの RGBA 値を読み取ります
get_pixels_rectピクセルの矩形領域を JSON として読み取ります
get_composite_pixel / get_composite_rect1 ピクセルまたは矩形領域で表示されている内容(すべてのレイヤーを合成したもの)を読み取ります
read_rows領域を文字の行と凡例で読み取ります。コンパクトな形式で、draw_rows に渡して描画できます
get_sprite_infoスプライトのメタデータ(アニメーションにも記載)
分析と視覚的なフィードバック

Aseprite の UI で人間のアーティストが得られる情報に相当する、バッチモードのツールです。

ツール説明
view_spriteフレームの画像を直接モデルに返します。拡大表示され、ピクセルグリッドと座標ルーラーが付くため、正確なピクセルを修正できます
render_onion_skin隣接するフレームの半透明な残像を重ねてフレームをレンダリングします。Aseprite を開かずに動きの連続性を確認できます
compare_frames2 つのフレームを比較します。必要に応じてレイヤーまたは領域を指定できます(足が動いたか?)。変更されたピクセル数、割合、バウンディングボックスを返します
get_boundsフレームごとに描画ピクセルのバウンディングボックスを取得します。必要に応じてレイヤーを指定できます。上昇と下降、地面のライン、キャンバスの端を測定できます
lint_sprite座標付きで、切り離されたパーツ、単独のピクセル、孤立したピクセルを検出します
get_color_statsフレームのカラーヒストグラムを取得します。パレットのずれや、ほぼ同じ色を検出できます

view_sprite は描画ループの目となるツールです。画像を MCP の画像コンテンツとして返すため、ファイルをエクスポートして開かなくても、モデルが作業内容を確認できます。また、ローカルファイルを読み取れないクライアントでも動作します。"3"、"1-4"、"1,3,6-8" でフレームを選び、layer_name でレイヤーを分離し、region="x,y,w,h" でルーラーをスプライト座標のままにして詳細を拡大できます。

品質
ツール説明
ensure_layers_presentフレーム範囲全体で、レイヤーに不足しているセルを作成します
validate_scene不足しているレイヤー/セルを JSON で報告します
audit_animationフレームの重なりと、レイヤーの範囲外の動作を監査します
animation_sanitizeレイヤーの順序、カバレッジ、重なりを正規化します
シーン
ツール説明
copy_layers_between_spritesある .aseprite ファイルから別のファイルへ、名前でレイヤーをコピーします
プレビューとガイド
ツール説明
start_preview_server / stop_preview_serverローカル HTTP 経由でエクスポートしたファイルを配信します
animation_workflow_guideアニメーションを上手に作成する方法を案内します。キーとなるポーズ、予備動作、スクワッシュとストレッチ、タイミング(character、idle、environment)を扱います

クライアントが接続すると、サーバーはピクセルアートの簡潔なルール(シルエットを優先する、光の方向を 1 つにする、線をきれいに保つ、各工程を確認する)を MCP の instructions として送信します。そのため、モデルは何も呼び出さなくてもルールを確認できます。

スクリプト
ツール説明
run_lua_scriptバッチモードで任意の Aseprite Lua(API ドキュメント)を実行します。専用ツールで対応できない場合の最後の手段です。1 つのスクリプトで複数の操作をまとめて実行し、Aseprite の起動回数を減らせます。spr:saveAs(spr.filename) を呼び出し、結果を print() で出力することを忘れないでください。⚠️ ホスト上で制限のないコードを実行するため、信頼できるスクリプトのみを渡してください。

LLM におすすめのワークフロー

  1. まずパレットを計画する:素材(肌、鎧、刃)ごとに generate_color_ramp を使うか、レトロな見た目にするには apply_palette_preset を使います。
  2. レイヤーごとに作成する:パーツを個別にアニメーション化・編集できるよう、背景/本体/装備/エフェクトに分けます。
  3. 大まかな形から細部へ進める:draw_rectangle_at / draw_ellipse_at / fill_area_at でシルエットを作り、その後 draw_rows で調整します。
  4. 作業内容を確認する:各工程の後に view_sprite を使い(拡大するには region を指定)、修正して繰り返します。get_color_stats でパレットを絞り込み、lint_sprite で不要なピクセルや孤立したピクセルを検出します。
  5. 意図を持って陰影を付ける:影のレイヤーには adjust_hsl、色をなじませるには apply_dither_gradient、見やすくするには outline_cel を使います。
  6. セル用ツールでアニメーションを作成する:propagate_cels の後に tween_cel_positions_eased / oscillate_cel_positions を使います。view_sprite、compare_frames、get_bounds で確認し、export_animation または export_tag で書き出します。

Docker の使い方

クイックスタート

Docker イメージをビルドして実行します:

docker build -t aseprite-mcp:latest .
docker run -it --rm aseprite-mcp:latest

または、用意されているビルドスクリプトを使います:

  • Linux/macOS:chmod +x build-docker.sh && ./build-docker.sh
  • Windows:.\build-docker.ps1
Docker Compose の使用
# Production
docker-compose up aseprite-mcp

# Development mode
docker-compose --profile dev up aseprite-mcp-dev

Docker の詳細なセットアップ手順については、DOCKER.md を参照してください。

オプション:Steam 経由で Aseprite をインストールする

コンテナの起動時に SteamCMD 経由で Aseprite をインストールするには、Steam の認証情報を指定します:

# Create a .env with STEAM_USERNAME/STEAM_PASSWORD (and optional STEAM_GUARD_CODE)
# Then
docker run --rm -i --env-file .env aseprite-mcp:latest

インストールされている場合、バイナリは /opt/steamapps/common/Aseprite/aseprite に配置され、ASEPRITE_PATH が自動的に認識されます。

ローカルインストール

前提条件
  • Python 3.13 以降
  • uv パッケージマネージャー
  • Aseprite(PATH にない場合は、.env で ASEPRITE_PATH を設定してください)
インストール:
{
  "mcpServers": {
      "aseprite": {
          "command": "/opt/homebrew/bin/uv",
          "args": [
              "--directory",
              "/path/to/repo",
              "run",
              "-m",
              "aseprite_mcp"
          ]
      }
  }
}

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。