game-art-mcp
game-art-mcp
2D RPGゲームのアートディレクションのためのAI駆動ピクセルアートスタイルシステムおよびMCPサーバー。
目的
このリポジトリは、プロジェクトのアートディレクションの信頼できる情報源です。AIエージェントはこのリポジトリに入り、MCP経由でプロジェクトコンテキストを照会し、「私たちのアートスタイル」が何を意味するのかを正確に理解できます。会話履歴に依存する必要はありません。
Related MCP server: Aseprite MCP Server
アーキテクチャ
game-art-mcp/
├── project.yaml # Project config: which style is active
├── style/ # Version-controlled style definitions
│ └── fantasy_pixel_v1/ # Style v1 (YAML rules + style bible)
├── registry/ # Asset registry storage
│ ├── assets/ # One YAML file per registered asset
│ └── registry.yaml # Auto-generated index of all assets
├── memory/ # Art Memory storage (Phase 3)
│ ├── anchors/ # Style anchor YAML files
│ ├── references/ # Approved reference YAML files
│ ├── rejections/ # Rejection records
│ ├── decisions/ # Art decision records (ADR format)
│ ├── history.yaml # Style version evolution log
│ └── memory.yaml # Auto-generated memory index
├── src/
│ ├── style/ # Models, loader, validator
│ ├── assets/ # Asset registry (models + service)
│ │ ├── models/ # Zod schemas + TypeScript types
│ │ └── registry/ # AssetRegistry service (CRUD + query)
│ ├── memory/ # Art Memory (models, service, resolver)
│ │ ├── models/ # Zod schemas for anchors, references, rejections, decisions
│ │ ├── service/ # ArtMemoryService (CRUD + index)
│ │ └── resolver/ # ReferenceResolver (deterministic lookup)
│ ├── qa/ # Art QA engine (Phase 4)
│ │ ├── models/ # QA types, report schema, rule interface
│ │ ├── rules/ # 13 deterministic rules (7 categories)
│ │ ├── runner/ # QARunner orchestrator
│ │ └── history/ # QA history persistence
│ ├── providers/ # Provider Adapters (Phase 5)
│ │ ├── models/ # ProviderAdapter interface, types, error codes
│ │ ├── adapters/ # Adapter implementations (mock-provider)
│ │ ├── registry/ # ProviderRegistry (adapter lookup + capabilities)
│ │ ├── gateway/ # ProviderGateway (dispatch + artifact storage)
│ │ └── artifacts/ # ArtifactStore (immutable provenance)
│ ├── production/ # Production Orchestrator (Phase 6)
│ │ ├── models/ # Types, state machine, error codes
│ │ ├── orchestrator/ # ProductionOrchestrator (coordinator)
│ │ └── store/ # ProductionStore (YAML manifest persistence)
│ ├── versioning/ # Versioning & Approval (Phase 7)
│ │ ├── models/ # Types, lifecycle states, error codes
│ │ └── services/ # VersioningService (approval, versioning, promotion, audit)
│ ├── context/ # ArtContextService
│ └── mcp/ # MCP server + tools
│ └── tools/ # art-tools.ts, asset-tools.ts, memory-tools.ts, qa-tools.ts, provider-tools.ts, production-tools.ts, versioning-tools.ts
├── tests/ # Unit + integration tests
└── docs/ # Architecture, style system, phasesクイックスタート
npm install
npm run build
npm testMCPサーバーを実行
npm start
# or with custom root:
ART_MCP_ROOT=/path/to/project npm startスタイルを検証
npm run validateMCPツール
スタイルツール(読み取り専用)
ツール | 説明 |
| 完全なアートコンテキスト(プロジェクト+スタイル+全ルール) |
| アクティブなスタイル定義 |
| 特定のルールカテゴリ(pixel_language、outlineなど) |
| セマンティックな役割を持つカラーパレット |
| スタイル設定の検証 |
アセットツール(読み取り+書き込み)
ツール | 説明 |
| IDでアセットを取得 |
| アセットの検索/フィルタリング(タイプ、カテゴリ、ステータス、タグ) |
| アセットIDが登録されているか確認 |
| 完全な検証付きで新しいアセットを登録 |
| 既存アセットの更新(部分パッチ) |
| アセットを非推奨としてマーク |
| アセットをアーカイブ |
| アセットファイルからレジストリインデックスを再構築 |
メモリツール(読み取り+書き込み)
ツール | 説明 |
| メモリ概要:アンカー、決定、拒否、参照数 |
| ルール、アンカー、決定、回避事項を含む完全なスタイル説明 |
| 特定コンテキストに対する決定的な参照ルックアップ |
| IDでスタイルアンカーを取得 |
| アンカーの検索(カテゴリ、ステータス、ディメンションフィルター) |
| 新しいスタイルアンカーを追加 |
| IDで承認済み参照を取得 |
| 参照の検索(ロール、ステータス、asset_idフィルター) |
| 新しい承認済み参照を追加 |
| IDで拒否レコードを取得 |
| 拒否の検索(タイプ、ステータス、理由フィルター) |
| 新しい拒否レコードを追加 |
| IDでアート決定を取得 |
| 決定の検索(ステータスフィルター) |
| 新しいアート決定を追加 |
| 完全なスタイル進化履歴を取得 |
QAツール(読み取り専用)
ツール | 説明 |
| 単一アセットに対するQAチェックの実行(完全レポート) |
| 複数アセットに対するQAチェックの実行(バッチレポート) |
| QAゲートチェック — 承認ワークフロー用の合格/不合格判定 |
| 定義付きで利用可能な全QAルールを一覧表示 |
| IDで特定のQAルールの完全な定義を取得 |
| 特定のルールがアセットに対して失敗した理由を説明 |
| QA実行履歴の取得(アセットIDでフィルタリング可能) |
プロバイダーツール(読み取り+書き込み)
ツール | 説明 |
| メタデータ付きで登録済みプロバイダーをすべて一覧表示 |
| 特定プロバイダーの詳細メタデータを取得 |
| プロバイダー機能の取得(操作、フォーマット、制限) |
| プロバイダーのヘルスステータスを確認 |
| プロバイダー経由でアート生成操作を実行 |
| 実行中のプロバイダー操作をキャンセル |
| IDで操作ステータスを取得 |
| IDでアーティファクトの詳細と来歴を取得 |
プロダクションツール(読み取り+書き込み)
ツール | 説明 |
| プロダクションプランの作成(実行前のプレビュー) |
| プロダクションジョブの作成(プラン+永続化、開始はしない) |
| プロダクションジョブの実行を開始 |
| 現在のジョブステータスを取得(概要) |
| 完全なジョブ詳細を取得(イベント、試行、プラン) |
| 失敗したジョブを再開 |
| 実行中のジョブをキャンセル |
| ジョブの試行履歴を取得 |
| 承認待ちのジョブを承認 |
| すべてのプロダクションジョブIDを一覧表示 |
バージョニングツール(読み取り+書き込み)
ツール | 説明 |
| アセットの正規(現在)バージョンを取得 |
| 特定のアセットバージョンの詳細を取得 |
| アセットの完全なバージョン履歴を取得 |
| 同じアセットの2つのバージョンを比較 |
| 承認レコードを含むバージョンの来歴を取得 |
| 候補アセットの承認をリクエスト |
| IDで承認レコードを取得 |
| 候補アセットを承認 |
| 候補アセットを拒否 |
| 候補アセットに変更をリクエスト |
| 承認済み候補を正規バージョンに昇格 |
| 正規バージョンを以前のバージョンにロールバック |
| 正規アセットをアーカイブ |
スタイルツールとQAツールは読み取り専用です。アセット、メモリ、プロバイダー、プロダクション、バージョニングの各ツールは読み取りと書き込みの両方をサポートしています。
アセットレジストリ
アセットレジストリ(フェーズ2)は、構造化メタデータを使用してプロジェクト内のすべてのアートアセットを追跡します。アセットはregistry/assets/内の個別のYAMLファイルとして保存され、registry/registry.yamlにインデックス化されます。
主な機能:
セマンティックID — ドット区切りの小文字(例:
character.goblin.001)スタイル連携 — すべてのアセットがスタイルID+バージョンを参照
リレーションシップ —
variant_of、derived_from、animation_ofなどステータス追跡 — draft、approved、rejected、deprecated、archived
完全な検証 — スキーマ、スタイル参照、ソースファイルの存在、リレーションシップ
完全なドキュメントはdocs/ASSET-REGISTRY.md、メタデータスキーマはdocs/ASSET-METADATA.mdを参照してください。
アートメモリ
アートメモリシステム(フェーズ3)は、リポジトリに永続的な視覚的知識を与えます。何が承認されたか、何が拒否されたか、そしてその理由を記憶するため、エージェントはプロジェクトのアートディレクションを理解するために会話履歴を必要としません。
主要な概念:
スタイルアンカー — スタイルを定義する正規の視覚的例(docs/STYLE-ANCHORS.mdを参照)
承認済み参照 — ロールとディメンションを持つ信頼できるアセット
拒否 — 適合しないもの。理由の管理された語彙付き
アート決定 — 視覚的方向性の選択に関するADR形式のレコード(docs/ART-DECISIONS.mdを参照)
参照リゾルバー — あらゆる作成タスクに関連するコンテキストを返す決定的なルックアップ
完全なドキュメントはdocs/ART-MEMORY.mdを参照してください。
アートQA
アートQAシステム(フェーズ4)は、ピクセルアートアセットに対する決定的で再現可能な品質ゲートを提供します。すべてのチェックは、期待値/実測値と構造化された是正措置を備えたルールベースです。AIビジョン、埋め込み、自動修復はありません。
主要な概念:
13のルール、7カテゴリ(技術、ディメンション、パレット、アルファ、ピクセル、スタイル、メモリ)
3つのプロファイル — strict(警告で失敗)、default(エラーで失敗)、lenient(重大のみで失敗)
機械可読レポート — ルールごとの結果、重大度、是正措置を含むJSON
スタイル統合 — アクティブなスタイルからキャンバスサイズ、パレット制限、ピクセルルールを読み取り
メモリ統合 — 拒否された方向性と承認されたアート決定をチェック
QAゲート — CIおよび承認ワークフロー用の合格/不合格判定
QA履歴 — アセットごとの全実行の永続的なログ
完全なドキュメントはdocs/ART-QA.mdを参照してください。
プロバイダーアダプター
プロバイダーアダプターシステム(フェーズ5)は、外部アート生成ツールへのプロバイダー非依存のインターフェースを追加します。リクエストはゲートウェイを通過し、操作を検証し、登録済みアダプターに委任し、不変の来歴とともに生成されたアーティファクトを保存します。
主要な概念:
ProviderAdapterインターフェース — メタデータ、機能、ヘルス、実行、キャンセル
アーティファクト — 不変の来歴を持つ生のプロバイダー出力(まだアセットではない)
機能 — 操作ごとの詳細(フォーマット、最大解像度)
ドライラン — 出力を生成せずにリクエストを検証
モックプロバイダー — 失敗/タイムアウトモードを備えた組み込みテストアダプター
自動選択なし — エージェントはプロバイダーを明示的に選択する必要がある
完全なドキュメントはdocs/PROVIDERS.mdを参照してください。
プロダクションオーケストレーター
プロダクションオーケストレーター(フェーズ6)は、完全なアートアセット生成ライフサイクルを調整します:リクエスト検証、スタイル/参照/プロバイダー解決、実行、QA、再試行、承認ゲート。
主要な概念:
コーディネーターであり、情報源ではない — スタイル、QA、プロバイダー、レジストリに委任する
ステートマシン — 検証済みの遷移を持つ9つのステータス(created から completed/failed/cancelled まで)
11の本番ステージ — REQUEST_VALIDATION から APPROVAL_GATE まで
制限付きリトライ — 設定可能な max_attempts(デフォルト3)と、QA失敗時の修復プラン
承認境界 —
awaiting_approvalで停止し、自動承認は決して行わないプランの陳腐化検出 — 実行前にスタイルのバージョン差異を検出する
YAML永続化 — ジョブごとに
production/<job_id>/内の1つの manifest.yamlイベント履歴 — ジョブごとの全状態変更の追記専用ログ
完全なドキュメントは docs/PRODUCTION.md を参照してください。
バージョニングと承認
バージョニング&承認システム(フェーズ7)は、不変のアセットバージョニング、明示的な承認ワークフロー、完全な監査証跡を追加します。バージョンが削除されることは決してなく、アセットが自動承認されることも決してありません。
主要な概念:
アセットライフサイクル — 8つの状態: draft、pending_approval、approved、rejected、changes_requested、promoted、superseded、archived
承認ワークフロー — 構造化されたフィードバック付きの request、approve、reject、request_changes
承認ポリシー — 設定可能:
requires_qa_pass、allow_agent_approval、requires_human不変バージョン — 単調増加、親トラッキング、バージョンごとの完全な来歴
正規ポインタ — どのバージョンが現在のものかを追跡し、プロモーション/ロールバック時に更新
プロモーション — QAゲートと承認ゲートを備えた比較交換(compare-and-swap)
ロールバック — 正規ポインタを以前のバージョンに再指定し、履歴を決して削除しない
監査ログ — 9種類のイベントタイプ、追記専用、不変
アクター識別 — すべてのレコードで human、agent、system、provider を追跡
完全なドキュメントは docs/VERSIONING.md を参照してください。
現在のフェーズ
フェーズ7 — バージョニング&承認(完了)
完全なロードマップは docs/PHASES.md を参照してください。
スタイルシステム
スタイルは、機械可読なアートディレクションを表す構造化YAMLファイルです:
style.yaml— アイデンティティ、キャンバスサイズ、スケーリングpalette.yaml— セマンティックな役割を持つ色pixel-rules.yaml— ピクセルアートの制約outline.yaml— アウトラインルールshape-language.yaml— ビジュアル言語lighting.yaml— ライトの方向とルールanimation.yaml— フレーム数、FPS、制約
詳細は docs/STYLE-SYSTEM.md を参照してください。
Available Tools
126 toolsart.aseprite.exportB
Export a canvas session to Aseprite format. Saves the canvas as PNG and generates the Aseprite CLI command to convert it. Commands are returned for external execution.
Inputs: session_id (required), output_name.
art.aseprite.layersA
Generate a Lua script and Aseprite command to set up standard layer structure. Writes the script to disk and returns the command to execute it.
Inputs: session_id (required), layers.
art.aseprite.spritesheetB
Generate a spritesheet export command for a canvas session. The canvas PNG is saved and a CLI command is returned to produce a packed spritesheet via Aseprite.
Inputs: session_id (required), columns, padding.
art.aseprite.validateB
Generate a validation Lua script and Aseprite command to check sprite constraints (palette size, dimensions). Writes the script to disk and returns the command.
Inputs: width (required), height (required), max_colors (required), session_id (required).
art.asset.approval.inspectB
Get an approval record by ID.
Inputs: approval_id (required).
art.asset.approval.requestC
Request approval for a candidate asset.
Inputs: actor (required), style (required), asset_id (required), candidate_id (required), +3 more.
art.asset.approveC
Approve a candidate asset.
Inputs: actor (required), approval_id (required), reason.
art.asset.archiveB
Archive an asset (remove from active use).
Inputs: id (required).
art.asset.archive_versionC
Archive a canonical asset, removing it from active use.
Inputs: actor (required), asset_id (required).
art.asset.compareB
Compare two versions of an asset.
Inputs: asset_id (required), version_a (required), version_b (required).
art.asset.currentB
Get the canonical (current) version number of an asset.
Inputs: asset_id (required).
art.asset.deprecateC
Mark an asset as deprecated.
Inputs: id (required).
art.asset.existsA
Check whether an asset with the given ID exists in the registry.
Inputs: id (required).
art.asset.findA
Search and filter registered assets. All parameters are optional; omit all to return every asset.
Inputs: tags, type, status, category, +2 more.
art.asset.getA
Get a registered asset by its ID. Returns the full asset record.
Inputs: id (required).
art.asset.historyC
Get the full version history of an asset.
Inputs: asset_id (required).
art.asset.inspect_versionB
Get details of a specific asset version.
Inputs: version (required), asset_id (required).
art.asset.promoteC
Promote an approved candidate to become the canonical version.
Inputs: actor (required), style (required), approval_id (required), artifact_id (required), +7 more.
art.asset.provenanceC
Get version provenance including approval record.
Inputs: version (required), asset_id (required).
art.asset.rebuild_indexA
Rebuild the asset registry index from all registered asset files.
Inputs: no named parameters.
art.asset.registerA
Register a new asset in the registry. Validates schema, style reference, source file, and relationships.
Inputs: id (required), name (required), type (required), style (required), +8 more.
art.asset.rejectC
Reject a candidate asset.
Inputs: actor (required), approval_id (required), reason, feedback.
art.asset.request_changesC
Request changes on a candidate asset.
Inputs: actor (required), feedback (required), approval_id (required), reason.
art.asset.rollbackB
Rollback the canonical version to a previous version.
Inputs: actor (required), asset_id (required), target_version (required), expected_current_version (required).
art.asset.updateC
Update an existing asset. Provide the asset ID and a patch object with fields to change.
Inputs: id (required), patch (required).
art.canvas.analyze_refA
Analyze a reference image: extract dimensions, color palette with counts, and 2D color map.
Inputs: image_path (required).
art.canvas.batch_drawA
Execute multiple draw commands in a single call for efficiency. Each command references a canvas tool name and its params.
Inputs: commands (required), session_id (required).
art.canvas.clearB
Clear the entire canvas, optionally filling with a color.
Inputs: session_id (required), color.
art.canvas.createB
Create a new pixel canvas session for drawing.
Inputs: session_id (required), width, height, asset_id, +1 more.
art.canvas.draw_circleB
Draw a circle on the canvas.
Inputs: cx (required), cy (required), color (required), radius (required), +2 more.
art.canvas.draw_ditherB
Apply a dither pattern to a rectangular region.
Inputs: x (required), y (required), width (required), color1 (required), +4 more.
art.canvas.draw_lineA
Draw a line between two points using Bresenham algorithm.
Inputs: x0 (required), x1 (required), y0 (required), y1 (required), +2 more.
art.canvas.draw_noiseC
Fill a region with random noise using specified colors.
Inputs: x (required), y (required), width (required), colors (required), +3 more.
art.canvas.draw_rectB
Draw a rectangle on the canvas.
Inputs: x (required), y (required), color (required), width (required), +3 more.
art.canvas.fillB
Flood fill an area starting from a point.
Inputs: x (required), y (required), color (required), session_id (required).
art.canvas.get_pixelB
Read the color of a single pixel on the canvas.
Inputs: x (required), y (required), session_id (required).
art.canvas.get_stateA
Get the current canvas state as a color map (2D hex array) or base64 PNG.
Inputs: session_id (required), format.
art.canvas.saveA
Save the current canvas to a PNG file.
Inputs: session_id (required), output_path.
art.canvas.set_pixelB
Set a single pixel on the canvas.
Inputs: x (required), y (required), color (required), session_id (required).
art.critic.evaluateB
Run the art critic to evaluate canvas quality with spatial scoring and issue detection.
Inputs: session_id (required), profile.
art.critic.refineC
Execute refinement actions from a critique to improve canvas quality.
Inputs: actions (required), session_id (required).
art.detail.cavityB
Add cavity details (dark center with light rim) to a region.
Inputs: x (required), y (required), seed (required), count (required), +5 more.
art.detail.clean_clustersC
Cleanup pass: merge orphan/isolated pixels into nearest larger cluster.
Inputs: session_id (required), min_cluster_size.
art.detail.clusterC
Create a pixel cluster on the canvas at a given position with a specified shape.
Inputs: cx (required), cy (required), size (required), color (required), +3 more.
art.detail.crackB
Add crack patterns to a region (stone, ice surfaces).
Inputs: x (required), y (required), seed (required), color (required), +4 more.
art.detail.edge_breakB
Apply edge breakup to avoid perfectly geometric silhouettes.
Inputs: seed (required), amount (required), session_id (required), preserve_outline.
art.detail.executeC
Run the full detail pass pipeline on an existing canvas session. Requires content already drawn on canvas.
Inputs: materials (required), session_id (required), seed, profile.
art.detail.grainA
Add directional grain lines to a region (wood, cloth).
Inputs: x (required), y (required), seed (required), color (required), +5 more.
art.detail.highlightC
Add highlight clusters to a region for specular/light reflection.
Inputs: x (required), y (required), seed (required), color (required), +4 more.
art.detail.materialB
Apply a full material treatment (all texture patterns for that material) to a region.
Inputs: x (required), y (required), seed (required), width (required), +3 more.
art.detail.passC
Run a single named detail pass on a canvas session.
Inputs: materials (required), pass_name (required), session_id (required).
art.detail.planB
Create a detail art plan for an asset, specifying subject, resolution, materials, and detail profile.
Inputs: width (required), height (required), subject (required), materials (required), +2 more.
art.detail.shadowA
Add shadow clusters to a region for depth/occlusion.
Inputs: x (required), y (required), seed (required), color (required), +4 more.
art.detail.speckleA
Add scattered speckle dots to a region (dirt, stone, skin).
Inputs: x (required), y (required), seed (required), width (required), +4 more.
art.detail.textureC
Apply a texture pattern to a rectangular region on the canvas.
Inputs: x (required), y (required), seed (required), width (required), +5 more.
art.get_paletteB
Returns the color palette for the active style.
Inputs: no named parameters.
art.get_project_contextA
Returns the full art context: project config, active style definition, all rule categories, and palette.
Inputs: no named parameters.
art.get_styleA
Returns the active style definition. Optionally specify style_id and version to look up a specific style.
Inputs: version, style_id.
art.get_style_rulesB
Returns the rules for a specific category of the active style.
Inputs: category (required).
art.memory.add_anchorC
Add a new style anchor to the art memory.
Inputs: id (required), name (required), style (required), assets (required), +6 more.
art.memory.add_decisionC
Add a new art decision record to the art memory.
Inputs: id (required), style (required), title (required), reason (required), +6 more.
art.memory.add_referenceC
Add a new approved reference to the art memory.
Inputs: id (required), roles (required), style (required), status (required), +5 more.
art.memory.add_rejectionB
Add a new rejection record to the art memory.
Inputs: id (required), type (required), style (required), status (required), +5 more.
art.memory.explain_styleA
Explain the current or specified style: core rules, canonical anchors, important decisions, things to avoid, and history.
Inputs: style_id, style_version.
art.memory.find_anchorsC
Search for style anchors with optional filters.
Inputs: status, category, style_id, dimension, +1 more.
art.memory.find_decisionsB
Search for art decision records with optional filters.
Inputs: status, style_id, style_version.
art.memory.find_referencesC
Search for approved references with optional filters.
Inputs: role, status, asset_id, style_id, +1 more.
art.memory.find_rejectionsC
Search for rejection records with optional filters.
Inputs: type, reason, status, style_id, +1 more.
art.memory.get_anchorA
Get a style anchor by its ID.
Inputs: id (required).
art.memory.get_decisionA
Get an art decision record by its ID.
Inputs: id (required).
art.memory.get_referenceC
Get an approved reference by its ID.
Inputs: id (required).
art.memory.get_rejectionA
Get a rejection record by its ID.
Inputs: id (required).
art.memory.get_style_historyB
Get the full style evolution history.
Inputs: no named parameters.
art.memory.get_summaryA
Get a summary of the art memory: anchor count, active decisions, active rejections, total references.
Inputs: no named parameters.
art.memory.insightsA
Get style insights derived from approved assets — patterns, preferences, and learned conventions from the asset corpus.
Inputs: no named parameters.
art.memory.negativeA
Get negative patterns (rejected examples) for a type/material — query rejections filtered by type hints in reasons.
Inputs: type, material.
art.memory.resolve_referencesD
Resolve relevant references, anchors, decisions, and rejections for a given context. Returns categorized results.
Inputs: type, category, style_id, dimensions, +1 more.
art.memory.signatureA
Compute a visual signature (deterministic fingerprint) for a canvas session — color distribution, cluster stats, edge complexity, etc.
Inputs: session_id (required).
art.pipeline.analyzeB
Analyze a reference image. Returns palette, silhouette, composition, pixel characteristics. Provide either a file path or reference_id of an already-uploaded reference.
Inputs: pose, facing, subject, category, +2 more.
art.pipeline.planA
Build a 7-stage ArtPlan (silhouette-first) from an ArtSpecification. The plan defines ordered generation stages with QA checkpoints.
Inputs: reference_id (required), max_iterations.
art.pipeline.scoreC
Compute visual quality score for a pixel art asset. Scores silhouette, palette, composition, pixel cleanliness, and style match.
Inputs: asset_path (required), reference_id.
art.pipeline.specB
Build an ArtSpecification from a reference analysis + active style. The spec defines canvas, palette, outline, shading constraints for pixel art generation.
Inputs: reference_id (required), subject, max_colors, canvas_width, +1 more.
art.production.approveB
Approve a production job that is awaiting approval, moving it to completed.
Inputs: job_id (required).
art.production.attemptsB
Get the attempt history for a production job.
Inputs: job_id (required).
art.production.cancelC
Cancel a production job.
Inputs: job_id (required).
art.production.createB
Create a production job (plan + persist, does not start execution).
Inputs: output (required), subject (required), asset_type (required), request_id (required), +5 more.
art.production.inspectC
Get full details of a production job including events, attempts, and plan.
Inputs: job_id (required).
art.production.listB
List all production job IDs.
Inputs: no named parameters.
art.production.planB
Create a production plan for an art asset (inspect before executing).
Inputs: output (required), subject (required), asset_type (required), request_id (required), +5 more.
art.production.resumeA
Resume a failed or interrupted production job.
Inputs: job_id (required).
art.production.startC
Start executing a production job.
Inputs: job_id (required).
art.production.statusC
Get the current status of a production job.
Inputs: job_id (required).
art.provider.analyzeB
Analyze a PNG file using the canvas-analysis provider. Runs local analysis (signature, clusters, palette) without external APIs.
Inputs: operation (required), source_path (required), style, asset_id, +2 more.
art.provider.artifactB
Get details of a generated artifact.
Inputs: artifact_id (required).
art.provider.cancelC
Cancel a running provider operation.
Inputs: operation_id (required).
art.provider.capabilitiesB
Get the capabilities of a specific provider.
Inputs: provider_id (required).
art.provider.executeC
Execute an art generation operation via a provider.
Inputs: style (required), operation (required), provider_id (required), output, +6 more.
art.provider.fallbackC
Execute an art operation with fallback — tries the primary provider, falls back to a secondary on failure.
Inputs: style (required), operation (required), provider_id (required), output, +7 more.
art.provider.getA
Get detailed metadata for a specific provider.
Inputs: provider_id (required).
art.provider.healthB
Check the health status of a specific provider.
Inputs: provider_id (required).
art.provider.health_allA
Check health of all registered providers. Returns a map of provider ID to health status with latency and consecutive failure count.
Inputs: no named parameters.
art.provider.listA
List all registered art providers with their metadata.
Inputs: no named parameters.
art.provider.operationC
Get the status of a provider operation.
Inputs: operation_id (required).
art.qa.assetA
Run QA checks on a single asset. Returns a full QA report with all rule results.
Inputs: asset_id (required), profile.
art.qa.batchA
Run QA checks on multiple assets at once. Returns a batch report with individual results.
Inputs: asset_ids (required), profile.
art.qa.explain_failureA
Explain why a specific QA rule failed for an asset. Returns rule definition, issue details, and context.
Inputs: rule_id (required), asset_id (required).
art.qa.gateB
Run a QA gate check on an asset. Returns pass/fail verdict with full report.
Inputs: asset_id (required), profile.
art.qa.historyC
Get QA run history. Optionally filter by asset ID.
Inputs: asset_id.
art.qa.list_rulesA
List all available QA rules with their definitions.
Inputs: no named parameters.
art.qa.ruleA
Get the full definition of a specific QA rule by its ID.
Inputs: rule_id (required).
art.ref.canonicalA
Get canonical assets for a type/material — filters retrieve results to only canonical status entries.
Inputs: type, material.
art.ref.packB
Build a reference pack for generation — combines style constraints, canonical references, negative examples, and material palette.
Inputs: type, category, material, max_negative, +1 more.
art.ref.retrieveB
Smart ranked reference retrieval — scores and returns top assets by canonical status, style match, material match, and recency.
Inputs: type, category, material, max_results.
art.style.bootstrapA
Get session bootstrap context — assembles project config, style, canonical assets, anti-patterns, and recent decisions into one payload.
Inputs: no named parameters.
art.style.checkA
Run style consistency check on a canvas session — compares canvas content against compiled style constraints.
Inputs: session_id (required), material.
art.style.compileB
Compile style constraints for a subject — merges style definition, optional material profile, and resolution into a flat StyleConstraints object.
Inputs: width, height, profile, material.
art.style.repairA
Generate a repair plan from a style consistency check — identifies actions to fix style issues on a canvas.
Inputs: session_id (required), material.
art.tilemap.build_opsB
Generate TiledMCP operations from a MapSpecification. Returns the operation sequence for TiledMCP provider execution.
Inputs: map_id (required).
art.tilemap.create_specC
Create a MapSpecification for tilemap generation. Defines map size, biome, layers, objects, terrain rules.
Inputs: biome (required), width (required), height (required), layers (required), +6 more.
art.tilemap.list_tilesetsA
List all registered tileset definitions.
Inputs: no named parameters.
art.tilemap.register_tilesetB
Register a tileset definition with semantic tile metadata. Each tile gets an ID, terrain, walkability, collision info.
Inputs: tiles (required), asset_id (required), tile_size (required), tileset_id (required), +2 more.
art.tilemap.resolve_tilesA
Resolve semantic tile names to tileset local IDs. Use to verify tile names before building a map.
Inputs: intents (required), tileset_id (required).
art.tilemap.validateA
Validate a MapSpecification against its tileset. Checks missing tiles, invalid refs, style mismatch, object bounds.
Inputs: map_id (required).
art.validate_styleB
Validates the active style configuration and returns any errors found.
Inputs: no named parameters.
art.workflow.guideA
Generate a step-by-step painting guide for the AI to follow when drawing a subject. Enforces strict palette discipline, form-first/detail-last hierarchy, and per-step color limits. The guide is TEXT instructions — read it and follow each step sequentially.
Inputs: subject (required), width, height, profile, +1 more.
art.workflow.paletteA
Get the strict palette for a material — returns role-to-hex mappings, maximum color count, and forbidden colors. Use this before painting to know EXACTLY which colors are allowed.
Inputs: material.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
TDQS
Scored across 126 tools
The hierarchical namespaces help, but the sheer number of tools creates real overlap: art.provider.analyze vs art.pipeline.analyze, art.asset.archive vs art.asset.archive_version, and art.qa.asset vs art.critic.evaluate vs art.style.check all have fuzzy boundaries. An agent could easily pick the wrong one without very careful descriptions.
Most tools follow a predictable art.<category>.<action> pattern with snake_case verbs, which is highly readable. However, a few top-level tools like art.validate_style, art.get_style, and art.get_palette break the convention, and verbs are mixed across add/register/create for similar operations.
126 tools is an extreme count for any MCP server, far beyond the 25+ threshold. Many micro-tools—individual detail effects, memory CRUD variants, and Aseprite command generators—could be consolidated into broader operations, making the surface unnecessarily hard to navigate.
The tool surface is remarkably comprehensive for a game-art domain: asset lifecycle, versioning, approvals, style memory, QA, providers, canvas painting, production jobs, tilemaps, detail passes, Aseprite export, and workflow guidance are all covered. Major workflows have no obvious dead ends.
Maintenance
Related MCP Connectors
AI game assets for agents: consistent sprites, 2D animations, tiles, maps, music and engine exports.
Generate, edit, style-match, turn, and animate game-ready pixel art at exact sizes.
Build a game's 2D art layer with your agent: characters, animations, tilesets, levels, 5 engines.
Generate pixel art sprites, animations, 8-direction rotations and palettes for games.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI coding agents to create, draw, and refine Aseprite documents through deterministic canvas, layer, frame, tag, and palette tools, with pixel analyzers, style validation, and preview/diff visual feedback. It also supports spritesheet and animated GIF export, producing multi-layer game-ready assets.1MIT
- AlicenseBqualityCmaintenanceEnables users to automate the creation, editing, animation, and export of pixel-art game assets through a multi-agent pipeline that derives style specs and blueprints, generates Lua build scripts, and drives the canvas editor to produce .aseprite files, spritesheets, atlases, GIFs, and previews.12113 npm3MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to create and edit pixel-art projects — sprites, props, palettes, eight-direction animation, and tile-based environments — through a stdio MCP server with discovery, help, and call tools. Agents can build from silhouette to detail, inspect native-scale renders, silhouettes, value maps, and GIF playback, then save every change as versionable source.MIT
- AlicenseBqualityCmaintenanceEnables MCP-capable coding agents to act as a deterministic technical art director and multi-engine pipeline builder, locking AI-generated 2D/2.5D game assets to consistent camera angles, palettes, rigs, atlases, and exports across Blender, ComfyUI, UniRig, LibreSprite, Godot 4, Unity, and Unreal Engine 5.24MIT