レッドストーン回路の自動テストが失敗した際の切り分け・局所修正手順。CLI版の mc-cli get-blocks, interact-block, place-blocks を使ったデバッグ方法を定義する。
mc_mcp_place_blocks
place_blocks ツールの引数形式、PlaceRequest、フェーズ配列、connects/attaches の使い方。ブロック配置前に必ず読む。
含まれるファイル(1)
- SKILL.md6.6 KB
SKILL.md(原文)
インストールする前に、エージェントに与えられる指示の中身を確認できます。
Minecraft ブロック配置 Skill
このスキルは、Minecraft MCPサーバーの place_blocks ツールを使用して、指定した座標にブロックやエンティティを一括で配置するためのものです。
使用方法
MCPツール place_blocks を呼び出します。
引数
blocks: 配置するブロック情報を含む JSON 文字列(PlaceRequest形式のオブジェクト、またはフェーズ配列形式[PlaceRequest])。
入力形式 (JSON)
配置するブロックのデータは、blocks, entities, attaches, connects, fills のリストを持つオブジェクト(PlaceRequest 形式)です。また、**配列 [ {...}, {...} ] 形式(フェーズ)**も使用可能です。フェーズを使用すると、ブロック配置を複数の段階に分けて順番に実行でき、レッドストーン回路(ピストンの準接続やオブザーバーの更新検知など)で「配置順序」が重要な場合に有用です。フェーズ間には自動的に1tickの待機が入ります。
注意
- repeater、comparator、observer は向きを間違えやすいため、AGENTS.md の絶対制約に従い
connectsを使用して配置してください。src(入力元)とdst(出力先)を指定すると、向きが自動的に計算されます。src: repeater/comparator の背面、observer の観察面となる側dst: 信号の出力先- 信号は
src → dstの方向に流れます - 意図的に直接配置する場合のみ、
allow_direct_facing=trueを指定できます(推奨しません)
connects の向きの具体例
connects は「信号が src から dst へ流れる」ように、中間にブロックを配置します。配置されるブロックの facing は src 側を向きます(つまり、信号の入力元を向きます)。
例1: 東西方向のリピーター
入力元 src=(10, 64, 10) から出力先 dst=(12, 64, 10) へ信号を流したい場合:
{
"connects": [
{
"src": [10, 64, 10],
"dst": [12, 64, 10],
"component": "minecraft:repeater"
}
]
}
この場合:
- リピーターは
srcとdstの中間、つまり(11, 64, 10)に配置されます。 - リピーターの
facingはwestになります(src側である西を向く)。 - 信号は
src(10) → repeater(11) → dst(12)と東へ流れます。
例2: 南北方向のコンパレーター
入力元 src=(5, 64, 8) から出力先 dst=(5, 64, 5) へ信号を流したい場合:
{
"connects": [
{
"src": [5, 64, 8],
"dst": [5, 64, 5],
"component": "minecraft:comparator"
}
]
}
この場合:
- コンパレーターは
(5, 64, 6)または(5, 64, 7)に配置されます。 - コンパレーターの
facingはsouthになります(src側である南を向く)。 - 信号は
src(8) → comparator → dst(5)と北へ流れます。
例3: オブザーバー
オブザーバーの場合、src は観察面、dst は信号出力先です。src 側のブロックの変化を検知して、dst 側に信号を出力します。
{
"connects": [
{
"src": [10, 64, 10],
"dst": [10, 64, 12],
"component": "minecraft:observer"
}
]
}
この場合:
- オブザーバーは
(10, 64, 11)に配置されます。 - オブザーバーの
facingはsouthになります(src側である南を向く)。 (10, 64, 10)のブロックが更新されると、(10, 64, 12)側に信号が出力されます。
重要:
facingは「出力先」ではなく「入力元(src側)」を向きます。直感的に「信号の流れる方向 = facing」と考えやすいですが、これは間違いです。必ず「facing=src側」を意識してください。
[!IMPORTANT] よくある間違いと構造の厳密化 配置ツールの入力(
blocks引数またはJSONファイル)は、単なるブロックデータの配列[ {x, y, z, block}, ... ]ではありません。必ず以下のようにPlaceRequest形式のオブジェクト(キー名blocksを持つオブジェクト)としてラップするか、またはそのフェーズ配列にしてください。正しい単一フェーズ形式の例:
{ "blocks": [ { "x": 10, "y": 64, "z": 10, "block": "minecraft:stone" } ] }正しい複数フェーズ(配列)形式の例:
[ { "blocks": [ { "x": 10, "y": 64, "z": 10, "block": "minecraft:stone" } ] }, { "blocks": [ { "x": 10, "y": 65, "z": 10, "block": "minecraft:redstone_wire" } ] } ]
エンティティの配置
entities フィールドを使用すると、ブロックと同時にエンティティをスポーンさせることができます。各エンティティには以下の情報を指定します。
uuid: (任意) エンティティの一意な識別子。未指定時は自動生成されます。type: エンティティの種類(例:minecraft:boat,minecraft:minecart)。x,y,z: スポーン座標(小数)。yaw: (任意) 水平方向の向き(度数法)。pitch: (任意) 垂直方向の向き(度数法)。nbt: (任意) エンティティに適用するNBTデータ(例:{"Type": "oak"})。
{
"blocks": [
{ "x": 10, "y": 64, "z": 10, "block": "minecraft:water" }
],
"entities": [
{
"type": "minecraft:boat",
"x": 10.5,
"y": 64.5,
"z": 10.5,
"yaw": 90.0,
"nbt": { "Type": "oak" }
}
]
}
詳細なデータモデルの仕様については、block_design スキル を参照してください。
TIPS
- アタッチするブロック(
attaches)や繋ぐブロック(connects)は自動で向きが計算され配置されるため、JSON内で明示的に向きを指定する必要はありません。 - 既存のブロックを上書きして配置します。
- 配置完了後、設置したすべての座標に対して自動的にブロックアップデートが実行されます。これにより、更新が必要なブロックが即座に同期されます。
- 配置が完了すると、成功メッセージと配置されたブロック・エンティティのサマリーが返されます。
レビュー
まだレビューはありません。使ってみた感想をお寄せください。
同じリポジトリのスキル
概要と使いどころ
レッドストーン回路の自動テストが失敗した際の切り分け・局所修正手順。get_blocks, interact_block, place_blocks を使ったデバッグ方法を定義する。
agent 向けテキスト指示(skill / slash command / task プロンプト / CLAUDE.md 節 / コード生成プロンプト)を、バイアスを排した実行者に動かしてもらい、両面(実行者の自己申告 + 指示側メトリクス)で評価して反復改善する手法。改善が頭打ちになるまで回す。プロンプトや skill を新規作成・大幅改訂した直後、またはエージェントの挙動が期待通りにならない原因を指示側の曖昧さに求めたいときに使う。
Minecraft のレッドストーン回路や構造物を設計するための、JSON データモデルの仕様と設計ガイドラインです。
CLI版 mc-cli drop-items コマンドの使い方。ホッパーやコンテナに投入するアイテムを世界にドロップする時に読む。
CLI版 mc-cli fill コマンドの使い方。土台作成や範囲消去(air)を行う前に読む。