mcpField
T
texel-mcp

texel-mcp

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

texel-mcp について

texel-mcpは、Minecraftテクスチャ用のJSON仕様とツールチェーンで、AIエージェントや制作者を対象としています。仕様をPNGに変換し、問題箇所や修正ヒント、ピクセルアートの助言を含むレビューを返します。複数のテクスチャレイアウト、アニメーション、リソースパック検査にも対応します。

主な機能

  1. 01JSON仕様をPNGにコンパイル
  2. 02修正ヒント付きの問題レビュー
  3. 03レイヤー単位のパッチ適用
  4. 04PNGを編集可能な仕様に変換
  5. 05リソースパックの構築と検査
  6. 06レビューシートとプレビューの生成

活用シーン

  1. 01仕様からプレイヤースキンやゲームテクスチャを作成
  2. 02レビュー結果に基づくレイヤーの反復修正
  3. 03既存PNGを編集可能な仕様に変換
  4. 04Minecraftリソースパックの構築と検証

MCP 対応

MCPサーバーは、レンダリング、検証、パッチ、インポート、リソースパック処理のツールに加え、ドキュメント、サンプル、スキーマリソース、プロンプトを提供します。MCP Apps対応クライアントでは、インタラクティブな3Dプレビューを開けます。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"brunovncs-texel": {
"command": "npx",
"args": [
"-y",
"texel-mcp"
]
}
}
}
起動コマンドnpx -y texel-mcp

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

パッケージ
npmtexel-mcp0.9.2

ツール

16

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
filestringいいえ"spec"の代わりに、ワークスペース内の.jsonスペックファイルを指定します(例:"skins/knight.json")。呼び出しのたびにスペック全体を再送する必要がなくなります。その後、texel_patchがファイルを直接編集します。
specanyいいえJSONオブジェクトまたはJSONテキストとして指定するTexelスキンスペック(version 1)。形式:texel://docs/spec、スキーマ:texel://schema/skinspec.v1
focusarrayいいえこれらのパーツまたはグループのみのクローズアップも返します(例:["head"]、["arms"])。6面から大きく表示し、グレーの背景に配置します。顔、フード、または衣服を評価する場合に使用します。
includearrayいいえ追加出力。"sheet"はレビュー画像、"ascii"は画像を認識できないモデル向けのテキストレンダリングを追加します。

詳細

Texel

Texel は、Minecraft のテクスチャをコードとして作成するためのフォーマットとツールチェーンです。テクスチャは、パレットと、モデルの名前付きパーツや面(head.front、rightArm.sides@overlay)を指定した描画操作の順序付きリストからなる JSON 仕様です。コンパイラーは仕様を、ゲームが読み込む PNG に変換し、毎回同じバイト列を生成します。また、レビューでは問題点を JSON パス、修正のヒント、アートスコア、ピクセルアートに関するアドバイスとして返します。ツールは AI エージェント向けに構築されており、MCP サーバー、コマンドラインツール、Agent Skill を備え、Claude Code プラグインとしてもパッケージ化されています。

プレイヤースキン(クラシックとスリム)に加え、レイアウトを使ってほかの 68 種類のテクスチャにも対応しており、すべて Java Edition 1.21 のテクスチャレイアウトに準拠しています。対象には、57 種類のモブテクスチャ(ゾンビ、スケルトン、クリーパー、ウマ、ラマ、キツネ、ハチ、ウーパールーパー、イリジャー、ウォーデン、ゴーレムなど)、防具レイヤー、エリトラ付きのケープ、アイテム、上面と側面のファイルで構成されるブロック(原木、草、かまど)、植物、GUI スプライト、パーティクル、絵画が含まれます。テクスチャはアニメーションや発光に対応しており、複数の仕様をまとめてリソースパックを構築できます。Texel はそのリソースパックのチェックも行います。

Texel はオープンソース(MIT)で、現在開発中のバージョンは 0.9.0 です。フォーマットにはバージョン(version: 1)が付いていますが、マイナーリリース間で変更される可能性があります。すべてベータ版として扱ってください。サイトの texel.dev.br は、このツールチェーンで構築されています。

wizard のサンプルのレビューページ:正面、背面、両側面、その後にテクスチャ

上の画像は、この仕様に対してツールが返すレビューページです。これは wizard のサンプルから、ピクセルを変えない $schema、description、author、tags フィールドと、レイヤーの note コメントを除いたものです(どちらも同じ PNG にコンパイルされます)。

{
  "version": 1,
  "name": "Star Wizard",
  "model": "classic",
  "palette": {
    "skin": "#e0ac7e", "robe": "#2f4fb0", "gold": "#e8c34a", "beard": "#dcdcdc",
    "eyes": "#3a6fd9", "boots": "#4a3324", "star": "#fff1a8"
  },
  "layers": [
    { "op": "material", "target": "all", "color": "skin", "kind": "skin" },
    { "op": "material", "target": "body+arms", "color": "robe", "kind": "fabric" },
    { "op": "material", "target": "legs", "color": "robe~-1", "kind": "fabric" },
    { "op": "material", "target": "arms", "region": "hands", "color": "skin", "kind": "skin" },
    { "op": "rect", "target": "arms.sides", "region": "cuffs", "color": "gold" },
    { "op": "material", "target": "legs", "region": "boots", "color": "boots", "kind": "leather" },
    { "op": "face", "id": "face", "skin": "skin", "eyes": "eyes", "brows": "beard", "beard": "full", "beardColor": "beard", "mouth": "smile" },
    { "op": "hair", "id": "hair", "color": "beard", "style": "long", "fringe": "parted" },
    { "op": "lighting" },
    { "op": "rect", "target": "body.sides", "region": "belt", "color": "gold" },
    { "op": "points", "target": "body.front", "points": [[3, 8], [4, 8]], "color": "gold~-2" },
    { "op": "points", "target": "body.front+back", "points": [[1, 2], [6, 4], [2, 6], [5, 10]], "color": "star" },
    { "op": "points", "target": "legs.front", "points": [[1, 1], [2, 4]], "color": "star" },
    { "op": "material", "id": "hood", "target": "body.back@overlay", "y": 0, "h": 3, "color": "robe~-1", "kind": "fabric" },
    { "op": "rect", "target": "body.front@overlay", "region": "collar", "color": "gold~-1" },
    { "op": "rect", "target": "arms.sides@overlay", "region": "cuffs", "color": "gold~1" }
  ]
}

コンパイル後の 64 × 64 テクスチャは docs/images/wizard.png です。

インストール

MCP サーバーと CLI の実行には Node 20 以降が必要です。

Claude Code プラグイン。 このリポジトリはプラグインマーケットプレイスです。プラグインは単一のバンドル済みファイルから MCP サーバーを起動し(npm install は不要)、minecraft-skin-design スキルを追加します。ファイルはプロジェクトディレクトリに書き込まれます。

/plugin marketplace add Brunovncs/texel-mcp
/plugin install texel@texel

または、このプロンプトを使用してください。 Texel を使いたいエージェント(Claude Code、Codex、Cursor、Claude Desktop、または MCP に対応するほかのクライアント)に貼り付けると、MCP サーバーがインストールされます。

Install the Texel MCP server for me (https://github.com/Brunovncs/texel-mcp).

1. Check that Node.js 20 or later is installed (`node --version`). If it is not, stop and tell me.
2. Create the folder ~/.texel (%USERPROFILE%\.texel on Windows) and download the single-file
   server into it:
   https://raw.githubusercontent.com/Brunovncs/texel-mcp/main/plugin/server/texel-mcp.mjs
3. Check that it runs: `node <path to texel-mcp.mjs> --version` must print a version number.
4. Ask me which folder the skins should be saved in. If I don't care, skip the --workspace part
   below; files then go to the directory the client starts the server in.
5. Register it as an MCP server named "texel" in the client you are running in, using absolute
   paths:
   - Claude Code: claude mcp add --scope user texel -- node <path to texel-mcp.mjs> --workspace <folder>
   - Any other client: add this to its MCP configuration, keeping the servers already there:
     {"mcpServers": {"texel": {"command": "node",
       "args": ["<path to texel-mcp.mjs>", "--workspace", "<folder>"]}}}
6. Tell me what you changed and whether I need to restart the client. Once the tools are
   available, call texel_get_example and then texel_render on that example to confirm they work.

任意の MCP クライアント。 パッケージは npm の texel-mcp です。この設定は Claude Desktop、Cursor、VS Code、および一般的な mcpServers 形式を読み込むほかのクライアントで使用できます。

{
  "mcpServers": {
    "texel": {
      "command": "npx",
      "args": ["-y", "texel-mcp", "--workspace", "/absolute/path/skins"]
    }
  }
}

Claude Code では、同じ操作を claude mcp add texel -- npx -y texel-mcp で行えます。代わりにローカルビルドを実行する場合(ビルドとテストを参照)、クライアントの参照先を次のファイルに設定します。 "command": "node", "args": ["/absolute/path/texel-mcp/dist/texel-mcp.mjs", "--workspace", "/absolute/path/skins"]。plugin/server/texel-mcp.mjs は依存関係をバンドルした同じサーバーで、プレーンな node を使ってどこからでも実行できます。

CLI。 npx -y -p texel-mcp texel-cli build skin.json -o skin.png --sheet sheet.png を実行するか、ビルド後に node dist/texel.mjs ... を実行します。依存関係はありません。--help でコマンドを確認できます:build、review、patch、sheet、palette、family、import、diff、pack、check-pack、share、pull、live、format、layouts、init。終了コード:0 は完了、1 は仕様、ファミリー、またはパックにエラーあり、2 は不正な使用方法です。

すべての書き込みは、1 つのワークスペースディレクトリに行われます。ワークスペースは --workspace、$TEXEL_WORKSPACE、またはサーバーの起動ディレクトリで指定します。その範囲外に解決されるパスへのアクセスは拒否されます。docs/install.md に、スキルを手動でインストールする方法を含む詳細があります。

仕様

仕様には、palette(色の名前と、1 段階暗くて涼しい色になる robe~-1 のような派生色)、任意の legend(ピクセル行に使う、色ごとに 1 文字)と、順番に実行される layers があります。各レイヤーは 18 種類の操作のいずれかです。12 種類は基本的な描画操作(fill、rect、clear、pixels、points、line、gradient、pattern、noise、shade、copy、mirror)、1 種類は対称性を整える操作(symmetrize)、残り 5 種類は高レベルな操作です。高レベルな操作は、素材(布、革、金属、毛皮、ニットなどの表面)を描く material、face、hair、lighting、そしてバニラ GUI スタイルの隆起した枠やくぼんだ枠を描く bevel です。"emissive": true と指定された操作は、テクスチャの発光マップである <name>_eyes.png も同時に描画します。

レイヤーの target は、パーツ、面、レイヤーを指定するセレクターです。たとえば、head.front、legs.sides、body.front+back@overlay、arms.top@both のように指定します。座標は各面のローカル座標で、(0, 0) はモデルの外側から見たときの面の左上のピクセルです。描画は面の範囲内にクリップされます。複数の面に一致するセレクターでは、面ごとに操作が 1 回実行されます。たとえば、{ "op": "rect", "target": "legs.sides", "y": -2, "color": "boots" } は、両脚の全周にわたって下から 2 行を塗ります。名前付き領域(belt、cuffs、boots、hands、collar)は、行番号の代わりに使用できます。

レイヤー ID を指定したパッチで変更します({ "patch": [{ "do": "update", "id": "hair", "set": { "style": "ponytail" } }] })。これにより、修正時に変更対象のレイヤーだけを扱えます。同じパッチでアニメーションフレームも作成できます("animation": { "frames": [{}, { "patch": [...] }] } は、ストリップとその .png.mcmeta にコンパイルされます。パーティクルの場合はフレームごとに 1 ファイルになります)。また、ファミリーメンバーも作成できます。ファミリーは、パレットの入れ替え、レイヤーのオン・オフ、ID を使ったベースレイヤーへのパッチ適用、レイヤーの追加によって、1 つのベース仕様をバリアントや軸のマトリックス(チーム、ランク、派閥)に展開します。そのため、メンバーは単なる色違いではなく、異なるキャラクターにすることもできます。既存の PNG は、面ごとに 1 レイヤーを持つ編集可能な仕様にインポートできます。また、import --pixelize を使うと、コンセプトアートや HD スキンなどの画像を、レイアウトと同じサイズのテクスチャに変換します。

asset は、テクスチャの配置先となるリソースパック内の場所を指定します(モブの場合、置き換えるバニラファイルがデフォルトです)。pack は、仕様とファミリーからリソースパックを作成します。Minecraft のバージョン(1.21~1.21.11)を記した pack.mcmeta と、必要に応じて新しいアイテムやブロックに必要なモデル、ブロックステート、アイテム定義も作成します。check-pack は任意のリソースパックを検査します。検査対象は、フォーマットとバージョン、ファイル名、PNG、.mcmeta アニメーションと GUI スケーリング、エンティティのテクスチャサイズ、存在しないモデルやテクスチャへの参照、未使用のテクスチャです。

完全なリファレンスは docs/spec.md にあり、JSON Schema は schema/skinspec.v1.json にあります。docs/protocol.md では、エージェントが実行する想定の手順(概要、下書き、レンダリング、レビュー、パッチ適用、リリース)を説明しています。docs/art-guide.md では、64 × 64 で見栄えのよいスキンを作る方法を説明しています。同じページは、エージェントから texel_read_docs と texel://docs/{page} リソースを通じて利用でき、examples/ にある 19 個の例は texel_get_example から利用できます。

レビューの内容

レンダリングのたびにレビューが付属します。パレット名とフェイス名に誤字がある場合、回答の該当部分は次のようになります。

{
  "ok": false,
  "score": 38,
  "issues": [
    { "level": "error", "code": "bad-color", "path": "$.layers[1].color",
      "message": "unknown color or palette key \"clth\"", "hint": "did you mean \"cloth\"?" },
    { "level": "error", "code": "bad-selector", "path": "$.layers[2].target",
      "message": "unknown face \"frnt\"", "hint": "did you mean \"front\"?" },
    { "level": "warning", "code": "blank-face", "path": "head.front",
      "message": "the face (head.front) uses fewer than 3 colors and will read as blank",
      "hint": "draw eyes, brows and a mouth with a \"pixels\" op on head.front" }
  ]
}

エラーと警告には、原因となった JSON パスまたはフェイスが示され、ほとんどの場合、修正方法を示すヒントも含まれます。コードはリリース間で変わらず、その意味はdocs/spec.md(コード内の ISSUE_CODES)に記載されています。テストにより、リストがソースで報告される内容と一致することが確認されます。ブロックテクスチャでは、タイリングの状態も測定されます。コピー同士が接する箇所で、各辺がテクスチャ自体の隣接部分よりどれだけ強く目立つかを測定します(stats.seams、tile-seam)。score(0〜100)は技術的な品質のみを測定します。エラー、ベースレイヤーの穴、空白のフェイス、平坦な面、色数の少なさが対象です。レビューの art 部分には、7 つの測定項目による独自のスコアがあります。R2〜R7(フェイスの視認性、パーツ間の明度コントラスト、上からの光、表面の質感、デザインされた背面、奥行きのためのオーバーレイの使用)と色数が対象で、それぞれ測定内容の説明とヒントが付きます。art.advice には、テクスチャで見つかったピクセルアートの典型的なミス(ピローシェーディング、暗くなる一方の影、静電気のようなノイズ、キューブの角で途切れる帯)と、それが見られるフェイスが示されます。スコアには影響しません。next リストには、最初に修正すべき項目が優先順に並びます。

テクスチャがブリーフに合っているか(R1)は、測定されません。MCP ツールはレビューシート画像(上記のように、正面、背面、両側面、テクスチャ)を返すため、視覚機能を持つエージェントが自ら判断できます。また、視覚機能を持たないモデル向けにテキストレンダリングも返します。シートには、テクスチャの確認に必要なものが追加されます。3 × 3 にタイル表示されたブロックと 3D 表示、ゲームでの拡大・縮小方法に合わせてサイズ変更された GUI スプライト、すべてのアニメーションフレーム、黒地に表示された発光ピクセルです。MCP Apps に対応するクライアントでは、texel_render でインタラクティブな 3D プレビューも開きます。

ツール

MCP サーバーには 16 個のツール、ドキュメント、サンプル、スキーマ用のリソース、ui://texel/viewer MCP App、5 個のプロンプト(design_skin、design_texture、continue_skin、design_family、critique_skin)があります。

ツール機能
texel_render仕様をコンパイルしてレビューします(インライン、またはワークスペースの file)。レビュー、シート画像、オプションで一部パーツの拡大画像とテクスチャを返します。
texel_patchレイヤー ID を指定してパッチを適用し、結果をレンダリングします。ワークスペースの file を指定すると、ファイルを直接編集し、レビューだけを返すため、反復ごとに仕様を再送する必要はありません。
texel_validateエラーと警告のみを返します。画像はありません。
texel_saveテクスチャをゲーム内で使用するために必要なすべてのファイル(ブロックパーツ、アニメーションストリップと .png.mcmeta、パーティクルフレーム、_eyes)、.skin.json ソース、オプションでシートをワークスペースに書き込みます。
texel_liveライブセッションを開始します。127.0.0.1 で配信されるページに、レンダリングのたびに結果が表示されます(編集用に texel.dev.br studio からも参照できます)。
texel_share仕様を texel.dev.br に保存し、短縮リンクを返します。オフラインの場合は、自己完結型の長いリンクに切り替わります。
texel_pull共有リンクの仕様を読み込み、作業を続けられるようにします。
texel_render_familyファミリーを展開し、ラインナップ画像と各メンバーのスコアを返します。
texel_save_familyファミリーのすべてのメンバーと lineup.png を書き込みます。
texel_import_png既存のテクスチャ PNG を編集可能な仕様に変換します。pixelize を使うと、任意の画像を変換できます。
texel_palette参照画像の主な色を、色ごとの役割を含むパレットと凡例として返します。
texel_pack仕様、ファミリー、およびそれらを含むフォルダーからリソースパック(.zip またはフォルダー)を作成し、検証します。
texel_check_pack任意のリソースパックを検証します。各問題について、ファイル、JSON パス、修正のヒントを表示します。
texel_diff2 つの仕様で異なるフェイスとピクセルをマスク画像とともに示します。
texel_get_exampleバンドルされたサンプル仕様またはサンプルファミリーを取得します。
texel_read_docsドキュメントページを Markdown 形式で取得します。

仕組み

Minecraft テクスチャで難しいのは、絵を描くことではなくマップです。スキンの右腕は、64 × 64 のアトラス上に散らばった6つの四角形で構成され、その一部は反転しています。オーバーレイレイヤーは別の場所にある2組目の四角形で、ブタの胴体は横向きなので「上」は動物の背中にあたり、モブごとにそれぞれ異なるアトラスがあります。アトラスに直接ピクセルを書き込むエージェントは、マップを頭の中に保ちながら作業する必要があり、しかも間違いに気づけません。

Texel では、マップをコンパイラーが管理します。それぞれのレイアウトはデータであり、パーツはサイズと UV 原点を持つボックスとして定義され、どのパーツが反転されているか、回転しているか、透明部分として切り抜かれているかも指定されます。エージェントは面固有の座標で rightArm.front を指定し、コンパイラーがすべてのピクセルをアトラス上の位置に割り当てます。レビュー、シートビュー、3D プレビュー、import、diff は、すべて同じマップを使ってアトラスを読み取ります。これにより、エージェントが苦手とする空間的な作業が、得意とする記号的な作業へと変わります。つまり、パーツに名前を付け、色を選び、レイヤーの順序を決め、JSON の行を示すエラーに対応できます。

コンパイルは決定論的です。ランダム性があるのは noise と material だけで、どちらもシード付きのジェネレーターを使います(シードのデフォルトはレイヤーの位置です)。そのため、同じ仕様からはバイト単位で同一の PNG が生成されます。これにより、仕様を差分でレビューし、バージョン管理に保存して、ビルド時に再生成できます。

すべてのモブのレイアウトは、逆コンパイルした Java モデルコード(texOffs と addBox)と照合し、1.21.1、1.21.5、1.21.11 のバニラテクスチャを通して検証しました。バニラファイルの不透明なピクセルはすべて面上にあり、ビューにモブが表示される必要があります。レイアウトから除外されるわずかなピクセルは、各レイアウトの注記に記載されています(イースターエッグ、余分なピクセル、1.21.5 で別ファイルに移動したサドル)。

コードは src/core(コンパイラー、レイアウト、レビュー、ビュー、PNG と zip のエンコードおよびデコード、リソースパック。依存関係も DOM も不要)、src/mcp(サーバーと MCP App ビューアー)、src/cli、src/live(ライブセッションと更新チェック)にあります。MCP サーバーは @modelcontextprotocol/server と zod に依存します。CLI には依存関係がありません。

測定結果

AMD Ryzen 5 7600(12 スレッド)、Windows 11、Node 22.13.1 で、npm run measure (scripts/measure.ts)を使用して測定しました。1 つのプロセスで、同梱されている 19 個の各サンプルを 210 回コンパイルし、 最初の 10 回をウォームアップとして、残り 200 回の中央値を表に示しています。「コンパイル+PNG」は 仕様テキストからエンコード済み PNG までの処理です。「全体のレンダリング」は texel_render が計算するもので、コンパイル、アートチェックとアドバイスを含む全体レビュー、 レビューシート、および 2 つの PNG が含まれます。仕様サイズは、サンプルファイルを JSON.stringify で圧縮したものです。PNG は、ツールと同じく zlib レベル 9 でエンコードしています。アニメーション サンプルはすべてのフレームをコンパイルします。

サンプルレイアウトテクスチャ仕様(バイト)PNG(バイト)コンパイル+PNG全体のレンダリング
explorerplayer64 × 642 9581 2461.45 ms19.75 ms
knightplayer64 × 643 0061 0901.47 ms16.13 ms
robotplayer64 × 642 5371 4732.59 ms16.01 ms
astronautplayer (slim)64 × 643 1348651.29 ms18.41 ms
wizardplayer64 × 641 9082 9683.22 ms21.62 ms
cozyplayer (slim)64 × 641 6392 9493.07 ms20.74 ms
winged-pigplayer64 × 643 2722 4673.40 ms23.09 ms
miner-zombiezombie64 × 641 5182 1982.02 ms17.23 ms
creepercreeper64 × 321 1561 0580.98 ms11.45 ms
mud-pigpig64 × 641 9701 4772.01 ms16.60 ms
bronze-armorhumanoid (armor)64 × 321 6051 7191.66 ms13.38 ms
banner-capecape64 × 321 2361 3001.32 ms14.35 ms
ember-bladeitem16 × 161 0581600.10 ms4.21 ms
zebrahorse64 × 641 6052 3024.30 ms24.30 ms
sky-evokerillager (with _eyes)64 × 641 2373 1263.84 ms28.58 ms
ash-logblock_column32 × 161 2556660.47 ms11.49 ms
magma-pulseblock, 4 frames16 × 161 2754721.12 ms11.00 ms
stone-buttongui200 × 207351 5692.87 ms17.76 ms
sparkparticle, 4 frames8 × 89581100.10 ms1.33 ms

サンプル全体の中央値は、コンパイルとエンコードに 1.66 ms、全体のレンダリングに 16.6 ms です。 MCP サーバーの起動時間と、シート画像をクライアントへ転送する時間は含まれていません。

仕様は、生成する画像よりも小さいわけではありません。圧縮した仕様の中央値は PNG の 1.33 倍のサイズで、 735~3 272 バイトです。トークンあたり概算 4 バイトとすると、仕様 1 つあたり約 180~820 トークンです。これはトークナイザーで確認した値ではなく、JSON は通常、同じバイト数の散文よりも多くのトークンを 必要とします。この形式の目的はサイズではありません。PNG は圧縮されたバイナリ形式であり、エージェントが手作業で作成したり 編集したりすることはできません。一方、仕様の各行は、読み取り、パッチの適用、レビューが可能な判断です。

決定性は 3 つの方法で確認しました。1 つのプロセス内では、各サンプルを 210 回実行したすべての結果で バイト単位で同一の PNG が生成されました(サンプルごとに異なる SHA-256 は 1 つだけでした)。テストでは、 すべてのサンプルのテクスチャのハッシュを保持しているため、既存の仕様がレンダリングする内容に変更があると、テストスイートは失敗します。0.8.0 では、 パック済みの npm tarball からビルドしてインストールした CLI が、比較した 4 つのサンプル(explorer、knight、creeper、ember-blade)で 同じハッシュを生成しました。これらのテストはすべて 1 台の Windows マシンで実行しました。CI ワークフローでは Linux 上で同じテストスイートを実行しますが、オペレーティングシステム間でバイト単位の一致は直接比較していません。

バージョン 0.9.0 のその他の件数:仕様サンプル 19 個とサンプルファミリー 1 種(メンバー 6 個)、レイアウト 69 種に エイリアス 74 個(husk、stray、elytra、mooshroom、vindicator、elder_guardian、log など)、 操作 18 種、問題コード 116 個、14 ファイルに 180 件のテストです。

制限事項

  • Java Edition のみ対応しています。Bedrock のスキンと Bedrock のジオメトリには対応していません。
  • バニラのボックスモデルのみ対応しています。カスタム 3D モデルやジオメトリ、HD スキンには対応していません。モブとスキンのテクスチャはバニラと同じサイズです(アイテム、ブロック、植物は HD にできます)。
  • レイアウトは Java Edition 1.21 のモデルコードに準拠しています。UV マップは、逆コンパイルしたコードと 1.21.1、1.21.5、1.21.11 のバニラテクスチャを照合して確認しました。このプロジェクトでは、それらを使って作成したテクスチャをゲーム内で読み込んだことはありません。確認に使ったのはコードとバニラのファイルです。レイアウトのないモブ(魚、スニッファー、ブリーズ、クリーキングなど)とサドルは、まだペイントできません。
  • ビューと 3D プレビューでモデル化するのは 90° 回転のみです。ホグリンの頭、馬の首、ストライダーの毛のような傾いたパーツは、傾けずに描画するか、ビューから除外しています(どちらになるかは、各レイアウトの注記に記載されています)。
  • check-pack は 1.21~1.21.11 のリソースパック形式を認識します。構造と参照先を確認しますが、モデルやテクスチャがゲーム内でどう見えるかは確認せず、データパックも確認しません。
  • アートスコアと作成アドバイスはヒューリスティックです。人間の判断に照らして検証されておらず、テクスチャが依頼内容に合っているかどうかについても何も示しません。テクスチャの見栄えは、主に仕様を書くエージェントに左右されます。
  • texel_share、texel_pull、短縮リンクには texel.dev.br が必要です。共有リンクはそこに保存されます。長い #z= リンクは、サイトのストレージなしで機能します。ライブセッションは機能しません。ローカルサーバーが独自のページを配信し、セッションの編集にのみサイトのスタジオが必要です。TEXEL_SITE を設定すると、これらすべての接続先を別のオリジンに変更できます。
  • CLI とサーバーは 1 日に 1 回、texel.dev.br に version.json を問い合わせ、新しいリリースがあることをエージェントに知らせます。リクエストの待機時間は最大 1.5 s で、ユーザーや仕様に関するデータは送信されません。また、TEXEL_NO_UPDATE_CHECK=1 または CI が設定されている場合はスキップされます。

ビルドとテスト

Node 20 以降が必要です。

npm install
npm run typecheck        # tsc --noEmit
npm test                 # vitest: 180 tests, including spawned CLI and MCP server bundles
npm run build            # dist/texel-mcp.mjs and dist/texel.mjs (the npm package)
npm run build:plugin     # plugin/server/texel-mcp.mjs and its THIRD_PARTY_NOTICES.md
npm run measure          # the numbers in Measurements

npm ビルドでは、MCP SDK と zod を依存関係として保持します。Claude Code プラグインにはインストール手順がないため、プラグインのビルドではそれらを 1 つのファイルにバンドルします。このファイルはコミットされ、ソースと一致しなくなると CI が失敗します。ドキュメント、サンプル、スキーマ、ビューアーは両方のビルドに埋め込まれます。ビルド時に SITE_URL を指定すると、ビルド成果物とドキュメントに埋め込まれるサイトのオリジンが変更されます。

package.json、plugin/.claude-plugin/plugin.json、スキルの metadata.version のバージョンをまとめて更新し、そのバージョンの CHANGELOG.md セクションを追加してください。両方を確認するテストがあります。

ライセンス

MIT です。詳細は LICENSE を参照してください。プラグインの単一ファイルサーバーには、MCP TypeScript SDK(Apache-2.0、一部は MIT)と zod(MIT)がバンドルされています。それらのライセンスは plugin/server/THIRD_PARTY_NOTICES.md にあります。

公式の Minecraft 製品ではありません。Mojang または Microsoft の承認を受けておらず、両社とも関係ありません。

コメント

MCP は初めてですか?

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

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