Skip to main content
Glama
game-art-mcp

game-art-mcp

by Cuvara

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 test

MCPサーバーを実行

npm start
# or with custom root:
ART_MCP_ROOT=/path/to/project npm start

スタイルを検証

npm run validate

MCPツール

スタイルツール(読み取り専用)

ツール

説明

art.get_project_context

完全なアートコンテキスト(プロジェクト+スタイル+全ルール)

art.get_style

アクティブなスタイル定義

art.get_style_rules

特定のルールカテゴリ(pixel_language、outlineなど)

art.get_palette

セマンティックな役割を持つカラーパレット

art.validate_style

スタイル設定の検証

アセットツール(読み取り+書き込み)

ツール

説明

art.asset.get

IDでアセットを取得

art.asset.find

アセットの検索/フィルタリング(タイプ、カテゴリ、ステータス、タグ)

art.asset.exists

アセットIDが登録されているか確認

art.asset.register

完全な検証付きで新しいアセットを登録

art.asset.update

既存アセットの更新(部分パッチ)

art.asset.deprecate

アセットを非推奨としてマーク

art.asset.archive

アセットをアーカイブ

art.asset.rebuild_index

アセットファイルからレジストリインデックスを再構築

メモリツール(読み取り+書き込み)

ツール

説明

art.memory.get_summary

メモリ概要:アンカー、決定、拒否、参照数

art.memory.explain_style

ルール、アンカー、決定、回避事項を含む完全なスタイル説明

art.memory.resolve_references

特定コンテキストに対する決定的な参照ルックアップ

art.memory.get_anchor

IDでスタイルアンカーを取得

art.memory.find_anchors

アンカーの検索(カテゴリ、ステータス、ディメンションフィルター)

art.memory.add_anchor

新しいスタイルアンカーを追加

art.memory.get_reference

IDで承認済み参照を取得

art.memory.find_references

参照の検索(ロール、ステータス、asset_idフィルター)

art.memory.add_reference

新しい承認済み参照を追加

art.memory.get_rejection

IDで拒否レコードを取得

art.memory.find_rejections

拒否の検索(タイプ、ステータス、理由フィルター)

art.memory.add_rejection

新しい拒否レコードを追加

art.memory.get_decision

IDでアート決定を取得

art.memory.find_decisions

決定の検索(ステータスフィルター)

art.memory.add_decision

新しいアート決定を追加

art.memory.get_style_history

完全なスタイル進化履歴を取得

QAツール(読み取り専用)

ツール

説明

art.qa.asset

単一アセットに対するQAチェックの実行(完全レポート)

art.qa.batch

複数アセットに対するQAチェックの実行(バッチレポート)

art.qa.gate

QAゲートチェック — 承認ワークフロー用の合格/不合格判定

art.qa.list_rules

定義付きで利用可能な全QAルールを一覧表示

art.qa.rule

IDで特定のQAルールの完全な定義を取得

art.qa.explain_failure

特定のルールがアセットに対して失敗した理由を説明

art.qa.history

QA実行履歴の取得(アセットIDでフィルタリング可能)

プロバイダーツール(読み取り+書き込み)

ツール

説明

art.provider.list

メタデータ付きで登録済みプロバイダーをすべて一覧表示

art.provider.get

特定プロバイダーの詳細メタデータを取得

art.provider.capabilities

プロバイダー機能の取得(操作、フォーマット、制限)

art.provider.health

プロバイダーのヘルスステータスを確認

art.provider.execute

プロバイダー経由でアート生成操作を実行

art.provider.cancel

実行中のプロバイダー操作をキャンセル

art.provider.operation

IDで操作ステータスを取得

art.provider.artifact

IDでアーティファクトの詳細と来歴を取得

プロダクションツール(読み取り+書き込み)

ツール

説明

art.production.plan

プロダクションプランの作成(実行前のプレビュー)

art.production.create

プロダクションジョブの作成(プラン+永続化、開始はしない)

art.production.start

プロダクションジョブの実行を開始

art.production.status

現在のジョブステータスを取得(概要)

art.production.inspect

完全なジョブ詳細を取得(イベント、試行、プラン)

art.production.resume

失敗したジョブを再開

art.production.cancel

実行中のジョブをキャンセル

art.production.attempts

ジョブの試行履歴を取得

art.production.approve

承認待ちのジョブを承認

art.production.list

すべてのプロダクションジョブIDを一覧表示

バージョニングツール(読み取り+書き込み)

ツール

説明

art.asset.current

アセットの正規(現在)バージョンを取得

art.asset.inspect_version

特定のアセットバージョンの詳細を取得

art.asset.history

アセットの完全なバージョン履歴を取得

art.asset.compare

同じアセットの2つのバージョンを比較

art.asset.provenance

承認レコードを含むバージョンの来歴を取得

art.asset.approval.request

候補アセットの承認をリクエスト

art.asset.approval.inspect

IDで承認レコードを取得

art.asset.approve

候補アセットを承認

art.asset.reject

候補アセットを拒否

art.asset.request_changes

候補アセットに変更をリクエスト

art.asset.promote

承認済み候補を正規バージョンに昇格

art.asset.rollback

正規バージョンを以前のバージョンにロールバック

art.asset.archive_version

正規アセットをアーカイブ

スタイルツールと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 tools
art.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

    C2.9/5.0

    Scored across 126 tools

    Disambiguation3/5

    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.

    Naming Consistency4/5

    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.

    Tool Count1/5

    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.

    Completeness5/5

    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

    ActivityStale
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables 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.
      1
      MIT
    • A
      license
      B
      quality
      C
      maintenance
      Enables 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.
      12
      113 npm
      3
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables 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
    • A
      license
      B
      quality
      C
      maintenance
      Enables 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.
      24
      MIT