Skip to main content
Glama

jsonui-render-mcp

Minecraft BedrockのJSON UI画面を描画するMCPサーバーで、リソースパックのレイアウトをデバイスなしで確認できます。

作成したパックとMojangの実際のUIファイルを読み込み、@の継承と$variablesを展開し、推測せずに未実装のものを報告します。

セットアップ

pip install mcp pillow

その後、setup_samplesツールを一度呼び出します。バニラのUI定義とテクスチャのためにMojang/bedrock-samplesをスパースクローンします。Mojangのものはここには同梱されていません。

環境変数:

変数

デフォルト

説明

BEDROCK_SAMPLES

~/.cache/bedrock-samples

上記のクローン

MINECRAFT_FONT

~/.aseprite-mcp/fonts/minecraft

font.json、ascii.pngを含むフォルダ

登録:

{
  "mcpServers": {
    "jsonui-render": {
      "command": "python3",
      "args": ["/path/to/jsonui-render-mcp/server.py"]
    }
  }
}

Related MCP server: Datapack MCP Server

ツール

ツール

説明

setup_samples

MojangのUIファイルをクローン

list_screens

パックダンプが定義する画面

render_screen

フォームのキャプションとアイコン付きで1つ描画

render_control

Mojang自身のものを含め、名前で任意のコントロールを描画

check_anchors

アンカールールをMojangのダイアログに適用

パックダンプ

render_screenはビルドが書き出すディレクトリを読み取ります:

controls.json          name -> control
screens.json           [{name, width, height, body, title, background, marker}]
textures/*.png         your own textures, flat
textures/nineslice.json   name -> border, as an int or [l, t, r, b]

知っておくべき2つのこと

  • layerは兄弟グループ内でのみ順序を決め、それ以上には影響しません。画面全体の深度と累積的な深度はどちらももっともらしく見えますが、どちらもデバイスと矛盾します。

  • アンカールールは次のとおりです。子のanchor_toポイントが親のanchor_fromポイントに重なり、その後オフセットが適用されます。check_anchorsはレンダラーをこのルールに従わせます。

まだできないこと

  • フォームのキャプションとテクスチャ以外のバインディング。

  • %cmは最大の子ではなくコンテンツサイズとして読み取られます。

  • アイテム画像はバニラのパスのみから取得されます。

デバイスが依然として正解です。両者が一致しない場合、こちらが間違っています。

Related MCP Connectors

Related MCP Servers