BlockHand
BlockHand(積木の手)— Minecraft Education MCP
AI に Minecraft Education Edition の中で手と足を与える:動作(Agent の移動、掘削、設置、耕作、運搬)、目(ブロックのセンシング、座標の照会、ゲームイベントの購読)、造物(10 種の幾何学形状とマスごとのブループリント)。
Minecraft Education の公式ドキュメントに記載された /wsserver 接続コマンド(/connect はエイリアス)を使用して操作します。プロセスへの注入も、ゲームファイルの改変も、画面認識も行いません。接続コマンドは公式インターフェースです。ただし後続の WebSocket メッセージプロトコルには公開された安定性の保証がないため、ゲームのアップデート後には再検証が必要です。
42 個のツール、2 つのリソース
216 件のユニットテストと統合テスト、ゲームを起動せずに行う 1 つの stdio/プロセスライフサイクル smoke、1 つの実機ライブ検証
アカウント、トークン、シークレットは一切不要。MCP runtime は loopback のみにバインドし、ゲームファイルやアーティファクトを書き込まない
1. 3 ステップで始める
ステップ 1: 各マシンでのインストールとビルド
cd /你的路徑/minecraft-edu
corepack pnpm install --frozen-lockfile
corepack pnpm run buildNode はプロジェクトの .nvmrc で指定された 22.23.1 である必要があります。pnpm は Corepack によって 11.17.0 に固定されています。Windows と Mac の両方でローカルに依存関係をインストールしてください。他の OS の node_modules をコピーしてこないでください。Minecraft Education の Mac における現在の最低要件は macOS 14 です。
ステップ 2: そのマシンで MCP を 1 回登録する
Codex/Claude Code/Gemini CLI/Grok CLI に対応しており、Windows と macOS の両方で同じです。
先に 2 つの絶対パスを取得する
登録時は必ず絶対パスを使う必要があり、node だけを書くことはできません。デスクトップ版の AI ツールは Finder/エクスプローラーから起動されるため、シェルの nvm、Homebrew、PATH を読み取れません。node と書くとターミナルではテストに通っても、デスクトップ版にすると起動に失敗します。しかもエラーメッセージは通常「server が応答しない」としか出ず、原因を特定しにくいです。
macOS:
node -p "process.execPath" # Node 絕對路徑
pwd # 專案絕對路徑(在 minecraft-edu 目錄下執行)Windows(PowerShell):
node -p "process.execPath"
(Get-Location).Path以下では <NODE> は Node の絶対パス、<REPO> はプロジェクトの絶対パスを表します。サーバーのエントリーポイントは常に <REPO>/dist/index.js です(Windows では <REPO>\dist\index.js と書きます)。パスに空白が含まれる場合は全体を引用符で囲んでください。
インストーラーを使う(4 つすべて対応、推奨)
corepack pnpm run setup:codex # 或 setup:claude / setup:gemini / setup:grok
corepack pnpm run doctor # 加 --client=claude 等可診斷其他家インストーラーは単に設定ファイルにコマンドを書き込むだけではなく、次のことを行います:
このマシンの絶対 Node パスを自動で入力するため、デスクトップアプリが nvm、Homebrew、shell PATH を読み取れるかどうかに依存しない。
書き込む予定の command/args/env を使って、実際の MCP initialize を先に 1 回実行し、42 個のツールがすべて揃っていることを確認してから永続的な設定に触る。古い dist、誤った launcher、実行不能な Node は、書き込み前に失敗する。
正しく登録済みの場合は何もしないので、再実行は安全。
同名だが互換性がない場合は停止して差分を列挙する。自動で remove/add はせず、他人の timeout、tool policy、別クローンの設定を上書きしないようにする。
各社の公式
mcp add/mcp removeサブコマンド経由でのみ書き込む。設定ファイルを手で編集しない——それでは各社自身のスキーマ検証と scope 解決を迂回してしまう。
削除は corepack pnpm run uninstall:codex(または uninstall:claude など)を使います。こちらにも誤削除防止があります:この作業ツリーのものと識別できない entry は拒否されます。
各クライアントの書き込み先と再起動の要件:
Client | 書き込み先 | その後 |
Codex |
| 完全に終了して再起動;デスクトップ版/CLI/IDE で共通 |
Claude Code |
| セッションを開き直す |
Gemini CLI |
| CLI を開き直す |
Grok CLI |
| CLI を開き直す |
読み取り戦略に違いがあります:Codex と Grok には
mcp list --jsonがあり、機械可読な出力を直接使えます。Claude Code と Gemini のlistは人間可読なテキストのみで env も含まれず、互換性を判断できないため、公式 CLI が書き込んだばかりの設定ファイルを読み取り専用で確認します。書き込みは常に CLI 経由です。
手動コマンド(インストーラーを使いたくない場合)
コマンドは同等ですが、絶対パスは自分で入力する必要があり、事前の initialize 検証や上書き保護もありません。
codex mcp add minecraft-edu --env MINECRAFT_EDU_WS_PORT=19131 -- <NODE> <REPO>/dist/index.js
claude mcp add minecraft-edu --scope user --env MINECRAFT_EDU_WS_PORT=19131 -- <NODE> <REPO>/dist/index.js
gemini mcp add minecraft-edu <NODE> <REPO>/dist/index.js --scope user --env MINECRAFT_EDU_WS_PORT=19131
grok mcp add minecraft-edu --scope user --env MINECRAFT_EDU_WS_PORT=19131 -- <NODE> <REPO>/dist/index.jsつまずきやすい違いが 3 つあります:
Gemini の command と args は位置引数で、名前の後に続けます。
--による区切りはありません。Gemini のデフォルトの scope は project で、グローバルに使うには
--scope userと明示する必要があります。Claude のデフォルトの scope は local(現在のディレクトリでのみ有効)です。
--scope projectはプロジェクトルートの.mcp.jsonに書き込まれ、repo と一緒に共有できます。クラス全体で共有するときはこれを使います。
手動で設定ファイルを編集する(インストーラーが使えない場合の代替)
Claude Code と Gemini CLI は JSON を使います:
{
"mcpServers": {
"minecraft-edu": {
"command": "<NODE>",
"args": ["<REPO>/dist/index.js"],
"env": { "MINECRAFT_EDU_WS_PORT": "19131" }
}
}
}Codex と Grok CLI は TOML を使います:
[mcp_servers.minecraft-edu]
command = "<NODE>"
args = ["<REPO>/dist/index.js"]
env = { MINECRAFT_EDU_WS_PORT = "19131" }Windows の補足
Node の絶対パスは通常
C:\Program Files\nodejs\node.exeですが、nvm-windows を使う場合はC:\Users\<你>\AppData\Roaming\nvm\v22.23.1\node.exeのようになります。JSON 設定ファイル内のバックスラッシュはエスケープが必要です:
"C:\\Program Files\\nodejs\\node.exe"。TOML では代わりにシングルクォートのリテラル文字列を使えます:command = 'C:\Program Files\nodejs\node.exe'。Minecraft Education が Microsoft Store の UWP 版の場合、loopback が Windows のアプリ分離によってブロックされるため、追加の
CheckNetIsolation LoopbackExemptの除外が必要です(第 8 節参照)。
登録後
その AI ツールを完全に終了して再起動します——デスクトップ版はウィンドウを閉じるのではなく、本当にプログラムを終了してください。その後、doctor で確認します(Minecraft には触れず、設定も変更しません):
corepack pnpm run doctorNode のバージョン、ビルド成果物、プラットフォーム要件、登録状態をチェックし、実際に登録されている command/args/env でもう一度 MCP initialize を実行します。設定が無効な Node を指しているのに見かけ上は正常となることを防ぎます。--json を付けると構造化された出力が得られます。各 CLI に直接問い合わせることもできます:
codex mcp list
claude mcp list
gemini mcp list
grok mcp listあるいは AI に mc_status を呼び出させてもよいです。connectCommand が返ってくれば server が起動できることを意味します。
マシンごとにそれぞれ 1 回ずつ登録する必要があります:Windows ノート、Mac、別のコンピュータでは Node とプロジェクトの絶対パスが異なるため、設定を互いにコピーすることはできません。同じマシン上では、同じツールのデスクトップ版/CLI/IDE は同じ設定を共有します。
ステップ 3: ゲーム内で手動で接続する
corepack pnpm run connectこの互換エントリーは操作方法を表示するだけで、Minecraft を開くことはなく、フォアグラウンドウィンドウを切り替えることも、キーボードをシミュレートすることもありません。Windows PowerShell の自動入力機能は削除されました。Mac でも AppleScript による自動化は追加していません。
方向を間違えやすいですが、ゲームが接続しに行く側で、MCP server が接続される側です。
現在の AI の会話で
mc_statusを呼び出し、返ってきたconnectCommandをコピーします。Minecraft Education を開き、ワールドに入ります(メインメニューに止まっているだけではダメです)。
ワールドで Cheats が有効になっている必要があり、操作者には Admin/OP 権限が必要です。
チャット欄に手動で入力します。例:
/connect 127.0.0.1:19131Connection established と表示されたら完了です。あとは AI に「前に中空のガラスの球を建てて」と言うだけです。
再接続するときは全部を打ち直す必要はありません:チャット欄で T を押して開き、↑ で直前のコマンドを呼び出して、Enter を押します。
初期バージョンには「約 60 秒アイドル状態が続くと必ず切断される」というバグがありました:ハートビートが WebSocket pong frame しか認識しないのに、Bedrock/Education のクライアントは pong を返さないため、健全な接続が自分のハートビートによって終了させられていました。現在は修正済みです(受信した任意のパケットで活性を判定し、アプリケーション層のプローブも併用)。アイドル状態で切断されることはもうないはずです。それでも切断される場合は、再ビルドした
dist/を実行しているかどうかを先に確認してください。
19131 を固定で覚えないでください:デスクトップ版、CLI、IDE、または複数の task が同時に起動している場合、後から起動した MCP は別の空きポートを取得することがあります。常に今操作したい task が報告したコマンドを使ってください。
Related MCP server: Minecraft MCP Server
2. 実機検証
まずはゲームを起動しない安全な診断を行います:
corepack pnpm run doctor
# 機器可讀版本
corepack pnpm blockhand doctor --jsondoctor は永続的な設定を変更せず、Minecraft も起動しません。隔離された loopback socket を一時的に作成し、launcher、42 tools、2 resources、stdio EOF、待受ポートの解放を検証し、Codex に実際に登録されている command/args/env でもう一度 initialize を完了させます。設定が無効な Node を指しているのに見かけ上正常となることを防ぎます。
ゲームが起動していて、ワールドが読み込まれ、チートが有効になった後:
cd gjlmotea/vibe/mcp/minecraft-edu && corepack pnpm run liveスクリプトは入力すべき /connect を表示し、接続を待ってから、完全なパスを一通り実行して各項目を PASS/FAIL で報告します:接続 → プレイヤー座標の読み取り → ゲーム内での発言 → 時刻の設定 → Agent の召喚 → センシング → L 字経路の移動 → プレビュー建造 → 中空ガラス球の建造 → 戻ってブロックが実際に存在するかを検証 → ブループリントの結合 → イベントの購読と受信 → ポリシーゲート → デモ建築の撤去。
ゲームアップデート後
ブロック読み取り(mc_read_block)は testforblock の失敗メッセージのテキスト形式に依存しています。その形式には公式の安定性保証はありません。Minecraft Education が自動更新で文言を静かに変更したり、ゲーム言語が繁体字中国語/簡体字中国語/英語以外に変わったりすると、この経路は機能しなくなります。
機能しなくなる様子は静かです:ツールが壊れるわけではなく、「読み取れない」と言い始めるだけです。そのため本プロジェクトではこれを毎回の live で実行する定期チェックにはあえてしていません——定期チェックは緑のランプを見て安心する習慣を育ててしまいます。本当に判断が必要なタイミングは「挙動が怪しくなったその場」であり、毎週決まったタイミングで実行するチェックではありません。
必要になったときに能動的に判断する形にしています:
mc_verify_reading { position: 任一座標 }これは最大 2 つのコマンドを送るだけで、ワールドに一切書き込みません。parseable を返します:
true→ 解析経路は正常で、mc_read_blockの結果は信頼できます。false→ プロトコルがドリフトしています。この場合、mc_read_blockはnullではなく常にエラーを返します(第 3 節参照)。そのため、「読み取れない」を「そこは空である」と誤認する人はいません。返ってくるrawはゲームの生のメッセージなので、src/domain/block-report.tsのPATTERNSと突き合わせれば、どのパターンを追加すべきか分かります。
これを実行したくなるサインが 3 つあります:
mc_read_blockがエラーを返し始めたが、ゲーム内ではそのマスに明らかにブロックがあるのが見える。ゲームを更新したばかりで、次に読み取りに依存する何か(採点、対称性分析)を行う予定がある。
ゲーム言語を変更した。
server の instructions にも同じ手がかりが入れてあるので、AI は挙動が怪しいときに自分でこのツールを見つけられます。あなたが覚えておいて促す必要はありません。
デフォルトではデモ建築を air に戻し、ワールドにゴミを残しません。残して見たい場合:
cd gjlmotea/vibe/mcp/minecraft-edu && node scripts/live-check.mjs --keepゲームを開く必要のない検証(型チェック、テスト、build、stdio ハンドシェイク、STDIN クローズによるポート解放とポート占有失敗を一度に実行):
cd gjlmotea/vibe/mcp/minecraft-edu && corepack pnpm run verify3. ツール面
接続とフォールバック(4)
ツール | 用途 |
| ブリッジの状態、接続コマンド、購読中のイベント、累計コマンド数。何か失敗したらまずこれを確認 |
| ゲームの接続をブロックして待機(1 回あたり上限 120 秒) |
| 単一行の raw slash コマンド。専用ツールがないときのフォールバック |
| 複数の raw コマンドを順番に実行 |
Agent — 手と足(10)
ツール | 用途 |
| Agent を召喚 |
| 指定した方向に N マス進む |
| 左右に 90 度ずつ回転 |
| 迷子になった Agent をプレイヤーのそばに呼び戻す |
| attack/destroy/till、連続実行可 |
| インベントリスロットからブロックを設置 |
| ドロップアイテムを拾う |
| count/space/detail/drop/dropAll/transfer |
| inspect/inspectData/detect/detectRedstone —— Agent の目 |
| 一連の動作プログラムを一度に送信し、結果を段階的に報告 |
Agent の方向は自分自身の向きに対する相対であり、世界の方角ではありません。
ワールド(13)
mc_set_block、mc_fill、mc_clone、mc_test_block、mc_read_block、mc_verify_reading、mc_compare_regions、mc_analyze_symmetry、mc_query_target、mc_summon、mc_world_settings(時間/天気/ゲームルール/難易度)、mc_structure(ストラクチャーの保存・読み込み)、mc_ticking_area。
mc_query_target は querytarget が返す JSON 文字列をパースします。これはプレイヤーまたは Agent の座標を取得する正規の方法です——建造する前にまずこれを呼びます。
読み取りには構造上の制限があります。ないものとして装うより、はっきり説明するほうがよいのです。 Education には「任意のブロックを読み取る」コマンドがないため、次のようになります:
mc_test_blockは○×問題です:先にブロック ID を推測する必要があります。mc_read_blockは推測不要です——空気をセンチネルとして問い合わせ、推測が外れるとゲームのメッセージが実際のブロックを教えてくれます。ただし返ってくるのはローカライズされた表示名(「土」)であり、ブロック ID(dirt)ではありません。mc_set_blockにそのまま渡すことはできません。パースできない場合、このツールはnullの成功応答ではなくエラーを返します——理由は後述。mc_verify_readingは上記のパース経路がまだ有効かどうかを能動的に検証します。授業の前に一度実行すればmc_read_blockの結果を信頼できるかどうか分かります。mc_compare_regionsは 1 つのtestforblocksで領域全体を比較します。マスごとの比較は数百マスを超えるとホスト側のタイムアウトに当たりますが、これは当たりません。maskedモードは元の空気を無視するので、「あるべきものがそこにあるか」を周囲に何が増えたかにかかわらず確認するのに適しています——生徒の作品を採点するのがまさにこの形です。
なぜパース失敗時にエラーを返し、null を返さないのか
このツールの利用者は AI であり、AI はシステムが壊れていると疑わないからです。
「成功」の応答に block: null が付いていると、「読み取れた、そこは空だ」と読まれやすくなります。すると AI はこの誤った認識に基づいて非常に自信を持って作業を続けます——例えば、生徒が 1 時間かけて建てた作品を空き地として上書きしてしまい、しかもあとでエラーの記録が何も残りません。人間は null を見ると変だと感じて立ち止まりデバッグしますが、AI はそうしません。
エラーはデータとして使い続けることができません。そこが重要なのです。
mc_verify_reading はもう半分を担います:そのマスが何かを事前に知る必要はありません——そのマスが空気なら基岩を問い合わせて(空気が基岩であるはずはなく、必ず不一致になる)失敗メッセージを引き出します。そのマスに何かあれば、最初の問い合わせで既にメッセージが得られます。どちらの経路でもメッセージが必ず得られ、最大 2 コマンドで、ワールドに一切書き込みません。
この防衛線はミューテーションテストで守られています:意図的にパース規則を壊すと、プローブとパーサーを合わせた 7 つのテストが必ず赤になります。
マスごとに領域全体を読み取りたい場合はビヘイビアパックと Script API を使ってください。本プロジェクトはあえてその道を選びません。学校のコンピュータにインストール手順が 1 つ増えてしまうからです。
同じ建物を繰り返し変更する
mc_structure の saveMode はまさにこのために設計されています:
モード | いつ使うか | ライフサイクル |
| AI が建物を変更するときに逃げ道を残したい——1 版保存しておき、壊したら load して戻す | ゲームを閉じると消える。ハードディスクにファイルは残らない |
| ユーザーが明確に残すと言ったとき(「これを覚えておいて」) | ワールドフォルダに書き込まれ、ゲームを閉じても残る |
バージョン管理は名前を付けることです:castle_v1、castle_v2。同名はそのまま上書きされるので、バージョンを変える前に名前を変えてください。
ゲームには**「保存済みストラクチャーを一覧表示する」コマンドがありません**。そのため、何を保存したかは名前で覚えるしかありません。ブリッジは今回の接続で保存した名前のリストを覚えており、mc_status に問い合わせると見られます——ただし、これはこのプロセスの間に限られ、再起動すると消えます(disk モードのファイルは残りますが、名前は自分で覚える必要があります)。
対称性分析——作品の採点
mc_analyze_symmetry は領域が鏡像対称かどうかをチェックし、非対称の場合にどのブロックが非対称かを指摘します。「いいえ」とだけ返すのではありません。
原理:testforblocks は平行移動の比較しかできず鏡像はできないため、まず structure save で領域を保存し、structure load の mirror パラメータで鏡像を一時領域に配置してから、2 つの領域を比較します。全体が通ればそのまま満点。通らない場合のみ n³ マスに細分してマスごとに比較し、スコアは一致したマスの割合です。
このツールは一時的にワールドへ書き込みます。流れは以下のとおりで、どのステップで失敗しても後始末のつかない状態は残しません:
分析領域を保存する——失敗したら中止(通常はチャンクが未読み込み)。
先に一時領域をバックアップする——バックアップに失敗したら中止し、決して鏡像コピーを配置しない。ワールドは無傷のまま。
鏡像コピーを配置して比較する。
成功・失敗にかかわらず一時領域を復元し、一時ストラクチャーを削除します。復元結果は
scratchRestoredに正直に報告し、失敗を隠しません。
一時領域は分析領域と重なってはいけません。重なると鏡像コピーが元の建物を上書きしてしまうからです。このチェックはどのコマンドを送信する前に行われます。
プレイヤーとフィードバック(7)
mc_teleport、mc_give、mc_gamemode、mc_effect、mc_player_action(kill/clear/xp/ability)、mc_message(say/tell/title/subtitle/actionbar)、mc_feedback(効果音/パーティクル)。
建造(4)
ツール | 用途 |
| 計算のみで実行しない:ブロック数、境界ボックス、fill バッチ数 |
| line/box/sphere/ellipsoid/cylinder/cone/pyramid/disk/torus/helix/curve/revolution。多くは hollow に対応 |
| マスごとのブループリントのプレビュー |
| 任意の形状:「座標 → ブロック」リストを渡し、同じブロックは自動で結合 |
イベント — 感知(4)
mc_events_catalog、mc_events_subscribe、mc_events_unsubscribe、mc_events_poll。
イベントはリングバッファに入り、カーソルで連続して読み取ります。dropped > 0 はポーリングが遅すぎて、一部のイベントが永久に読み取れなかったことを意味します。再接続後は自動的に再購読されます。
4. なぜ建造がフリーズしないのか
素朴なやり方では、ブロックごとに 1 回 setblock を送ります。半径 20 の球体は 33,000 マス以上あり、3 万回以上の WebSocket 往復になります——現実的にはハングアップと同じです。
BlockHand のパイプラインは次のとおりです:
形狀參數 → inside() 判定掃描 → 方塊座標集合
→ X 連段合併 → Z 矩形合併 → Y 立方合併(三階段 greedy)
→ 依 Bedrock 單次 /fill 上限 32768 拆批
→ 送出半径 8 の球体は 2,000 個余りのブロックが 200 本未満のコマンドに圧縮されます。また、結合結果は決定的です——同じ入力は常に同じバッチの集合になり、「結合後に覆われるブロックの集合は元の点の集合と完全に一致しなければならない」ことをテストで固定しています。多くも少なくもなりません。
中空形状は、形状ごとに中空用の数学を個別に書くのではなく、すべて「内部判定+外+外殻の隣接テスト」で実装されています。新しい形状を追加するときは inside() を書くだけで、中空の挙動は自動的に一貫します。
5. 安全境界
やらないこと
外部ネットワークには接続しない:
127.0.0.1でのみ WebSocket をリッスンします。MCP runtime はホストのファイルを書き込まない:artifact の出力パスは一切ありません。ユーザーが明示的に
setup:<client>/uninstall:<client>を実行したときだけ、そのクライアントの公式 CLI がローカルの MCP 設定を更新します。例外を 1 つ明確にしておきます:
mc_structureのsaveMode="disk"は、ゲームを通じてストラクチャーをファイルとして書き出し、Minecraft のワールドフォルダに保存します。これは MCP runtime がファイルを書くのではありませんが、実際にユーザーのハードディスクに何かを残します。そのためデフォルトはmemory(一時保存、ゲームを閉じると消える)であり、ユーザーが明確に残したいと言ったときだけdiskを使うべきです。また、ツールの応答は必ずどこに書き込んだかを伝えます——静かにファイルを残したりはしません。シークレットには触れない:プロジェクト全体に token、アカウント、認証情報はありません。
能動的に接続しない:ゲームが
/connectで入ってこない限り、すべてのツールは「こうすればよい」と分かるエラーメッセージを返し、静かに失敗することはありません。
mc_run_command のゲート
mcp/README.md のアーキテクチャ原則 4 は、任意実行の入口を拒否することを要求しています。ここでの判断は:slash コマンドのスコープは完全にローカルのゲームワールド内にあり、ホストのファイルシステム、プロセス、ネットワークには触れません。そのため、任意のコード実行と同義ではありません。本当にブロックすべきなのはブリッジを無効化する操作です。したがって、ポリシーは意図を推測するキーワードブラックリストではなく、構造的です:
単一行のみ許可——改行と NUL は直接拒否し、
\nで 1 つのリクエストを 2 つのコマンドに分割することはできません。wsserverとconnectは拒否——それらはゲームを別のエンドポイントに向けてしまい、以後すべてのツールが機能しなくなります。その他のコマンドは
read-only/world-write/wide-effectのリスクレベルを付け、MCP Host が annotation に基づいて人間の確認が必要かどうかを判断します。
コマンドラインに挿入される可能性のあるすべてのブロック ID、セレクター、状態文字列は、まずホワイトリストの正規表現を通し、空白を使って余計なパラメータを組み立てることを防ぎます。
教室向けガード(デフォルト有効)
上記の第 3 点は決定権を Host に委ねますが、それは単独開発の状況では成り立ちます。しかし、このプロジェクトの使用現場は教室です:
Host が自動承認に設定されている可能性があります——教師が授業を円滑に進めるために簡単にそうします。
生徒はその AI に話しかけられるだけで、コマンドを実行できるのと同じです。ブリッジを突破する必要はなく、モデルを説得するだけでいいのです。
誤用は raw コマンドすら必要ありません:
mc_player_actionは元々@aを受け付け、killは選択肢の 1 つです。そのため、raw コマンドだけをブロックするのは形だけの対策で、両方の経路をブロックする必要があります。
ルールは、教師に一言で教えられる形にしています:「人」に作用する動作は、必ず名前を名指ししなければならない。
経路 | 挙動 |
raw コマンド |
|
|
|
建造とワールド設定 | 完全に影響を受けない( |
「クラス全員を殺す」は、これによって 1 つの言葉から、一人ひとりを名指ししなければならないものに変わります。一方、合法的な教室管理(特定の生徒のインベントリを消すなど)にはまったく影響しません。
無効にするには MINECRAFT_EDU_CLASSROOM_GUARD=0 を設定します——エラーメッセージ自体がこのことを教えてくれるので、ツールが壊れたと誤解されることはありません。
商標
Minecraft Usage Guidelines に従い、第三者のツールは公式製品のように見えてはなりません。製品名 BlockHand は意図的に Minecraft の商標を含んでいません。minecraft-edu はこのプライベートワークスペース内の説明的なフォルダ名にすぎません。将来外部に公開する場合は、パッケージ名と公開される露出はすべて再検討する必要があります。
6. 設定
すべてにデフォルト値があり、.env は必須ではありません。
変数 | デフォルト | 説明 |
|
| リッスンアドレス。デフォルトはループバックのみにバインド |
|
| 優先リッスンポート。実際の値は |
|
| 優先ポートが他の MCP タスクに占有されている場合、OS が自動的に空きポートを割り当てる。 |
|
| 単一コマンドがゲームの応答を待つタイムアウト |
|
| アイドル時にキープアライブプローブ( |
|
| イベントリングバッファの件数 |
|
| 1回の建造ブロック数の上限。超えると拒否 |
|
| クラスルームガード:プレイヤーに作用するアクションは名前を明示する必要がある。raw コマンドは kill/kick/op/deop/clear/ability を拒否。 |
|
| エージェントプログラムの各ステップのデフォルト間隔 |
| 未設定 |
|
7. モジュールマップ
src/
domain/ 純資料與純邏輯,不依賴 MCP、ws 或 Node
contracts.ts 型別、已知事件名、Bedrock fill 上限
coordinates.ts 絕對/相對/局部座標格式化與邊界檢查
commands.ts 所有 slash 指令建構器 + 注入白名單
command-policy.ts raw 指令的結構性閘門
build/shapes.ts 十種形狀;inside() + 外殼鄰居測試
build/fill-planner.ts 三階段 greedy 合併 + 依上限拆批
ports/minecraft-connection.ts 連線抽象;測試靠它塞假件
adapters/ws-minecraft-connection.ts WebSocket 監聽、requestId 對應、事件緩衝、重連重訂閱
application/
blockhand-service.ts Agent 程式展開、querytarget 解析、事件
build-service.ts 規劃與執行分離(先讀後寫)
server/
create-server.ts server 實例與給 Host 的操作指引
schemas.ts 共用 zod 片段
tool-kit.ts 回應塑形與錯誤包裝
tools/ session/agent/world/player/build/event
composition.ts 組裝;可注入假連線
index.ts stdio 入口ドメイン層は WebSocket の存在をまったく知らないため、MCP ツールパイプライン全体を純粋なメモリ内フェイクでテストできます。tests/integration/mcp-client.test.ts の 16 のテストはゲームを起動する必要がありません。
8. 既知の制限
ワールドでチートを有効にする必要があります。そうしないと、ゲームはすべてのコマンドを拒否します。これは Minecraft のルールであり、バグではありません。
macOS で実機ライブ検証済み(Claude Code パス):2026-08-25 に macOS 上で Claude Code を介して
/connect、大量の読み書き(単一セッションで 45,000 ブロック以上、fill/setblock/testforblock/teleportを含む)、および切断・再接続の全フローを完了しました。まだ検証されていないのは「Finder から Codex Desktop を起動する」という起動パスです。GUI 起動は PATH と環境変数の継承方法が異なるため、それぞれ個別に実測する必要があります。Agent は Education Edition 専用で、通常の Bedrock 版にはこの機能はありません。
イベント名と
agentサブコマンドは Mojang によって正式に文書化されていません。公開された観察に基づいています。ゲームのアップデートで動作が変わる可能性があります。mc_events_subscribeはリスト外の名前を許可しますが、未検証としてマークされます。agent setitemのパラメータ順序は未確認です。現在専用ツールは作成されておらず、必要な場合はmc_run_commandを使用してください。@sは WebSocket コマンドでは常に解決できるとは限りません。ブリッジから送信されたコマンドにはエンティティ ID がないため、実際にquerytarget @sを試すとまったく応答がありません。そのためmc_query_targetはデフォルトで@p(最も近いプレイヤー)を使用し、liveも@p→@a→@e[type=player]の順に試して、各結果を報告します。大規模な建造は MCP ホストのリクエストタイムアウトに達する可能性があります。建造ツールは fill を1つずつ送信してゲームの応答を待ちます。実測では半径6の中空球(126個)で約13秒かかりますが、ゲームがビジーな場合はさらに長くなります。MCP クライアントのデフォルトタイムアウトは通常60秒で、それを超えるとホスト側で切断されます(ツール自体はまだ実行中です)。まず
mc_build_previewでfillBatchesを確認し、数が多い場合はバッチに分けて建造してください。各 BlockHand プロセスは依然として独自のリッスンポートを保持します。STDIO クライアントが閉じると、サーバーは Minecraft WebSocket を同期して閉じ、ポートを解放します。AI ツールのデスクトップ版が複数のタスクを同時に読み込む場合、またはデスクトップ版/CLI/IDE が並行して実行される場合、最初のものが優先ポートを取得し、残りは自動的に空きポートを取得します。常に現在のタスクの
mc_status.connectCommandを使用して、ゲームを実際に操作するインスタンスに接続してください。固定ポートが必要な場合は、各クライアントに異なるMINECRAFT_EDU_WS_PORTを設定するか、MINECRAFT_EDU_WS_PORT_FALLBACKを0に設定します。ハンドシェイク後の最初のコマンドはかつて必ずタイムアウトしていましたが、現在は修正されています。4回の独立した実機実行で再現しました。ゲームがサーバーに復号化器がセットアップされる前に暗号化フレームを送信し、ストリームのずれにより次のリクエストの応答が読み取れなくなりました。AES-CFB8 は自己同期するため、最初のコマンドのみに影響します。アダプタは現在、ハンドシェイク完了後に読み取り専用の
time query daytimeを自動的に送信してその損失を吸収し、結果を破棄するため、呼び出し側の最初のアクションは正常に動作します。stderr にはprimed post-handshake streamが記録されます。イベントは実際に発生したときのみトリガーされます。
BlockPlacedはプレイヤーが手動でブロックを置いたときのみ発行され、/setblockと/fillは対象外です。イベントを受け取るには、まずサブスクライブし、その後イベントを実際に発生させる必要があります。一部の応答の requestId がリクエストと一致しません(すべてゼロの ID が返されることが観察されています)。アダプタは「保留中のリクエストが1つだけ」の場合、その応答をそのリクエストに割り当て、stderr に推測によるものであると記録します。それ以外の場合、それらのリクエストは静かにタイムアウトし、呼び出し側は実際の失敗理由ではなく「応答なし」だけを見ることになります。
一度に維持するゲーム接続は1つのみ。新しい接続は古いものを置き換えます。
実機検証済みの環境:Minecraft Education 1.26.32.0(Win32 デスクトップ版)。Microsoft Store の UWP 版に切り替える場合、ループバックが Windows アプリの分離によってブロックされるため、追加の
CheckNetIsolation LoopbackExempt免除が必要です。macOS 14+ の受け入れマトリックスはagents/docs/macos-support.mdを参照してください。
9. ライセンス
このプロジェクトは MIT License の下で公開されています。商用利用を含め、自由に使用、変更、配布、再ライセンスできます。唯一の条件は、元の著作権表示とライセンス条項を保持することです。
ソフトウェアは「現状のまま」提供され、明示的または黙示的な保証は一切ありません。
Minecraft、Minecraft Education は Mojang Studios と Microsoft の商標です。このプロジェクトは両者とは提携関係になく、承認も受けていません。
Available Tools
42 toolsmc_agent_actAgent 攻擊/挖掘/耕地ADestructive
對指定方向做動作:attack 攻擊生物、destroy 挖掉方塊並收進背包、till 把泥土翻成耕地。repeat 可連續執行。Agent 是 Education Edition 專屬的機器人,必須先用 mc_agent_create 召喚。方向是相對 Agent 自身面向,不是世界方位。
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | ||
| repeat | No | ||
| delayMs | No | ||
| direction | No | forward |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| failed | Yes | |
| issued | Yes | |
| outcomes | Yes | |
| elapsedMs | Yes | |
| succeeded | Yes | |
| firstFailure | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal destructive behavior, but the description adds useful operational details beyond them: destroying puts blocks into the backpack, repeat allows consecutive executions, and direction is relative to the agent's facing. It also notes the agent is Education Edition exclusive and requires creation first. This gives an agent a clear behavioral model without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, with the main action semantics in the first sentence, then a note on repeat, a prerequisite, and a critical direction clarification. Each sentence earns its place, and there is no redundant repetition of the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema and the annotations already cover destructive intent, the description provides all necessary context for correct invocation: the prerequisite of mc_agent_create, the precise meaning of each action, the direction reference frame, and repeat behavior. An agent can confidently select and call this tool without needing additional information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does well by explaining the three action enum values (attack, destroy, till) and the meaning of direction (relative to agent facing). It also clarifies that repeat can be used for continuous execution. The delayMs parameter is not mentioned, but its meaning is self-evident from its name and schema defaults. Overall, it adds substantial meaning beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs three specific actions (attack, destroy, till) on a specified direction, distinguishing it from siblings like mc_agent_move or mc_agent_place. It even explains the effect of each action (e.g., destroy collects blocks into backpack) and clarifies the direction is relative to the agent's facing, leaving no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool: when the agent needs to attack, destroy, or till. It also includes a key prerequisite (must use mc_agent_create first) and explains direction semantics. However, it does not explicitly mention alternatives or when not to use it, but the action list itself implies the appropriate use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_agent_collectAgent 撿取掉落物A
撿取 Agent 附近的掉落物。item 留空代表全部撿。Agent 是 Education Edition 專屬的機器人,必須先用 mc_agent_create 召喚。方向是相對 Agent 自身面向,不是世界方位。
| Name | Required | Description | Default |
|---|---|---|---|
| item | No | 方塊 ID,例如 stone 或 minecraft:oak_planks |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | Yes | |
| elapsedMs | Yes | |
| statusCode | Yes | |
| commandLine | Yes | |
| statusMessage | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide no positive hints (all false), so the description carries the burden. It does add useful context: Agent is Education Edition-only, must be summoned first, and direction is relative to Agent facing. However, it does not disclose the mutating effect on the world or inventory, failure modes, or behavior when no items match.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with purpose, followed by parameter behavior, prerequisite, and orientation caveat. Every sentence contributes, though the direction note is only marginally relevant to a collect action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a simple 1-optional-parameter tool with an output schema present, the description is largely complete: purpose, optional parameter semantics, and the Education Edition/Agent-creation prerequisite are covered. Minor omissions like collection range or no-drop behavior do not seriously hurt usability.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and already defines item as a block ID with a null default, so baseline is 3. The description adds meaning beyond the schema by explaining that an empty item value collects all items, which is significant for the single parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 撿取 Agent 附近的掉落物 (collect dropped items near the Agent). This clearly distinguishes it from sibling tools like mc_agent_inventory, mc_agent_sense, or mc_give, whose purposes are different.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit usage context: item left blank means collect all, and the Agent must first be created with mc_agent_create. It also notes Education Edition exclusivity. It does not explicitly name alternative tools or state when not to use it, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_agent_create召喚 AgentAIdempotent
在玩家旁邊生成 Agent。已存在時重複呼叫是安全的。Agent 是 Education Edition 專屬的機器人,必須先用 mc_agent_create 召喚。方向是相對 Agent 自身面向,不是世界方位。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | Yes | |
| elapsedMs | Yes | |
| statusCode | Yes | |
| commandLine | Yes | |
| statusMessage | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true, and the description reinforces this by saying repeated calls are safe. It additionally discloses useful behaviors not in the structured fields: the Agent spawns beside the player, is Education Edition-exclusive, and the direction semantics are relative to the Agent's own facing rather than world orientation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief, front-loads the core action, and packs idempotency, edition exclusivity, prerequisite usage, and directional behavior into three sentences. It is not perfectly structured because the sentence '必須先用 mc_agent_create 召喚' is mildly self-referential, and the direction note is cryptic given that the tool has no input parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless, idempotent, non-destructive creation tool with an output schema, the description covers everything needed: what is created, where it appears, that it is repeat-safe, that it is Education Edition-only, and that it is the required prerequisite for Agent operations. No essential call context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema documents that fully, so the description has no parameter semantics to add. The directional note appears to describe Agent behavior rather than any input, and there is no schema gap needing compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb and resource: '生成 Agent' next to the player, and it identifies the Agent as an Education Edition-specific robot. It does not explicitly contrast this tool with sibling alternatives such as mc_summon, so it stops just short of the top score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives strong usage context by saying the Agent must be summoned with mc_agent_create first, and that repeated calls are safe. It also notes the Education Edition-only restriction, but it does not explicitly name alternative tools for non-Agent entities or state when not to use this tool beyond that restriction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_agent_inventoryAgent 背包操作A
對 Agent 背包做一件事:count 查槽內數量、space 查剩餘空間、detail 查物品細節、drop 丟出指定數量、dropAll 清空整槽方向、transfer 在槽之間搬移。Agent 是 Education Edition 專屬的機器人,必須先用 mc_agent_create 召喚。方向是相對 Agent 自身面向,不是世界方位。
| Name | Required | Description | Default |
|---|---|---|---|
| slot | No | count/space/detail/drop 需要 | |
| action | Yes | ||
| quantity | No | drop/transfer 需要 | |
| direction | No | drop/dropAll 需要 | |
| destinationSlot | No | transfer 需要 |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | Yes | |
| elapsedMs | Yes | |
| statusCode | Yes | |
| commandLine | Yes | |
| statusMessage | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false, so the description carries the burden. It reveals the direction relativity (important behavior) and lists actions, but it does not disclose consequences like whether dropping items removes them permanently or places them in the world, nor does it mention error handling or side effects. The term '清空整槽方向' is ambiguous about what happens to the items. Some transparency is provided, but significant gaps remain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (two sentences) and front-loads the action list. It avoids redundancy, though the first sentence is a long enumeration that could be structured more cleanly. Overall it is efficient and effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the return format is known. The description includes the prerequisite, direction semantics, and action list, covering key aspects for a multi-action tool with 5 parameters. It lacks discussion of error cases, permissions, or detailed side effects, but given the output schema and clear prerequisite, it is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 80%, which provides baseline, but the description adds value by mapping actions to parameters (e.g., 'count 查槽內數量') and clarifying that direction is relative to Agent's facing, not world orientation. This goes beyond the schema's enum listing. It also explains the necessity of mc_agent_create, aiding parameter interpretation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies the tool operates on the Agent backpack with a clear list of actions (count, space, detail, drop, dropAll, transfer), each with a brief meaning. It also explicitly states a prerequisite (Agent must be summoned with mc_agent_create) and clarifies a key distinction from world coordinates (direction relative to Agent's facing). This is a specific verb+resource description that differentiates it from siblings like mc_agent_act or mc_agent_move.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly states the prerequisite of using mc_agent_create and defines the tool's scope as Agent backpack operations. However, it does not explicitly mention when not to use it or name alternative tools for similar tasks. It provides clear context for invocation but lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_agent_moveAgent 移動A
讓 Agent 往指定方向走 steps 格,每格一條指令。被方塊擋住時該步會失敗但不會中斷後續。Agent 是 Education Edition 專屬的機器人,必須先用 mc_agent_create 召喚。方向是相對 Agent 自身面向,不是世界方位。
| Name | Required | Description | Default |
|---|---|---|---|
| steps | No | ||
| delayMs | No | 每步間隔,給遊戲時間完成移動 | |
| direction | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| failed | Yes | |
| issued | Yes | |
| outcomes | Yes | |
| elapsedMs | Yes | |
| succeeded | Yes | |
| firstFailure | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
因 annotations 全為 false,描述承擔了行為透明度的責任。它揭露了被方塊擋住時該步會失敗但不會中斷後續,以及每格一條指令的特性,超越了 annotations 提供的資訊。
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
三句話簡潔扼要:先講動作,再講失敗行為,最後講前置條件與方向定義。每句都有價值,無冗詞。
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
涵蓋了核心資訊:動作內容、失敗處理、前置條件及方向相對性。雖然未提及回傳值,但輸出 schema 存在,因此足夠完整。
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema 描述覆蓋率僅 33% (只有 delayMs 有描述),描述補充了 steps 代表的格數與 direction 的相對面向語意,有效填補了未描述參數的缺口。delayMs 則由 schema 提供。
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
明確的動詞與資源 (讓 Agent 走 steps 格),指出是 Agent 專用移動工具,並提及需先召喚,與 mc_agent_teleport 等兄弟工具明顯區隔。
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
明確指出前置條件 (必須先用 mc_agent_create 召喚),並解釋方向是相對自身面向而非世界方位,提供實際使用情境。但未直接說明與其他移動方式 (如 teleport) 的比較。
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_agent_placeAgent 放置方塊A
從指定背包槽(1–27)取出方塊放到指定方向。槽位空的時候會失敗。Agent 是 Education Edition 專屬的機器人,必須先用 mc_agent_create 召喚。方向是相對 Agent 自身面向,不是世界方位。
| Name | Required | Description | Default |
|---|---|---|---|
| slot | Yes | ||
| repeat | No | ||
| delayMs | No | ||
| direction | No | forward |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| failed | Yes | |
| issued | Yes | |
| outcomes | Yes | |
| elapsedMs | Yes | |
| succeeded | Yes | |
| firstFailure | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint: false, destructiveHint: false) indicate this is a mutating but non-destructive operation. The description adds meaningful behavioral details beyond annotations: it discloses that the tool fails if the slot is empty, that the Agent must be created first, and that direction is relative to the Agent's facing. These are operational constraints an agent needs to know. It does not mention repeat or delay behavior, but the annotations do not contradict the description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a compact three-sentence structure that front-loads the core action, then covers failure conditions, prerequisites, and a direction nuance. Each sentence delivers discrete, non-redundant information, and no space is wasted. This is appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists (so return values are documented) and annotations are present, the description covers the essential operational context: the prerequisite to create the Agent, the failure mode when the slot is empty, and the relative-direction semantics. It omits explicit mention of the repeat and delayMs behavior, but these are less critical for correct invocation. Overall, it is sufficiently complete for a moderately complex tool, with minor gaps around loop timing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% parameter descriptions, so the tool description must compensate. It adequately explains the 'slot' parameter (range 1-27, failure when empty) and the 'direction' parameter (relative to agent, six options). However, it provides no semantic clarity for 'repeat' and 'delayMs' parameters beyond what the schema's defaults and bounds convey. Since two of the four parameters are left unexplained, it only partially compensates for the missing schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('take a block from the specified inventory slot (1-27) and place it in the specified direction') with a specific verb, resource (agent's inventory slot), and destination (direction). It also distinguishes itself from related block-placement tools by specifying that it operates through the Agent robot, which is exclusive to Education Edition, and that it requires prior creation via mc_agent_create.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: it explicitly states the prerequisite that the Agent must be summoned with mc_agent_create, and it notes the critical behavioral distinction that direction is relative to the Agent's own facing, not the world orientation. However, it does not explicitly name or contrast with alternative block-placing tools like mc_set_block or mc_fill, leaving some ambiguity about when to prefer this tool over those.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_agent_program執行一段 Agent 程式ADestructive
把一連串 Agent 動作當成一支程式依序執行,這是讓 Agent 真正「做事」的主力工具:邊走邊鋪路、挖一條隧道、耕一整片田都用它。每步結果都會個別回報,可設定失敗即停。
| Name | Required | Description | Default |
|---|---|---|---|
| steps | Yes | ||
| delayMs | No | 每步間隔;null 使用預設 100 ms | |
| stopOnError | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| failed | Yes | |
| issued | Yes | |
| commands | Yes | |
| outcomes | Yes | |
| elapsedMs | Yes | |
| succeeded | Yes | |
| firstFailure | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the destructiveHint annotation, the description discloses sequential execution, per-step result reporting, and configurable stop-on-failure behavior. It does not detail the exact side effects or failure semantics, but adds meaningful behavioral context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with a clear front-loaded definition, followed by memorable use-case examples and the two most important behavioral switches. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the highly detailed union schema and existing output schema, the description covers the tool's core role, examples, sequencing, per-step output, and failure policy. It omits prerequisites such as agent existence and parameter details, but those are less critical for selecting and invoking the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description partially compensates for low schema coverage by clarifying that 'steps' are a chain of Agent actions and that stop-on-failure is configurable. It does not explain delayMs or the action object structures, leaving the rich item-level schema to carry most parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly defines the tool as executing a sequence of Agent actions as a program, with concrete examples such as paving while walking, digging a tunnel, and tilling a field. It distinguishes the batch/program nature from single-action siblings, though it does not explicitly name an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear context for when to use it: any multi-step, task-oriented Agent behavior, and calls it the main tool for making the Agent actually do things. It gives representative use cases, but does not explicitly say when to prefer single-action sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_agent_senseAgent 感測周遭ARead-onlyIdempotent
讀取 Agent 周圍狀態,不改變世界:inspect 看方塊種類、inspectData 看方塊資料值、detect 偵測該方向是否有實體方塊、detectRedstone 偵測紅石訊號。這是 Agent 的「眼睛」,行動前先看。
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | inspect | |
| direction | No | forward |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | Yes | |
| elapsedMs | Yes | |
| statusCode | Yes | |
| commandLine | Yes | |
| statusMessage | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description reinforces the non-destructive nature ('不改變世界') and adds specifics beyond the annotations: inspect returns block type, inspectData returns data values, detect checks for solid blocks, and detectRedstone checks redstone signals. These details align perfectly with readOnlyHint/idempotentHint and provide actionable behavioral expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no fluff. It front-loads the core purpose and safety property, then efficiently enumerates the modes, ending with a memorable usage metaphor. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the availability of an output schema and comprehensive annotations, the description covers all necessary context: what each mode does, that it is non-destructive, and when to use it. For a sensing tool with two enum parameters and no required fields, nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description takes on full responsibility for explaining the mode parameter. It explicitly defines each enum value, which is the critical parameter. The direction parameter values (forward/back/left/right/up/down) are self-explanatory standard directions, so no additional description is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reads the Agent's surroundings and does NOT change the world, listing four specific sensing modes (inspect, inspectData, detect, detectRedstone) with distinct purposes. This differentiates it from action-oriented siblings like mc_agent_act or mc_agent_move, making the tool's role unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase '這是 Agent 的「眼睛」,行動前先看' provides clear context: use this tool as a pre-action sensing step. While it doesn't explicitly compare against alternative read tools like mc_read_block or mc_query_target, it establishes a clear usage heuristic and when to invoke it (before acting).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_agent_teleportAgent 傳送到玩家身邊AIdempotent
把 Agent 叫到玩家旁邊。Agent 走丟、卡住或掉進洞裡時用這個回收。Agent 是 Education Edition 專屬的機器人,必須先用 mc_agent_create 召喚。方向是相對 Agent 自身面向,不是世界方位。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | Yes | |
| elapsedMs | Yes | |
| statusCode | Yes | |
| commandLine | Yes | |
| statusMessage | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral context beyond the annotations, noting the Agent is Education Edition exclusive, requires prior creation with mc_agent_create, and that direction is relative to the Agent's facing rather than world coordinates. The annotations (idempotentHint=true, destructiveHint=false) already cover the safety profile, so the description adds value without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences deliver the action, use cases, prerequisite, and a directional caveat without redundancy. Each sentence earns its place, and the main action is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters, an output schema present, and the description covering purpose, usage conditions, prerequisite, and a subtle behavioral detail, an agent has everything needed to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so the description does not need to explain parameter formats; the baseline of 4 applies since there is nothing to clarify.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource ('把 Agent 叫到玩家旁邊' – call the Agent to the player's side) and reinforces the purpose with the recovery use case ('Agent 走丟、卡住或掉進洞裡時用這個回收'). This clearly distinguishes it from sibling tools like mc_agent_move (targeted movement) and mc_teleport (general entity teleportation).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit conditions for use ('走丟、卡住或掉進洞裡時') and a prerequisite ('必須先用 mc_agent_create 召喚'), giving an agent clear context on when to invoke it. It does not explicitly name alternatives, but the use-case restrictions and prerequisite are sufficient for routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_agent_turnAgent 轉向A
讓 Agent 原地左轉或右轉,每次 90 度。times=2 等於轉身。Agent 是 Education Edition 專屬的機器人,必須先用 mc_agent_create 召喚。方向是相對 Agent 自身面向,不是世界方位。
| Name | Required | Description | Default |
|---|---|---|---|
| times | No | ||
| direction | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| failed | Yes | |
| issued | Yes | |
| outcomes | Yes | |
| elapsedMs | Yes | |
| succeeded | Yes | |
| firstFailure | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false and provide no real safety profile, so the description carries the behavioral disclosure burden. It discloses the core effect (rotate in place 90 degrees), the times=2 about-face behavior, and the relative-to-self orientation semantics. It omits failure modes or world interaction, but for a simple turn action this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: core action with degrees, times semantics, prerequisite, and coordinate-frame clarification. There is no filler, repetition of schema fields, or vague preamble.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only two parameters, an output schema present, and a simple behavior, the description covers the action, prerequisite, and orientation nuance. Nothing needed for a correct call is missing; the schema covers bounds and enums.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description compensates meaningfully: direction is clarified as relative to the Agent's own facing rather than world coordinates, and times is given a concrete behavioral meaning with the times=2 turn-around example. The schema already supplies min/max/default, so the description adds the missing semantic layer.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: '讓 Agent 原地左轉或右轉' (make the Agent turn left or right in place), specifies 90 degrees per turn, and thereby distinguishes itself from movement, placement, and collection siblings. The prerequisite and relative-direction note further sharpen what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly states a condition of use: the Agent must first be summoned with mc_agent_create, and it notes the Agent is Education Edition exclusive. It does not explicitly contrast with mc_agent_move or other orientation-affecting tools, but the in-place rotation semantics make the appropriate use case evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_analyze_symmetry分析建築的鏡像對稱程度ADestructiveIdempotent
檢查一塊區域是否左右(或前後)對稱,並在不對稱時指出哪幾塊不對稱。批改學生作品用這個:分數是對稱格子的比例,不是憑感覺。原理:testforblocks 只會平移比對不會鏡像,所以先用 structure save/load 的 mirror 參數做出鏡像副本,再跟原區比對。⚠️ 這會暫時寫入 scratch 指定的暫存區:流程一定先備份該區內容,比對完立刻還原;備份失敗就中止且不動世界。scratch 不可與分析區重疊,否則鏡像副本會蓋掉原始建築。區域受 structure 指令上限限制(64×384×64)。
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | 分析區的對角 | |
| from | Yes | 分析區的一角 | |
| mirror | No | 鏡射軸;x 檢查左右對稱、z 檢查前後對稱、xz 兩軸都要 | x |
| scratch | Yes | 暫存區最小角;會被覆蓋後還原,不可與分析區重疊 | |
| cellsPerAxis | No | 整體不對稱時的細分粒度;每軸 n 段共 n³ 格,每格一條指令 |
Output Schema
| Name | Required | Description |
|---|---|---|
| score | Yes | 0–100,對稱格子的比例 |
| mirror | Yes | |
| symmetric | Yes | |
| totalCells | Yes | |
| matchedCells | Yes | |
| commandsIssued | Yes | |
| asymmetricCells | Yes | |
| scratchRestored | Yes | false 代表暫存區沒還原成功,世界被留下改動 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the annotations by disclosing that the tool temporarily writes to the scratch region, backs it up before writing, restores it immediately after comparison, and aborts without modifying the world if backup fails. It also warns that overlapping scratch with the analysis region can destroy the original build and explains the underlying mirror-copy algorithm. This is excellent behavioral disclosure for a tool marked destructiveHint=true.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but efficient: it states purpose, method, safety behavior, and constraints in a few sentences. It is front-loaded with the primary function and then adds warnings. Slightly longer than strictly necessary, but every sentence carries useful information about behavior or limitations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's purpose, scoring semantics, algorithm, side effects, failure mode, safety restoration, overlap prohibition, and size limits. It also explains how asymmetric results are reported at a per-cell granularity. Combined with the output schema and annotations, nothing essential is missing for an agent to invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all five parameters. The description adds practical semantic value by explaining the roles of the symmetry axes (x/z/xz), the meaning of cellsPerAxis as per-axis subdivisions, and the critical constraint that scratch cannot overlap the analysis region. This extra context helps the agent choose parameter values correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('檢查'), resource (a region/building), and the core function: detecting whether a region is mirror-symmetric and identifying which sub-blocks are not. It also distinguishes the output as a quantitative score (proportion of symmetric cells) rather than a heuristic judgment, clearly differentiating it from a generic region comparison like mc_compare_regions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit use case: grading student builds with an objective symmetry score. It also provides important operational conditions, such as scratch must not overlap the analysis region and region size limits. It does not explicitly name alternative tools or state when not to use it, but the use-case guidance is concrete enough for an agent to select it appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_await_connection等待 Minecraft 連入ARead-only
阻塞等待遊戲連上橋接,最多等 timeoutSeconds 秒。逾時不算錯誤,只是回報 connected=false。適合在請使用者輸入 /connect 之後呼叫。
| Name | Required | Description | Default |
|---|---|---|---|
| timeoutSeconds | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| host | Yes | |
| port | Yes | |
| connected | Yes | |
| encrypted | Yes | |
| listening | Yes | |
| connectedAt | Yes | |
| bufferedEvents | Yes | |
| commandsIssued | Yes | |
| connectCommand | Yes | |
| connectionCount | Yes | |
| savedStructures | Yes | 本次連線存過的結構;遊戲沒有列出結構的指令,所以只能由橋接自己記 |
| subscribedEvents | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Even though readOnlyHint=true already signals safety, the description adds genuinely useful behavior: the call blocks, it has a timeout, a timeout is not an error, and it reports connected=false. This is exactly the kind of behavioral context an agent needs and is not present in annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences deliver the core behavior, the timeout semantics, and the intended invocation context with no filler. The most important fact—blocking wait with a maximum duration—is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with an output schema and read-only annotations, the description leaves no critical gap: it covers what the tool waits for, how long, how timeout is handled, and when to call it. The existing output schema supplies the return-structure detail that the description need not repeat.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description names timeoutSeconds and explains that it is the maximum wait in seconds. It also clarifies the semantic consequence of reaching that timeout (connected=false), compensating for the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a precise verb and resource: it blocks waiting for the game to connect to the bridge, with a timeout limit. This clearly distinguishes it from the sibling tools, none of which perform this bridge-connection wait. The added usage hint ('適合在請使用者輸入 /connect 之後呼叫') further anchors its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase '適合在請使用者輸入 /connect 之後呼叫' gives an explicit, actionable trigger for when to use this tool. It does not name alternatives or state when not to use it, so it stops short of a full when/when-not guide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_blueprint_preview預覽藍圖建造ARead-onlyIdempotent
只計算不動工:把一份逐格藍圖依方塊種類分組,回報總方塊數與合併後的 fill 批次數。
| Name | Required | Description | Default |
|---|---|---|---|
| entries | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| block | Yes | |
| shape | Yes | |
| bounds | Yes | |
| blockCount | Yes | |
| blockStates | Yes | |
| fillBatches | Yes | |
| savedCommands | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, and the description reinforces this by saying it only calculates and does not start work. It adds useful behavioral detail about grouping blocks by type and reporting merged fill batch counts. No contradiction with the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The entire description is one sentence with no filler. It front-loads the critical non-action guarantee ('只計算不動工') before stating the computation and outputs, making it easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Together with the read-only annotations, the rich input schema, and the output schema, the description provides enough context for correct invocation. A minor gap is that it does not specify how optional blockStates affect grouping or merged fill batch calculation, which could matter for blueprints that use block states.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage for the top-level 'entries' parameter is 0%, but the description identifies it as a per-cell blueprint, adding domain meaning. The item-level schema already documents position, block, and blockStates, though the description does not clarify whether blockStates participate in grouping, so compensation for the missing top-level description is only partial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a precise computation ('only calculates, does not start work') on a specific resource (a cell-by-cell blueprint) and names the exact outputs: total block count and merged fill batch count. This clearly distinguishes it from actual building tools like mc_fill or mc_build_blueprint.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase '只計算不動工' gives clear context that this is a planning-only tool and explicitly excludes performing construction. It does not name alternative sibling tools, but the boundary between calculating and building is clear enough for an agent to decide when to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_build_blueprint建造逐格藍圖ADestructiveIdempotent
蓋出任意形狀:直接給一份「座標 → 方塊」清單,相同方塊會自動合併成最少的 fill。幾何形狀請優先用 mc_build_shape;這個工具是給像素畫、文字、不規則造型或從外部資料轉來的模型用的。
| Name | Required | Description | Default |
|---|---|---|---|
| entries | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| plan | Yes | |
| failed | Yes | |
| issued | Yes | |
| outcomes | Yes | |
| elapsedMs | Yes | |
| succeeded | Yes | |
| firstFailure | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true, readOnlyHint=false. The description adds a non-obvious behavioral trait: identical blocks are automatically merged into the fewest possible fill commands, which affects execution cost and expectations. It does not contradict annotations. This extra context is valuable beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the primary action and input format, and the sibling routing is placed second. No redundant phrasing; every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Description plus schema and annotations cover what the tool does, when to use it, how input is structured, and the destructive/idempotent behavior. An output schema exists, so return values are accounted for. The only small gap is whether coordinates are absolute or relative, but Minecraft tool conventions and the plain integer schema make absolute coordinates the likely default, so this is not a serious omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description compensates by framing the sole parameter (entries) as a 'coordinate → block' list, which maps directly to the array of position/block pairs. It does not spell out the JSON structure or the optional blockStates, but the schema already provides those details, and the semantic framing is enough for an agent to form the correct input shape.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States '蓋出任意形狀' (build any shape) with a specific verb and resource, and immediately clarifies the input mechanism (coordinate→block list). It explicitly contrasts with sibling mc_build_shape, which is for geometric shapes, and lists its intended use cases (pixel art, text, irregular shapes, external data), so an agent can distinguish it from alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names the alternative tool mc_build_shape and gives a routing rule: prefer it for geometric shapes, use this for pixel art/text/irregular/external data. This is a clear when-to-use/alternative statement with no ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_build_preview預覽幾何建造ARead-onlyIdempotent
只計算不動工:回報這個形狀會用掉幾個方塊、邊界盒在哪、會拆成幾條 fill 指令。座標一律是絕對世界座標;不知道玩家在哪就先用 mc_query_target。建造會直接改變世界,動手前建議先用對應的 preview 工具看方塊數與邊界盒。
| Name | Required | Description | Default |
|---|---|---|---|
| block | Yes | 方塊 ID,例如 stone 或 minecraft:oak_planks | |
| shape | Yes | ||
| blockStates | No | 選用的方塊狀態,例如 ["stone_type":"granite"] |
Output Schema
| Name | Required | Description |
|---|---|---|
| block | Yes | |
| shape | Yes | |
| bounds | Yes | |
| blockCount | Yes | |
| blockStates | Yes | |
| fillBatches | Yes | |
| savedCommands | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnlyHint=true and idempotentHint=true. The description adds specifics: it reports block count, bounding box, and fill command count, and emphasizes absolute world coordinates. This goes beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero waste. The purpose is front-loaded, the coordinate caveat and tool suggestion are concise, and no irrelevant detail is included.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a preview tool with an output schema, the description adequately covers use, output highlights, and a coordinate prerequisite. It doesn't mention volume limits or edge cases, but those are likely in the output schema. It is sufficiently complete for an agent to call correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67% and the schema already documents shape variants and block states. The description adds no parameter-specific guidance (e.g., how to choose shape kind), so it stays at baseline without compensating for the uncovered parts of the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with '只計算不動工' (only calculate, don't build), a specific verb+resource that immediately distinguishes it from building tools. It then lists concrete outputs: block count, bounding box, and number of fill commands. This clearly differentiates it from siblings like mc_build_shape and mc_blueprint_preview.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It instructs to use mc_query_target when the player's location is unknown, and recommends using this preview tool before any build that changes the world. However, it doesn't explicitly name the building sibling (mc_build_shape) or state when NOT to use it, leaving some inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_build_shape建造幾何形狀ADestructiveIdempotent
直接在世界蓋出形狀:line 線、box 方體、sphere 球、ellipsoid 橢球、cylinder 圓柱、cone 圓錐、pyramid 金字塔、disk 圓盤/圓環、torus 甜甜圈、helix 螺旋。多數形狀有 hollow 可只蓋外殼。方塊座標會自動合併成最少的 fill 指令,所以蓋一顆半徑 20 的球只要幾百條指令而不是三萬條。座標一律是絕對世界座標;不知道玩家在哪就先用 mc_query_target。建造會直接改變世界,動手前建議先用對應的 preview 工具看方塊數與邊界盒。
| Name | Required | Description | Default |
|---|---|---|---|
| block | Yes | 方塊 ID,例如 stone 或 minecraft:oak_planks | |
| shape | Yes | ||
| blockStates | No | 選用的方塊狀態,例如 ["stone_type":"granite"] |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| plan | Yes | |
| failed | Yes | |
| issued | Yes | |
| outcomes | Yes | |
| elapsedMs | Yes | |
| succeeded | Yes | |
| firstFailure | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, and the description reinforces this ('建造會直接改變世界'). It adds valuable behavioral traits beyond annotations: block coordinates are automatically merged into minimal fill commands (efficiency behavior), and coordinates are always absolute world coordinates. It also notes that most shapes support hollow. No contradictions found.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and efficient: it starts with the core purpose, lists all shape kinds, mentions the hollow feature, explains the efficiency optimization, notes the coordinate system, and closes with usage guidance. Every sentence earns its place; there is no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (12 shape variants) and the presence of an output schema, the description covers the key points: shape types, hollow capability, coordinate behavior, efficiency, and safety advice. It doesn't enumerate every parameter because the schema does that, but it provides the behavioral context an agent needs to invoke it correctly. The only minor gap is not referencing the blockStates parameter, but that is adequately documented in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema itself provides rich description coverage (67%) with detailed descriptions for many shape-specific parameters (e.g., hollow, points, profile). The description adds the crucial note that coordinates are absolute world coordinates and that most shapes have a hollow option, which is not explicitly stated in the schema. The blockStates parameter is not mentioned in the description, but the schema covers it adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('蓋出形狀' - build shapes) and enumerates all shape kinds (line, box, sphere, etc.), making it easy to distinguish from sibling tools like mc_fill or mc_set_block. It also mentions the hollow option and the coordinate merging optimization, which further clarifies its unique role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit usage guidance: it advises using mc_query_target if unsure of player location, and recommends using the corresponding preview tool before building to check block count and bounding box. It also warns that building directly modifies the world, implying when to exercise caution. No exclusions are needed since the shape-building purpose is clear, but the alternative tools are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_clone複製一塊區域ADestructive
把 begin–end 的區域複製到 destination。cloneMode="move" 會把原地清空。適合把手工蓋好的樣板量產。
| Name | Required | Description | Default |
|---|---|---|---|
| end | Yes | ||
| begin | Yes | ||
| maskMode | No | ||
| cloneMode | No | ||
| destination | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | Yes | |
| elapsedMs | Yes | |
| statusCode | Yes | |
| commandLine | Yes | |
| statusMessage | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the mutation profile is known. The description adds value by disclosing the specific destructive trait 'cloneMode="move" 會把原地清空' (move mode clears the source), which is exactly the what-gets-destroyed context annotations cannot express. It does not mention that normal cloning also overwrites destination blocks, but the destructive hint covers the general risk.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with no filler: the operation, the key behavioral caveat, and the intended use case. The core purpose is front-loaded and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema and annotations cover return values and the safety profile, and the description covers the core flow plus the move-mode caveat. The main gap is that maskMode (a filter that meaningfully changes what gets copied) and the remaining cloneMode semantics are absent, so an agent invoking anything beyond defaults is left guessing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must compensate, and it partially does: it clarifies that begin–end defines the source region, destination is the copy target, and explains one cloneMode value ('move' clears the source). However, maskMode is never mentioned and the 'normal' and 'force' cloneMode values are left unexplained, leaving the compensation incomplete for a 5-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: '把 begin–end 的區域複製到 destination' (copy the region from begin–end to destination), naming all three core parameters and their roles. The operation is unambiguous and clearly distinct from sibling tools such as mc_fill, mc_set_block, and mc_compare_regions, none of which copy a region.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The final sentence '適合把手工蓋好的樣板量產' provides a concrete usage context: mass-producing hand-built templates. However, it names no alternative tools (e.g., mc_structure or mc_build_blueprint) and offers no when-not-to-use guidance, so it reaches clear context but stops short of explicit exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_compare_regions比對兩個等大區域是否一致ARead-onlyIdempotent
用一條指令比對整片區域,適合檢查學生蓋的東西跟參考範例是否相同。逐格比對在幾百格以上就會撞到 MCP host 逾時,這個不會。masked=true 會忽略來源區域裡的空氣,只檢查「該有的東西在不在」,不管周圍多了什麼;masked=false 則要求完全一致。兩個區域大小必須相同,destination 是目標區域的最小角。
| Name | Required | Description | Default |
|---|---|---|---|
| end | Yes | 來源區域的對角 | |
| begin | Yes | 來源區域的一角 | |
| masked | No | true 時忽略來源的空氣 | |
| destination | Yes | 目標區域的最小角 |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | Yes | |
| elapsedMs | Yes | |
| identical | Yes | |
| statusCode | Yes | |
| commandLine | Yes | |
| statusMessage | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds valuable behavioral detail beyond the annotations: it explains the timeout avoidance for large regions, the nested semantics of masked mode (ignoring air in source), and the size-equality requirement. This contextualizes the read-only and idempotent nature without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: it front-loads the core purpose, then provides usage guidance, behavior specifics, and a key constraint. Every sentence contributes meaningful information without redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers all essential operational aspects: what the tool does, when to use it, how masked mode alters behavior, the size requirement, and the meaning of destination. Since an output schema exists, return values do not need to be detailed here. The definition is complete for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the baseline is 3, but the description enriches understanding of key parameters: it clarifies that masked=false requires exact equality, masked=true only checks for presence, and that destination is the minimum corner. It also adds the constraint that both regions must be the same size, which is not explicit in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: comparing two equal-sized regions for consistency. It uses a specific verb and resource, and explicitly contrasts with per-block comparison, making its purpose unambiguous and distinct from siblings like mc_test_block or mc_analyze_symmetry.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool, such as checking student builds against a reference, and warns that per-block comparison times out for large regions. It implies the alternative is per-block checking but does not explicitly name a sibling tool, slightly reducing the guidance's precision.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_effect施加或清除狀態效果C
action="apply" 施加藥水效果,"clear" 清除全部效果。
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | apply | |
| effect | No | apply 需要,例如 speed 或 night_vision | |
| target | No | 目標選擇器(@a/@p/@s/@e/@r,可帶 [])或玩家名稱 | @s |
| seconds | No | ||
| amplifier | No | ||
| hideParticles | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | Yes | |
| elapsedMs | Yes | |
| statusCode | Yes | |
| commandLine | Yes | |
| statusMessage | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With all annotations false (no read-only, destructive, etc.), the description must carry the full behavioral burden. It mentions that 'clear' removes all effects, which is useful, but it does not disclose side effects like overwriting existing effects, persistence, or whether it modifies the world state. The coverage is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that quickly communicates the core behavior. It is concise without being verbose, but it is too sparse to be considered well-structured for a tool of this complexity. It omits necessary detail, so the brevity is a weakness rather than a strength.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter tool with only 33% schema coverage, no annotations, and no provided output schema, this description is severely inadequate. It does not explain valid effect names, how duration and amplifier work, what 'clear' does exactly, or any constraints. An agent would have insufficient information to call the tool correctly, especially without schema documentation for most parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema documentation covers only 'effect' and 'target' (33%). The description adds meaning for the 'action' parameter by explaining the semantics of 'apply' and 'clear', but it does not elaborate on 'seconds', 'amplifier', or 'hideParticles'. Given the low schema coverage, the description does not sufficiently compensate for the undocumented parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool applies or clears potion effects based on the 'action' parameter, identifying the exact operation and resource. It is specific enough to distinguish from generic siblings like mc_give or mc_summon, though it does not explicitly name an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There are no exclusions, prerequisites, or context about when applying effects is preferable to other commands. The description only states what the tool does, not when to choose it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_events_catalog列出可訂閱的事件名稱ARead-onlyIdempotent
回傳已知可用的事件名稱。Mojang 沒有正式文件化這份清單,所以訂閱清單外的名稱是允許的,只會被標記為未驗證。無副作用。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| eventNames | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly, idempotent, non-destructive), the description adds meaningful behavioral detail: Mojang has not officially documented the list, out-of-list names are permitted, and those names are marked as unverified. It also states there are no side effects, which reinforces the safe-read nature of the tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences with no filler: it states the purpose, discloses the unverified/official-documentation caveat, and confirms no side effects. Every sentence adds information an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only catalog tool with an existing output schema, the description is complete. It explains what is returned, the trustworthiness boundary of the list, and that calling it has no side effects. Nothing material is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema already covers this completely with an empty properties object. There are no parameter semantics for the description to add, so a baseline score of 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('回傳' / returns) and identifies the resource: known available event names for subscriptions. The title further clarifies it lists subscribable events, which distinguishes it clearly from siblings like mc_events_subscribe, mc_events_unsubscribe, and mc_events_poll.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The context is clear: an agent should call this tool to discover known event names before subscribing. It also cautions that the list is not officially documented and not exhaustive, implying it should not be treated as an authoritative closed set. It does not explicitly name alternatives, but the tool's catalog role is evident from its position among subscription-related siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_events_poll讀取已收到的事件ARead-only
取出游標之後的事件。第一次用 afterCursor=0,之後帶回上次回傳的 nextCursor 就能連續讀。dropped 大於 0 代表緩衝環繞、有事件永遠讀不到了,該提高輪詢頻率。無副作用。
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| eventName | No | 只取這一種事件 | |
| afterCursor | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| events | Yes | |
| dropped | Yes | |
| nextCursor | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description explains meaningful behavior: continuous reading via nextCursor, buffer wrap-around detection via dropped, and the implication that events may be permanently lost if dropped > 0. It also explicitly states '無副作用' (no side effects), which aligns with and reinforces the readOnlyHint annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three concise sentences with no filler. It front-loads the core action, then provides the essential cursor usage, and ends with the important dropped warning. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a polling tool with an output schema, the description provides enough context to use it correctly: initial cursor, continuation pattern, and failure signal. The remaining parameter details are present in the input schema, and the output schema covers return values. No critical operational context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is only 33%, so the description must compensate. It does explain afterCursor semantics well, including the first-call value and nextCursor continuation. However, it does not describe the limit parameter, and eventName is already covered by the schema. This is adequate but leaves one parameter's semantics to the schema's default and range constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: '取出游標之後的事件' (retrieve events after a cursor). It uses a specific verb and resource and is distinct from sibling tools like mc_events_catalog, mc_events_subscribe, and mc_events_unsubscribe by focusing on polling/reading already-received events.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives concrete usage instructions: use afterCursor=0 for the first call and pass the returned nextCursor thereafter. It also explains how to interpret the dropped indicator. It does not explicitly mention when to prefer this over sibling tools, but the cursor-based polling pattern is clearly conveyed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_events_subscribe訂閱遊戲事件AIdempotent
開始接收某類遊戲事件(例如 PlayerMessage 聊天、BlockPlaced 放置方塊、PlayerTravelled 移動)。事件會存進環形緩衝,之後用 mc_events_poll 取出。這是讓 AI「感知」玩家在做什麼的方式。重新連線後會自動重新訂閱。
| Name | Required | Description | Default |
|---|---|---|---|
| eventName | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| verified | Yes | |
| eventName | Yes | |
| subscribedEvents | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds meaningful behavior beyond the annotations: events are stored in a ring buffer, consumed via mc_events_poll, and subscriptions are automatically re-established after reconnection. This complements the idempotentHint annotation without contradicting it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences cover the purpose, behavior, follow-up operation, and reconnection semantics without redundancy. The most important information is front-loaded with clear examples.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter subscription tool with an output schema and annotations, the description covers the key aspects: what to pass, what happens to events, how they are retrieved, and reconnection behavior. It does not mention the event catalog, but sibling naming makes that discoverable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides no description for eventName and schema description coverage is 0%. The description partially compensates by giving examples of valid event types, but it does not specify where to find the complete list of event names or whether the value must match an exact catalog entry.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action (開始接收 / subscribe) targeting a specific resource (某類遊戲事件), with concrete examples like PlayerMessage, BlockPlaced, and PlayerTravelled. It clearly distinguishes this tool from the sibling poll tool by explaining the ring-buffer flow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: subscribe first, then retrieve events with mc_events_poll. It explains the purpose as letting the AI perceive player actions. It does not explicitly mention alternatives like mc_events_catalog or mc_events_unsubscribe, but the flow with mc_events_poll is explicit enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_events_unsubscribe取消訂閱遊戲事件AIdempotent
停止接收某類事件。已經收進緩衝的事件不會被清除。
| Name | Required | Description | Default |
|---|---|---|---|
| eventName | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| eventName | Yes | |
| subscribedEvents | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true and destructiveHint=false; the description adds meaningful context that already-buffered events are not cleared, which goes beyond the structured hints. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the primary behavior and a compact clarification about buffered events. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool with an output schema and idempotency annotation, the description covers the essential behavior and buffer caveat. The main gap is not referencing the event catalog or subscribe counterpart for valid eventName values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the sole parameter eventName is only documented as a string. The description says '某類事件' (a certain type) but does not explain valid event names or point to mc_events_catalog for the list, leaving the agent to guess.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('stop receiving a certain type of event') with a clear resource (game events), and the verb 'unsubscribe' distinguishes it from poll/subscribe/catalog siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The use case is implied by '停止接收' (stop receiving), but the description does not explicitly say 'use after mc_events_subscribe' or 'do not use to clear the buffer.' It lacks explicit when-to-use or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_feedback播放音效或粒子B
播一個音效或在座標生成粒子效果,用來給玩家即時的感官回饋。
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | 音效或粒子 ID,例如 random.levelup 或 minecraft:heart_particle | |
| kind | Yes | ||
| target | No | kind="sound" 時的聽眾 | @a |
| position | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | Yes | |
| elapsedMs | Yes | |
| statusCode | Yes | |
| commandLine | Yes | |
| statusMessage | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations are all false and provide no helpful hints, so the description carries the behavioral disclosure burden. It only states that sounds are played and particles are generated; it does not disclose scope of listeners, whether effects are transient, stacking behavior, or any side effects. It does not contradict the annotations, but adds little beyond the title.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence that front-loads the core action and purpose. There is no filler or unnecessary repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has four parameters, an output schema, and a large sibling set, yet the description is minimal. It is enough to understand what the tool does, but it lacks guidance on selecting it over similar tools and does not compensate for the sparse behavioral and parameter context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is about 50%, with id and target described but kind and position lacking top-level description. The description adds a useful semantic hint by associating coordinates with particle generation and sound with being played, but it does not explain the id format, the meaning of kind, or how target works.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the resource and action: play a sound effect or generate a particle effect at coordinates, with the stated purpose of immediate sensory feedback. It does not explicitly contrast with sibling tools, but the sound/particle focus makes the tool's role reasonably distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase '用來給玩家即時的感官回饋' gives an implied use case: use this when the agent wants to provide quick in-world feedback. However, it does not say when not to use it, nor does it point to alternatives such as mc_message, mc_effect, or mc_run_command that could serve similar purposes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_fill填滿一個長方體ADestructiveIdempotent
用同一種方塊填滿 from 到 to 的長方體。Bedrock 單次上限 32768 格;超過請改用 mc_build_shape,它會自動拆批。mode=hollow 只留外殼、outline 只留邊框。
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | ||
| from | Yes | ||
| mode | No | ||
| block | Yes | 方塊 ID,例如 stone 或 minecraft:oak_planks | |
| blockStates | No | 選用的方塊狀態,例如 ["stone_type":"granite"] | |
| replaceBlock | No | 只在 mode="replace" 時有效 | |
| replaceStates | No | 選用的方塊狀態,例如 ["stone_type":"granite"] |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | Yes | |
| elapsedMs | Yes | |
| statusCode | Yes | |
| commandLine | Yes | |
| statusMessage | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already include `destructiveHint=true` and `idempotentHint=true`. The description goes beyond those by specifying the Bedrock per-operation limit of 32768 blocks and the meanings of `mode=hollow` (only outer shell) and `mode=outline` (only border), which are not in the annotations. This adds valuable context, though it does not elaborate on other mode effects like `replace` or `destroy`.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose and immediately followed by the key usage constraint and mode clarifications. There is no filler or redundant repetition of schema or annotation content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists and annotations cover destructive and idempotent behavior, the description adds the most critical operational detail: the block count limit and the alternative tool for exceeding it, plus the hollow/outline mode semantics. It does not explain the full set of mode values (e.g., replace/destroy/keep), but those are standard Minecraft commands and partly described in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is around 57%. The description compensates for the `mode` parameter by explaining the hollow and outline options, and it clarifies that the `block` parameter applies the same block across the whole volume. However, it does not add detail for coordinate modes or the replace-related parameters, leaving some meaning to the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (fill) and resource (a cuboid from `from` to `to`) and clarifies that it uses a single block type. It also distinguishes itself from the sibling `mc_build_shape` by calling out the size threshold, which helps an agent separate the two tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says that when the fill exceeds 32768 blocks, the agent should use `mc_build_shape` instead, which automatically batches. This is a clear when-not/alternative rule, and it implies that `mc_fill` is appropriate for fills within the limit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_gamemode切換遊戲模式CIdempotent
把對象切成 survival、creative、adventure 或 spectator。
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | ||
| target | No | 目標選擇器(@a/@p/@s/@e/@r,可帶 [])或玩家名稱 | @s |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | Yes | |
| elapsedMs | Yes | |
| statusCode | Yes | |
| commandLine | Yes | |
| statusMessage | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations 已標示 readOnlyHint=false,描述「切換」也與此一致,但描述沒有額外揭露行為特質,例如改動目標遊戲模式後對遊戲的影響、是否需要權限、是否會覆寫既有模式等。idempotentHint=true 和 destructiveHint=false 的含義也未在描述中補充。
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
一句話即完整表達核心操作與可選模式,沒有冗詞,資訊密度高且直接切入重點。
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
此工具雖簡單,但考量到兄弟工具眾多且包含 mc_run_command 這種可能替代的通用指令工具,描述未提供任何使用情境或排除條件;同時也未說明切換遊戲模式的實際行為後果。搭配 annotation 與 output schema 仍不足以讓代理判斷何時該選此工具。
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema 對 target 有提供詳細說明,但 mode 參數只有 enum 沒有 prose 描述;描述中的「survival、creative、adventure 或 spectator」補足了 mode 的語意,且「對象」也暗示了 target 的用途。不過描述並未說明 mode 為必要參數或 target 預設為 @s,因此只算部分補償。
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
描述明確指出要對目標執行「切換遊戲模式」的動作,並列舉 survival、creative、adventure、spectator 四種模式,語意清楚且涵蓋資源與操作。但未特別與其他兄弟工具(如 mc_player_action 或 mc_run_command)做區隔,因此不到 5 分。
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
描述完全沒有提到何時應使用此工具、何時不應使用,也沒有指出與 mc_run_command、mc_player_action 等替代工具的選擇條件。使用者只能從工具名稱與語意自行推斷用途。
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_give給予物品B
給對象指定數量的物品。要讓 Agent 有東西可放,先 give 給玩家再交給 Agent。
| Name | Required | Description | Default |
|---|---|---|---|
| data | No | ||
| item | Yes | 方塊 ID,例如 stone 或 minecraft:oak_planks | |
| amount | No | ||
| target | No | 目標選擇器(@a/@p/@s/@e/@r,可帶 [])或玩家名稱 | @s |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | Yes | |
| elapsedMs | Yes | |
| statusCode | Yes | |
| commandLine | Yes | |
| statusMessage | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false and offer no safety or side-effect information. The description only states the action without disclosing any behavioral nuances, such as impacts on existing inventory, permission requirements, or error handling. For a mutation tool, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loads the main action, and the second sentence adds valuable workflow context without any fluff. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple give tool, the description plus schema is mostly adequate. The workflow hint is useful, and the output schema covers return values, but there is no mention of edge cases (e.g., max stack size, inventory overflow) or cautions when giving items to players vs. agents.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%, covering item and target, but data and amount lack schema descriptions. The tool description does not compensate for this, explaining none of the parameters or any additional meaning like data values or stacking behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (give), resource (items), and target (object), making the core action clear. However, it does not explicitly differentiate this tool from siblings like mc_run_command, which could also give items via a command.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The second sentence provides a concrete workflow: to give items to an Agent for placing, first give to the player and then to the Agent. This gives clear context for one use case, though it does not mention alternative tools or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_message在遊戲內顯示訊息A
say 全體聊天、tell 私訊、title/subtitle/actionbar 在畫面上顯示大字。教學或回報進度時用這個跟玩家說話。
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | 目標選擇器(@a/@p/@s/@e/@r,可帶 [])或玩家名稱 | @a |
| channel | No | say | |
| message | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | Yes | |
| elapsedMs | Yes | |
| statusCode | Yes | |
| commandLine | Yes | |
| statusMessage | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses meaningful behavioral detail beyond the annotations: say broadcasts to global chat, tell sends a private message, and title/subtitle/actionbar display large on-screen text. It makes the observable effect of each channel transparent without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single well-structured sentence that front-loads the tool's purpose and channel breakdown without any filler. Every part adds meaning, and the format is easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple messaging tool, the description covers the essential behavior and usage context, and an output schema is available for return-value details. It is not fully complete because target and message semantics are under-described, but the overall complexity is low and the main decision points are addressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, so the description should compensate for the undocumented 'message' parameter and clarify the 'target' parameter. It adds useful semantics for the 'channel' enum, but says nothing about what message content should look like or how target selectors/player names operate beyond the schema's terse description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that this tool sends messages to players and enumerates the exact channels (say, tell, title, subtitle, actionbar) with their distinct behaviors. It is unmistakably differentiated from sibling tools that perform actions, block edits, or queries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a concrete usage context: '教學或回報進度時用這個跟玩家說話' (use this to talk to players when teaching or reporting progress). It does not explicitly state when not to use it or name alternative tools, but the context is clear enough for an agent to know when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_player_action玩家雜項動作BDestructive
kill 殺死對象、clear 清空背包(可指定單一物品)、xp 給經驗、ability 開關 worldbuilder/mayfly/mute 權限。
| Name | Required | Description | Default |
|---|---|---|---|
| item | No | clear 可選 | |
| unit | No | points | |
| action | Yes | ||
| amount | No | xp 需要 | |
| target | No | 目標選擇器(@a/@p/@s/@e/@r,可帶 [])或玩家名稱 | @s |
| ability | No | ||
| enabled | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | Yes | |
| elapsedMs | Yes | |
| statusCode | Yes | |
| commandLine | Yes | |
| statusMessage | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=true and readOnly=false, which already signal mutating behavior. The description adds per-action details such as clear being able to target a single item and ability toggling permission flags. However, it does not disclose side effects like the irreversibility of kill, the ability to use negative xp amounts, or whether ability changes persist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense sentence that front-loads all four action types and their effects. There is no filler or redundant repetition of the schema. Each segment earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 7 parameters and 4 distinct behaviors, the description is terse. It covers the main action meanings but omits important operational details such as how unit affects xp, what enabled controls, and interaction with target selectors. The schema covers target and amount, and an output schema exists, but the combination is still not fully self-sufficient for an agent to use all options correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 43%, so the description must compensate. It does clarify the action enum and the meaning of the item parameter for clear. However, it leaves unit (levels vs points), enabled (boolean), and ability parameter semantics unstated, requiring the agent to guess from enum names or default values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly enumerates the four actions (kill, clear, xp, ability) and states what each does: killing a target, clearing inventory optionally for a single item, granting experience, and toggling permissions. This gives a specific verb and resource scope. It does not explicitly distinguish itself from sibling tools like mc_give or mc_effect, but the action list makes the tool's purpose immediately understandable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as mc_give, mc_effect, mc_gamemode, or mc_run_command. There are no exclusions, prerequisites, or routing hints. The agent must infer usage from action names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_query_target查詢實體位置與朝向ARead-onlyIdempotent
用選擇器查詢實體的座標、朝向與唯一 ID,回傳已解析的 JSON。這是取得玩家或 Agent 目前位置的正規做法——建造前先問這個,才知道要蓋在哪裡。預設用 @p(最近的玩家)而非 @s:WebSocket 送進來的指令沒有實體身分,@s 在部分情況下無法解析。
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | 目標選擇器(@a/@p/@s/@e/@r,可帶 [])或玩家名稱 | @p |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | Yes | |
| details | No | |
| elapsedMs | Yes | |
| statusCode | Yes | |
| commandLine | Yes | |
| statusMessage | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly, idempotent, and non-destructive behavior. The description adds meaningful behavioral context beyond that: output is resolved JSON, default target is @p rather than @s, and @s can fail in some WebSocket cases because the command has no entity identity. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences front-load the purpose and output, then the use case, then the default caveat. Every sentence adds essential information with no padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one optional parameter, full schema coverage, an output schema, and annotations already covering safety, the description covers everything needed to invoke correctly: what it returns, when to call it, and the selector default caveat.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the target parameter with 100% coverage, so the baseline is 3. The description adds value by explaining the practical semantics of the default: why @p is preferred and why @s is unreliable in this context, which helps an agent choose or accept the value correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb (查詢/query) with a specific resource (實體 entities) and names the exact outputs: coordinates, orientation, and unique ID, returned as resolved JSON. It also labels itself as the canonical way to get a player or Agent's current position, which separates it from the broader sibling set.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear context: call this before building to know where to place things, and it is the standard way to get player/Agent positions. It explicitly warns about the @s selector failing over WebSocket and explains the default @p choice, though it does not name an alternative tool or specify when NOT to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_read_block讀取某座標實際是什麼方塊ARead-onlyIdempotent
回報該座標實際上放著什麼,不需要你先猜。Education 沒有讀取方塊的指令,這裡是拿空氣當哨兵去 testforblock,猜錯時遊戲的訊息會把實際方塊講出來。注意:回傳的是在地化顯示名稱(例如「泥土」)而不是方塊 ID(dirt),不能直接餵回 mc_set_block;要用 ID 判斷請改用 mc_test_block。訊息格式沒有官方保證,解析不出來時 block 會是 null 並附上原始訊息,不會亂猜。
| Name | Required | Description | Default |
|---|---|---|---|
| position | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| raw | Yes | |
| data | Yes | |
| block | Yes | 在地化顯示名稱;解析不出來時本工具回錯誤而不是 null |
| isAir | Yes | |
| elapsedMs | Yes | |
| statusCode | Yes | |
| commandLine | Yes | |
| statusMessage | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint: false), so the description earns credit for enriching behavior beyond them: it discloses the implementation quirk (testforblock workaround because Education lacks a read command), the localized-name return semantics, and the failure contract (returns null plus raw message rather than guessing). It also warns that the message format is not officially guaranteed, which is exactly the kind of non-obvious behavior an agent needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, purpose front-loaded, and every sentence carries load: the core function, the implementation rationale, the return-type caveat plus sibling routing, and the failure/parsing behavior. It is on the longer side, but the length is justified because the tool's testforblock hack and unguaranteed message format are genuinely non-obvious and risk-mitigating for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema, full safety annotations, and a clear single positional parameter, the description covers everything essential: purpose, alternative tool, output semantics caveat, and failure handling. Minor gaps remain — no mention of world-boundary/loaded-area constraints or permission requirements — but nothing an agent needs to invoke the tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is reported at 0%, so the description carries the burden of parameter explanation, yet it says nothing about how to specify position, coordinate modes, or format. The gap is mitigated by the parameter being a self-evident coordinate triple and the schema's inline mode enum description (absolute/relative/local), making the missing compensation a moderate rather than severe deficiency.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb-resource pairing ('回報該座標實際上放著什麼' — reports what is actually at that coordinate) and immediately differentiates itself from siblings by warning that it returns localized display names, not block IDs, and explicitly routing ID-based checks to mc_test_block. The mechanism (air sentinel feeding testforblock) further clarifies what the tool is and is not.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use context ('不需要你先猜' — use this when you need ground truth rather than assumptions) and an explicit when-not-to-use rule with a named alternative ('要用 ID 判斷請改用 mc_test_block'). It also states a concrete downstream constraint: the localized-name output cannot be fed back into mc_set_block.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_run_command執行單一 slash 指令ADestructive
送出一條原始 slash 指令,涵蓋本 server 沒有專用工具的功能。只接受單行、不得換行串接,並拒絕 wsserver/connect(那會切斷本橋接)。前導斜線可有可無。
| Name | Required | Description | Default |
|---|---|---|---|
| command | Yes | 例如 "time set day" 或 "/give @s diamond 1" |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | Yes | |
| risk | Yes | |
| elapsedMs | Yes | |
| statusCode | Yes | |
| commandLine | Yes | |
| statusMessage | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint=true, and the description adds important caveats: single-line only, no newline chaining, and rejection of bridge-breaking commands. This goes beyond the schema and gives the agent critical context about safe invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no redundancy. The core purpose, constraints, and exclusions are all front-loaded, making the description easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with a full output schema and annotations covering destructive behavior, the description supplies all necessary behavioral constraints and usage boundaries. Nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers the single 'command' parameter 100% with an example. The description does not add parameter-specific details beyond the overall command-sending context, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool sends a raw slash command and explicitly scopes it to functionality without a dedicated tool, which distinguishes it from the many specialized sibling tools. The verb 'send' and resource 'slash command' are specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It tells the agent to use this when no dedicated tool exists, and explicitly forbids wsserver/connect commands that would sever the bridge. It does not name sibling alternatives like mc_run_commands, but the 'no dedicated tool' condition provides clear selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_run_commands依序執行多條 slash 指令ADestructive
照順序送出多條原始指令,每條都各自通過政策檢查。適合手動編排的巨集;大量方塊請改用 mc_build_shape 或 mc_build_blueprint,它們會自動合併成最少的 fill。
| Name | Required | Description | Default |
|---|---|---|---|
| delayMs | No | ||
| commands | Yes | ||
| stopOnError | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| failed | Yes | |
| issued | Yes | |
| outcomes | Yes | |
| elapsedMs | Yes | |
| succeeded | Yes | |
| firstFailure | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, but the description adds useful behavioral context: commands are raw, sent in order, and each one independently passes policy checks. This goes beyond the structured annotations and helps the agent understand execution semantics and safety implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no waste: the first states the core behavior, the second gives usage guidance and alternatives. The most important information is front-loaded and every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose, usage boundaries, and some behavioral nuance, and an output schema exists so return values need no explanation. However, it omits key parameter semantics, especially stopOnError and delayMs, which are relevant for a command runner and are not documented anywhere else. The presence of annotations and schema constraints mitigates this, so it is adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the burden of explaining parameters, but it only vaguely hints at the commands array via 'multiple raw commands'. It does not explain delayMs or stopOnError, leaving the agent to rely solely on parameter names, defaults, and constraints in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: sending multiple raw commands sequentially, each passing policy checks. It differentiates itself from related siblings by explicitly naming mc_build_shape and mc_build_blueprint as alternatives for bulk block operations and by the 'multiple commands' framing, distinguishing it from the singular mc_run_command.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says this is suitable for manually orchestrated macros, and provides a clear exclusion: for large numbers of blocks, use mc_build_shape or mc_build_blueprint instead. This gives the agent concrete decision criteria between this tool and its main alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_set_block放置單一方塊ADestructiveIdempotent
在指定座標放一個方塊。大量方塊請改用 mc_fill 或 mc_build_shape——逐格呼叫這個工具會非常慢。
| Name | Required | Description | Default |
|---|---|---|---|
| block | Yes | 方塊 ID,例如 stone 或 minecraft:oak_planks | |
| handling | No | ||
| position | Yes | ||
| blockStates | No | 選用的方塊狀態,例如 ["stone_type":"granite"] |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | Yes | |
| elapsedMs | Yes | |
| statusCode | Yes | |
| commandLine | Yes | |
| statusMessage | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already disclose destructive and idempotent behavior, and the description adds a useful performance warning beyond them. However, it does not explain the default replace/destroy/keep handling behavior or what happens to existing blocks at the target position, so behavioral transparency is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One focused sentence front-loads the core action and then gives the scale-based alternative. Every part earns its place and there is no redundant wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-block mutation tool, the description plus annotations and output schema cover the essential selection and invocation context. It could add handling semantics, but the missing details are partially available in the schema and annotations, so the overall picture is nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 50% schema description coverage, the description needed to compensate for undocumented parameters such as handling, but it merely restates 'specified coordinates' and 'one block'. It adds no explanation of handling, position modes, or block-state syntax beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('place one block at specified coordinates') and explicitly differentiates itself from mc_fill and mc_build_shape for large numbers of blocks. This lets an agent distinguish it from relevant sibling tools immediately.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit when-to-use rule: use for a single block, and switch to mc_fill or mc_build_shape for large quantities because per-block calls are slow. This is direct, actionable guidance with named alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_status讀取橋接與連線狀態ARead-onlyIdempotent
回報 WebSocket 橋接是否在監聽、Minecraft 是否已連入、遊戲內應輸入的 /connect 指令、已訂閱事件與累計指令數。任何工具失敗時先查這個。無副作用。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| host | Yes | |
| port | Yes | |
| connected | Yes | |
| encrypted | Yes | |
| listening | Yes | |
| connectedAt | Yes | |
| bufferedEvents | Yes | |
| commandsIssued | Yes | |
| connectCommand | Yes | |
| connectionCount | Yes | |
| savedStructures | Yes | 本次連線存過的結構;遊戲沒有列出結構的指令,所以只能由橋接自己記 |
| subscribedEvents | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description reinforces this with '無副作用' and adds useful behavioral context by specifying what status information is reported. No contradictions exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one dense sentence that front-loads the main reporting items and ends with a usage guideline. Every element earns its place, and there is no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 0-parameter status tool with an output schema and comprehensive annotations, the description provides enough context: what it reports, when to use it, and that it has no side effects. It doesn't explain the output structure, but that's covered by the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema is empty, so the baseline is 4. The description correctly omits any parameter details as none exist; there is nothing missing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb '回報' and lists the exact status items it reports: WebSocket bridge listening state, Minecraft connection, /connect command, subscribed events, and cumulative command count. This distinguishes it from sibling tools like mc_await_connection or mc_feedback.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly instructs to check this tool first when any tool fails ('任何工具失敗時先查這個'), providing a clear when-to-use context. It doesn't name alternative tools, but the condition is actionable and sufficient for an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_structure儲存或載入結構ADestructive
把一塊區域存成具名結構,或把已存的結構放回世界。這是把 AI 蓋好的東西保存、量產、帶到別的世界的官方途徑。
saveMode 要照使用者的意圖選,不要一律用同一個:
memory(預設)=這次連線內的暫存。AI 反覆修改同一棟建築時用這個:想留退路就存一版,改壞了 load 回來。關掉遊戲就消失,不會在硬碟累積檔案。disk=使用者明確表示要保留時才用(「幫我記住這棟」「存起來下次還要用」)。它會寫成檔案存進遊戲的世界資料夾,關掉遊戲也還在——但那是真的在使用者硬碟上留東西,不要在他沒說要保留時擅自寫入。
版本管理就是取名字:castle_v1、castle_v2。同名會直接覆蓋,改版本前先換名字。遊戲沒有「列出已存結構」的指令,所以存過什麼只能靠名字記——本次連線存過的名單可以問 mc_status。
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | save 需要 | |
| from | No | save 需要 | |
| name | Yes | 版本就靠這個區分;同名會覆蓋 | |
| action | Yes | ||
| saveMode | No | memory=暫存(預設);disk=寫進硬碟,只在使用者明確說要保留時用 | memory |
| destination | No | load 需要 | |
| includeEntities | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | Yes | |
| elapsedMs | Yes | |
| statusCode | Yes | |
| commandLine | Yes | |
| statusMessage | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the destructiveHint annotation, the description discloses that disk mode writes actual files to the game world folder on the user's hard drive, persists after closing the game, and should not be used without explicit user request. It also explains that memory mode disappears on shutdown and that same-name saves overwrite silently. These are exactly the behavioral traits an agent needs to avoid destructive mistakes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is longer than average but every section earns its place: purpose, mode selection, persistence consequences, and versioning rules. The formatting with bolded headers and bullet-like lines makes it easy to scan, and the most safety-critical warning about disk writes is prominently placed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and input schema descriptions covering coordinate modes and required parameters, the description covers most operational context: when to use memory vs disk, how versioning works, and what happens on overwrite. The main gap is includeEntities, which has a default but no guidance on when an agent should enable it. Overall it is nearly complete for a destructive-capable tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds significant meaning to saveMode and name that the schema only gestures at: memory vs disk semantics, user-intent-based selection, and versioning via names. It also communicates the action-dependent coordinate roles indirectly. However, includeEntities is left undocumented in both the schema and the description, and parameter coverage is only 71%, so the description does not fully close the gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: saving a region as a named structure or loading it back into the world, and positions it as the official path for preserving, mass-producing, and transporting AI-built structures. It does not explicitly differentiate from siblings like mc_clone or mc_blueprint_preview, so it lacks explicit sibling contrast, but the core purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives strong, decision-oriented guidance for saveMode: memory for session-scoped iteration and disk only when the user explicitly asks for persistence. It also warns about same-name overwrites and points to mc_status for listing session saves. It does not explicitly discuss when to use this tool versus alternatives such as mc_clone, but it provides clear context and practical constraints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_summon生成生物或實體A
在指定座標生成一個實體,可加名牌。position 留空則生在指令發起者位置。
| Name | Required | Description | Default |
|---|---|---|---|
| entity | Yes | 實體 ID,例如 cow 或 minecraft:villager | |
| nameTag | No | ||
| position | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | Yes | |
| elapsedMs | Yes | |
| statusCode | Yes | |
| commandLine | Yes | |
| statusMessage | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no behavioral annotations, the description carries the transparency burden. It does disclose the core effect (spawning an entity) and the position/name-tag defaults, but it does not mention permissions, duplicate-entity behavior, or any broader world-modifying side effects, leaving some behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact sentence front-loads the main action, then covers the two optional behaviors. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter tool with an output schema and detailed entity/coordinate-mode info already in the schema, the description covers the essential defaults and optional name tag. The only missing context is permission-level or operational caveats, which are not critical for basic invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33%, so the description must compensate. It does: it clarifies position defaults to the caller when omitted and that nameTag is optional. The schema still handles the entity ID example and coordinate mode, so the description adds meaningful value without duplicating the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: '在指定座標生成一個實體' (spawn an entity at specified coordinates), and adds the optional name tag. This clearly separates it from sibling tools like mc_set_block (blocks) and mc_give (items), so an agent can select it without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives one useful invocation rule: leaving position empty spawns at the command issuer's location. However, it never states when to prefer this tool over alternatives or when not to use it, so the usage guidance is mostly implied by the tool's purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_teleport傳送玩家或實體BIdempotent
把選擇器指定的對象傳送到座標。target 預設 @s 是執行指令的玩家。
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | 目標選擇器(@a/@p/@s/@e/@r,可帶 [])或玩家名稱 | @s |
| destination | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | Yes | |
| elapsedMs | Yes | |
| statusCode | Yes | |
| commandLine | Yes | |
| statusMessage | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already classify this as non-read-only, idempotent, and non-destructive, and the description is consistent with that. It adds no extra disclosure about permissions, chunk-loading, or failure modes, but the annotations lower the burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the action front-loaded and no filler. Slightly under-specified for the nested destination/mode structure, so not a perfect 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple teleport tool with an output schema and annotations covering safety/idempotency, the core invocation is understandable. The main gap is lack of routing guidance among teleport-related siblings, and coordinate mode semantics depend entirely on the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds the useful note that target defaults to the executing player and frames the target as a selector, but it largely repeats schema info. With 50% schema coverage, x/y/z are left to inference, though the mode enum in the schema covers coordinate semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a concrete verb (傳送) and resource (selector-specified targets to coordinates), and the title narrows it to players/entities. It is clear, though it does not explicitly contrast itself with mc_agent_teleport.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides no guidance on when to use this tool instead of alternatives such as mc_agent_teleport or mc_agent_move, and no exclusions. The only usage hint is the @s default, which is more parameter-oriented than selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_test_block檢查某座標是不是指定方塊ARead-onlyIdempotent
不改變世界,只回報該座標是否為指定方塊。建造前確認地形、或驗證剛才蓋的東西時用。
| Name | Required | Description | Default |
|---|---|---|---|
| block | Yes | 方塊 ID,例如 stone 或 minecraft:oak_planks | |
| position | Yes | ||
| blockStates | No | 選用的方塊狀態,例如 ["stone_type":"granite"] |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | Yes | |
| matches | Yes | |
| elapsedMs | Yes | |
| statusCode | Yes | |
| commandLine | Yes | |
| statusMessage | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds that the tool 'only reports whether the coordinate is the specified block', clarifying the return semantics as a boolean, and reiterates 'does not change the world' which aligns with annotations. It does not disclose other behaviors like error handling, but the safety profile is fully covered by annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two concise sentences, front-loading the core behavior ('does not change the world, only reports whether the coordinate is the specified block') followed by usage context. Every word serves a purpose with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, read-only test tool, the description covers purpose, usage, and non-destructiveness. Required parameters are documented in the schema (with most having descriptions), annotations cover safety, and an output schema exists, so no return value explanation is needed. All necessary contextual information is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not explain any parameters, merely referring to 'that coordinate'. The schema provides helpful descriptions for block, blockStates, and the mode field, but the position object itself lacks a description. With schema description coverage at 67% (not high), the tool description was expected to compensate for missing parameter guidance but does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: it does not change the world and reports whether a coordinate is the specified block. It also provides concrete use cases (confirming terrain before building, verifying recent builds), which distinguishes it from siblings like mc_read_block that likely return block data rather than a boolean test.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit usage context: use this tool before construction to check terrain or to verify placed blocks. However, it does not explicitly mention when not to use it or name alternative tools, so it lacks exclusions but still provides clear guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_ticking_area新增常載區域AIdempotent
把一塊區域設為常載,讓玩家離開後那裡的機制仍會運作。Agent 要在遠處自動工作時需要這個。
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | ||
| from | Yes | ||
| name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | Yes | |
| elapsedMs | Yes | |
| statusCode | Yes | |
| commandLine | Yes | |
| statusMessage | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate a non-read-only, non-destructive, idempotent mutation, but do not explain the persistent world behavior. The description adds that the area remains loaded and its mechanisms continue functioning after player departure, which is meaningful context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences front-load the core action and effect, then add the key use case. Every sentence earns its place with no redundant detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description gives the purpose and effect but omits parameter semantics and any prerequisites or limitations (e.g., area limits, persistence behavior once unloaded). The output schema exists and annotations help, so the gaps are moderate; an agent could probably call it correctly by using the schema structure, but not from the description alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the top-level parameters, and the description provides no parameter-specific guidance (what 'from'/'to' represent, how 'name' is used, or coordinate mode implications). The agent must infer from the names and nested schema, and the description does not compensate for the missing coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action and resource: '把一塊區域設為常載' (set an area as always-loaded). It further explains the functional effect (mechanisms keep running after players leave) and distinguishes it from sibling tools by tying it to remote autonomous work.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool: 'Agent 要在遠處自動工作時需要這個' (the agent needs this when working automatically at a distance). It does not provide exclusions or name alternatives, so it does not fully meet the 5-level bar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_verify_reading驗證「讀方塊」這條路還有效ARead-onlyIdempotent
讀方塊靠的是 testforblock 失敗訊息會洩漏方塊名稱,而那個訊息格式沒有官方穩定性保證。遊戲改版改了文案、或遊戲語言不是繁中/簡中/英文,解析就會失效——而且失效的樣子是安靜的。這支探測會主動驗證解析路徑是否仍然有效,上課前跑一次就知道 mc_read_block 的結果能不能信。它不需要事先知道那格是什麼:若該格是空氣,就拿基岩去問(保證不符)逼出失敗訊息;若該格有東西,第一問就已經給了訊息。最多兩條指令,完全不寫入世界。parseable=false 代表協定已漂移,此時 mc_read_block 的結果一律不可信。
| Name | Required | Description | Default |
|---|---|---|---|
| position | Yes | 任一座標皆可,空的或有方塊都行 |
Output Schema
| Name | Required | Description |
|---|---|---|
| raw | Yes | |
| branch | Yes | |
| parseable | Yes | false 代表協定已漂移,讀方塊不可信 |
| parsedName | Yes | |
| commandsIssued | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, and non-destructive behavior. The description adds substantial behavioral context: it relies on testforblock failure message parsing, the failure mode is 'silent', it uses at most two commands, and guarantees no world writes. It also explains the algorithm (querying with bedrock to force a failure message if the cell is air), which is beyond what annotations provide. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense and front-loaded with the core problem (failure message format instability), then explains the verification approach and the consequence of parseable=false. Each sentence earns its place, and the structure flows logically from problem to solution to implication. While it is longer than average, the complexity of the tool justifies the detail; minor redundancy with annotations (e.g., 'no writes to world') is acceptable for emphasis.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's purpose (why it exists), usage context (when to run it), internal behavior (how it works), and output interpretation (parseable=false implies protocol drift). Since an output schema exists, it does not need to enumerate return fields. No critical information is missing for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents the position object with x, y, z, and mode, including a description ('absolute=world coordinate; relative=~ relative to initiator; local=^ relative to facing') and a note that any coordinate works. Schema coverage is 100%, so the description does not need to add parameter semantics. The description adds no new param-level detail, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('verifies') and a specific resource ('the parsing path for block reading'), making it clear this tool checks whether mc_read_block's results can be trusted. It distinguishes itself from sibling tools like mc_read_block and mc_test_block by framing itself as a probe of the underlying protocol, not a read operation itself. The title and description align perfectly, leaving no ambiguity about its role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear trigger ('run before class') and a decision rule ('if parseable=false, mc_read_block results are untrustworthy'), indicating when to use this tool to validate the read path. It implies when it should be used instead of relying directly on mc_read_block, though it does not explicitly list exclusions or alternative tools. The context is strong but lacks explicit 'when-not-to-use' or sibling comparison.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_world_settings調整世界設定AIdempotent
一次改一項世界設定:time 設定時間(day/night/noon/midnight 或 tick 數)、weather 天氣、gamerule 遊戲規則、difficulty 難度。
| Name | Required | Description | Default |
|---|---|---|---|
| rule | No | setting="gamerule" 時的規則名稱 | |
| value | Yes | time:day|weather:clear|difficulty:peaceful|gamerule 的值 | |
| setting | Yes | ||
| durationSeconds | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | Yes | |
| elapsedMs | Yes | |
| statusCode | Yes | |
| commandLine | Yes | |
| statusMessage | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate that the operation is idempotent and non-destructive; the description adds that exactly one setting is changed at a time and enumerates the setting types. However, it does not disclose side effects such as whether changes persist, how the world is affected, or how durationSeconds alters behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence expresses the key constraint ('one setting at a time') and then maps each setting category to its value form with zero filler. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema and annotations present, the description need not restate return values or safety, and it covers the main setting categories. The notable gap is the undocumented durationSeconds parameter, whose purpose and applicability are left to inference, making the tool not fully self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description enriches 'setting' and 'value' with concrete examples (day/night/noon/midnight, clear, peaceful) that complement the schema's terse examples. But it leaves 'durationSeconds' completely unexplained and does not state that 'rule' is required when setting='gamerule', so parameter semantics are only partially conveyed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('改' / change), a clear resource ('世界設定' / world settings), and an explicit scope: it changes only one setting at a time, with four named categories (time, weather, gamerule, difficulty). This makes it easy to distinguish from sibling tools like mc_run_command or mc_gamemode.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly establishes when to use the tool: when a single world setting (time, weather, gamerule, difficulty) needs to be changed. It does not explicitly name alternatives or exclusion conditions, but the category list and '一次改一項' constraint give sufficient context for an agent to select it over agent/command/block tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
42 tool updates
v0.1.0- First observed
mc_agent_act - First observed
mc_agent_collect - First observed
mc_agent_create - First observed
mc_agent_inventory - First observed
mc_agent_move - First observed
mc_agent_place - First observed
mc_agent_program - First observed
mc_agent_sense - First observed
mc_agent_teleport - First observed
mc_agent_turn - First observed
mc_analyze_symmetry - First observed
mc_await_connection - First observed
mc_blueprint_preview - First observed
mc_build_blueprint - First observed
mc_build_preview - First observed
mc_build_shape - First observed
mc_clone - First observed
mc_compare_regions - First observed
mc_effect - First observed
mc_events_catalog - First observed
mc_events_poll - First observed
mc_events_subscribe - First observed
mc_events_unsubscribe - First observed
mc_feedback - First observed
mc_fill - First observed
mc_gamemode - First observed
mc_give - First observed
mc_message - First observed
mc_player_action - First observed
mc_query_target - First observed
mc_read_block - First observed
mc_run_command - First observed
mc_run_commands - First observed
mc_set_block - First observed
mc_status - First observed
mc_structure - First observed
mc_summon - First observed
mc_teleport - First observed
mc_test_block - First observed
mc_ticking_area - First observed
mc_verify_reading - First observed
mc_world_settings
TDQS
Scored across 42 tools
每个工具都有明确且独特的用途,例如mc_agent_*系列管理Agent行为,mc_build_*系列处理建造,mc_events_*系列订阅事件。即使有类似工具(如mc_set_block与mc_fill、mc_run_command与mc_run_commands),也在描述中明确区分了使用场景,没有模糊边界。
所有工具均以mc_前缀开头,使用小写下划线命名,且按功能领域分组(如mc_agent_、mc_build_、mc_events_),模式高度一致。动词与名词的组合虽然不完全统一,但整体规律清晰,易于预测。
工具数量为42个,但对Minecraft这样一个功能丰富的游戏来说,覆盖了Agent操作、建筑、世界管理、事件订阅等多个方面,每个工具都有存在的必要,没有冗余或缺失,规模与服务器目的匹配。
工具集涵盖了建造、查询、修改、事件处理、世界设置等完整生命周期,包括创建、读取、更新、删除的基本操作,也提供了预览和验证工具来避免错误。没有明显的功能死角,代理可以独立完成从规划到执行的完整流程。
Maintenance
Related MCP Connectors
Connect AI agents to Flato's editable canvas runtime through a hosted MCP server.
Educational MCP server with 17 math/stats tools, visualizations, and persistent workspace
One AI endpoint to search and call 22k+ MCP servers; 50+ hosted tools work instantly, no key.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to control Unreal E…
Related MCP Servers
- AlicenseBqualityBmaintenanceA TypeScript-based server that enables AI-powered control of Minecraft Bedrock Edition through 15 powerful tools for player movement, agent operations, world manipulation, and building complex structures.2116MIT
- AlicenseBqualityDmaintenanceEnables LLMs to control a Minecraft bot through the Mineflayer API, allowing for tasks like building, mining, and inventory management via natural language. It supports complex interactions including coordinate-based movement, block manipulation, and real-time game chat.5364 npm1Apache 2.0
- AlicenseNot gradedqualityFmaintenanceEnables AI-driven interactions with Minecraft through a WebSocket-based server and MCP protocol, allowing external MCP clients and in-game chat to trigger AI tools.4MIT
- AlicenseAqualityAmaintenanceEnables AI agents to control a Minecraft bot inside a Java Edition world via MCP, providing tools for movement, building, mining, combat, farming, trading, inventory, and world perception.5564 npm1MIT