BlockHand
BlockHand(積木之手)— Minecraft Education MCP
讓 AI 在 Minecraft Education Edition 裡長出手腳:動作(Agent 走位、挖掘、放置、耕種、搬運)、眼睛(感測方塊、查詢座標、訂閱遊戲事件)、造物(二十四種幾何形狀與逐格藍圖)。
透過 Minecraft Education 官方文件化的 /wsserver 連線命令(/connect 是 alias)操作,不注入行程、不改遊戲檔案、不用畫面辨識。連線命令是官方介面;後續 WebSocket 訊息協定並沒有公開穩定性保證,因此遊戲改版後仍需重新驗證。
44 個工具、2 份 resource
單元與整合測試、1 支不需開遊戲的 stdio/程序生命週期 smoke、1 支真機 live 驗證
不需要任何帳號、token 或祕密;MCP runtime 只綁 loopback,不寫遊戲檔或 artifact
1. 三步上手
步驟一:在每台機器安裝與建置
cd /你的路徑/minecraft-edu
corepack pnpm install --frozen-lockfile
corepack pnpm run buildNode 必須是專案 .nvmrc 指定的 22.23.1,pnpm 由 Corepack 固定為 11.17.0。Windows 與 Mac 都要在本機安裝依賴;不要把另一個作業系統的 node_modules 複製過來。Minecraft Education 目前在 Mac 的最低需求是 macOS 14。
步驟二:在該機登記一次 MCP
支援 Codex/Claude Code/Gemini CLI/Grok CLI,Windows 與 macOS 皆同。
先取得兩個絕對路徑
註冊時必須用絕對路徑,不能只寫 node。桌面版 AI 工具是由 Finder/檔案總管啟動的,讀不到你 shell 裡的 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)。路徑含空白時整段要加引號。
用安裝器(四家都支援,建議)
corepack pnpm run setup:codex # 或 setup:claude / setup:gemini / setup:grok
corepack pnpm run doctor # 加 --client=claude 等可診斷其他家安裝器不是只把指令寫進設定檔,它會:
自動填入這台機器的絕對 Node 路徑,不依賴桌面程式能否讀到 nvm、Homebrew 或 shell PATH。
先跑一次真正的 MCP initialize(用即將寫入的 command/args/env),確認 44 個工具都在,才動任何持久設定。舊 dist、錯誤 launcher、不可執行的 Node 都會在寫入之前就失敗。
已正確登記時什麼都不做,重跑安全。
同名但不相容時停下並列出差異,不自動 remove/add,避免覆寫別人的 timeout、tool policy 或另一個 clone 的設定。
只透過各家官方
mcp add/mcp remove子指令寫入,不手改設定檔——那會繞過各家自己的 schema 驗證與 scope 解析。
移除用 corepack pnpm run uninstall:codex(或 uninstall:claude 等)。同樣有防誤刪:不是這份工作樹可辨識的 entry 就拒絕。
各家寫入位置與重啟需求:
Client | 寫入 | 之後 |
Codex |
| 完全退出並重啟;桌面版/CLI/IDE 共用 |
Claude Code |
| 重開 session |
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三個容易踩的差異:
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 doctor它會檢查 Node 版本、build 產物、平台需求、登記狀態,並用實際登記的 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 起得來。
每台機器都要各自登記一次:Windows 筆電、Mac、另一台電腦的 Node 與專案絕對路徑都不同,不能互相複製設定。同一台機器上,同一個工具的桌面版/CLI/IDE 共用同一份設定。
步驟三:在遊戲裡手動連進來
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:19131看到 Connection established 就完成了。之後對 AI 說「幫我在前面蓋一顆空心玻璃球」即可。
要重連時不必重打整串:在聊天列按 T 開啟,再按 ↑ 叫回上一條指令,然後 Enter。
早期版本有一個「閒置約 60 秒必斷線」的 bug:心跳只認 WebSocket pong frame,但 Bedrock/Education 的客戶端從不回 pong,導致健康的連線被自己的心跳終止。現已修正(改以任何進來的封包判定活性,並輔以應用層探測),閒置不應再造成斷線。若仍會斷,先確認你跑的是重新 build 過的
dist/。
連線指令固定是 /connect 127.0.0.1:19131:同一台機器上所有 AI 對話(桌面版、CLI、IDE、多個 task)共用一個在背景執行的中樞,由它持有 19131 與唯一的遊戲連線;每個對話的 MCP 只是把請求轉給它。第一個需要它的對話會自動把中樞叫起來,沒有對話在用、遊戲也沒連著時,它約 10 分鐘後自己結束。換對話、換模型、重開 AI 工具都不會斷線,只有離開世界或重開 Minecraft 才需要重連。
例外:如果 19131 已被舊版(沒有中樞功能)的 BlockHand 佔住,新對話會退回獨立模式、改用隨機埠——這時以該對話 mc_status 回報的指令為準;等舊對話全部關掉後就會恢復成共用中樞。
Related MCP server: Minecraft MCP Server
長時間建築:常駐工作階段
AI 沒有直接載入 Minecraft 工具時,可在持續存活的終端/PTY 執行以下客戶端。它透過 stdio 啟動 BlockHand,顯示該工作階段的 connectCommand;遊戲連上後才送建築指令。checkpoint 使用新的系統暫存路徑,不放進 Git。
node scripts/session-client.mjs --state /你的系統暫存目錄/build-checkpoint.json每行輸入一個 JSON 請求:
{"action":"call","name":"mc_status"}
{"action":"run","commandsFile":"/你的系統暫存目錄/commands.json"}
{"action":"status"}commands.json 是字串陣列,例如 ["fill 0 40 0 2 42 2 glass"];座標必須換成已確認可施工的範圍。也可直接傳 {"action":"run","commands":["time query daytime"]}。run 立即回覆受理,背景逐條送指令,每條確認後原子更新 checkpoint;status 隨時回報 nextIndex 與 inFlight,不等待整棟建築。
工具呼叫停止等待,工作仍可在該終端繼續;終端本身必須保持存活。不要在會隨執行逾時重設的 REPL 中擁有 MCP 子程序,也不要把多個慢批次包進同一個短逾時呼叫。終端關閉/stdin EOF 時伺服器仍會正常退出並釋放埠,避免殘留程序佔用連線。
指令失敗或回覆不確定時佇列停止,不自動重送。若程序中途結束,先依 checkpoint 的 inFlight 回讀現場;確認該條是否生效後,另存剩餘指令與新的 checkpoint 再續作。尤其召喚生物等指令不能直接重播。空閒時用 {"action":"close"} 正常結束;這會斷開該工作階段的遊戲連線。
2. 真機驗證
先做不開遊戲的安全診斷:
corepack pnpm run doctor
# 機器可讀版本
corepack pnpm blockhand doctor --jsondoctor 不修改持久設定、不啟動 Minecraft;它會短暫建立隔離的 loopback socket,驗證 launcher、44 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: 任一座標 }它最多送兩條指令、完全不寫入世界,回傳 parseable:
true→ 解析路徑正常,mc_read_block的結果可信。false→ 協定已漂移。此時mc_read_block一律回錯誤而不是null(見第 3 節),所以不會有人把「讀不出來」誤當成「那裡是空的」。回傳的raw是遊戲的原始訊息,拿它去比對src/domain/block-report.ts的PATTERNS就知道要補哪一條。
三個會讓你想跑它的訊號:
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)
工具 | 用途 |
| 橋接狀態、連線指令、已訂閱事件、累計指令數。任何失敗先查這個 |
| 查看、清除或設定自動單步備份;預設關閉(見下方警告)、4,096 格、遊戲記憶體 |
| 復原上一筆受保護的建造,先檢查方塊衝突;無 Redo |
| 阻塞等待遊戲連入(單次上限 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用一條testforblocks比對整片區域。逐格比對在幾百格以上就會撞到 host 逾時,這個不會。masked模式忽略來源的空氣,適合檢查「該有的東西在不在」而不管周圍多了什麼——批改學生作品就是這個形狀。
為什麼解析失敗要回錯誤而不是 null
因為這個工具的使用者是 AI,而AI 不會懷疑系統壞掉。
一個「成功」的回應配上 block: null,很容易被讀成「讀到了,那裡是空的」。接著 AI 會非常有自信地基於這個錯誤認知繼續做事——例如把學生蓋了一整節課的作品當成空地覆蓋掉,而且事後沒有任何錯誤紀錄可查。人看到 null 會覺得怪並停下來除錯;AI 不會。
錯誤沒辦法被當成資料繼續用,這就是重點。
mc_verify_reading 則是另一半:它不需要事先知道那格是什麼——若該格是空氣就拿基岩去問(空氣不可能是基岩,保證不符)逼出失敗訊息;若該格有東西,第一問就已經給了訊息。兩條路都保證拿得到訊息,最多兩條指令,完全不寫入世界。
這條防線有突變測試守著:故意把解析規則改壞後,探測與解析器共 7 條測試必須轉紅。
要逐格讀整片區域請走行為包與 Script API;本專案刻意不走那條路,因為那會讓學校電腦多一道安裝步驟。
自動單步 Undo
預設關閉。 在 Minecraft Education 1.26.32(macOS)實機上,開啟 Undo 後第一次小型建造前送出的原生整區檢查(
body.version=25)從未得到回覆;之後同一條連線的所有指令都逾時,連玩家自己在聊天列打的字和/connect都沒有反應,只能完全關閉 Minecraft 再開。已重現三次,成因細節見 整區 Undo 設計。要開啟請設環境變數MINECRAFT_EDU_UNDO_ENABLED=1,或用mc_undo_control的configure enabled=true,並自行承擔上述風險。
開啟後只保留一個操作、最多 4,096 格的施工前原貌。方塊快照用遊戲的 structure save ... memory,不寫磁碟;MCP 合併連續同材質的預期結果,只保存區域邊界、材質與快照名稱,不逐格展開紀錄。開始下一筆前先刪除上一筆快照,不累積歷史;沒有 Redo。
{"name":"mc_undo_control","arguments":{"action":"status"}}
{"name":"mc_undo","arguments":{}}
{"name":"mc_undo_control","arguments":{"action":"configure","maxBlocks":32}}
{"name":"mc_undo_control","arguments":{"action":"configure","enabled":false}}
{"name":"mc_undo_control","arguments":{"action":"configure","enabled":true}}
{"name":"mc_undo_control","arguments":{"action":"clear"}}mc_set_block、mc_fill、mc_build_shape、mc_build_blueprint,以及純setblock/fill的 raw 批次,共用同一份歷史。一次完整工具呼叫算一步,不是每條底層指令各算一步。獨立呼叫多次只保留最後一次。第一版限主世界、絕對整數座標、基本靜態建材及預設方塊資料。支援
replace、hollow、outline;不支援自訂 blockStates、keep、destroy、條件 replace、相對座標或混入其他指令的建造批次。基本建材清單見 undo-plan.ts。超量、太零散或不支援的建造會在施工前拒絕,保留原還原點。大型建造可先停用自動 Undo,沿用既有功能,並視需要手動保存結構。其他未追蹤的修改指令會清除舊歷史;純讀取不會。若上一筆處於失敗待處理狀態,新修改也會先停下來。
最多 64 個備份區,每區各邊最多 32 格;可調整總格數到 1–32,768。連續同材質的 16×16×16 區域只需一份快照;混合建材、空心或零散修改可能拆成多區。保存的是精確修改範圍,不會把兩個相隔很遠的方塊中間全部備份。單條
fill的外框體積仍須在格數預算內,包括outline。備份全部成功後才施工;備份失敗不送出任何施工指令。施工與還原逐條確認,遇到不確定回覆就停止,不自動重試。已確認還原的區域不會再次還原。連線更換會讓舊歷史失效;維度變更則須回到原維度才能操作。
一般 Undo 先由遊戲檢查所有備份區,再於各區的同一條遊戲指令內重新檢查並還原。檢查一個基準方塊,再沿三軸比對相鄰切片,涵蓋整區內部與方塊資料,不需要在世界放置比對副本。後續方塊種類或資料改變時會停止;這不是整個世界的交易,也無法辨認改過又變回相同資料的方塊。執行期間不要切換世界/維度。
overwriteChanges:true會略過衝突檢查,僅供使用者明確接受覆蓋現況後的復原。每次連線第一次受保護的建造,先以唯讀指令確認遊戲支援原生整區條件;不支援時保留舊歷史、不施工。受保護的保存、建造、檢查與載入都固定作用於主世界。協定與演算法見 整區 Undo 設計。
只復原快照內的方塊與遊戲結構能保存的資料;不復原生物、掉落物、玩家背包、區域外的水流與機關連鎖。對容器等原始方塊的額外資料不提供 RAM 位元組上限保證。
待機不掃描世界、不持續備份。額外成本發生在建造前的快照及復原時的檢查/載入;原生比對仍需遍歷方塊,提高格數上限仍會增加遊戲的工作量與記憶體用量,不能保證不影響 FPS。mc_undo_control 回報快照數、格數及 backupMs/checkMs/restoreMs,它們是耗時,不是記憶體用量。資源吃緊時可把 maxBlocks 調低。關閉、清除、下一步與成功還原時會釋放本服務快照。正常結束也會嘗試清理;強制關閉或斷線可能留下遊戲記憶體快照,直到卸載世界才消失。手動命名的結構不會被自動刪除。
程式重啟後不保留 Undo 歷史。更新程式並 build 之後,現有 MCP 行程仍使用載入時的版本;須由 Host 重載 MCP 才有新工具。重載會結束原橋接,遊戲須重新 /connect。
真機測試可用 node scripts/undo-live-check.mjs --origin=x,y,z --size=16 --keep-open(先 build)。測試腳本 啟動新版橋接並印出 /connect,需玩家手動連入。它只使用明確指定的測試區,先確認整區全空氣與玩家不在範圍,再經 MCP 測試備份、內部單格衝突、還原及有條件清理;若失敗會停止並列出保留的快照名稱。--keep-open 在測試結束後保留遊戲連線,並接受 { "name": "mc_status", "args": {} } 形式的 JSONL MCP 呼叫。加上 --diagnose 時只啟動橋接,不自動檢查區域或建造;適合先比對連線前後的聊天與輸入法行為。指定了測試原點後,才可用 { "action": "test" } 開始驗收;原貌或舊歷史不符時會停止。一般加密握手與每 30 秒唯讀保活仍照常執行。
{ "action": "probe" } 列出一條唯讀診斷階梯,{ "action": "probe", "probe": "<名稱>" } 送出其中一條。整區 guard 一次改變了六個變數(body.version、execute 包裝、@s 選擇器、if block 的 aux 值、三次來源與目的重疊的區域比對、指令長度),所以整條測不出原因;請依探測的 note 選成對對照,清單相鄰項目不保證只有一項差異。先測 time-v1/time-v25 與 time-v25/execute-time-v25,再依結果選取:query-v1 → query-v25(只換版本)→ time-v25 → execute-run-v1/-v25(最短 execute)→ execute-self-v25(只換 @s)→ if-block-v25/-noaux-v25(aux 值)→ if-blocks-1d-disjoint/-overlap(來源與目的是否重疊)→ testforblocks-disjoint/-overlap-v1(同一種比對但不經 execute 與 v25)→ guard-2x2x2-v25/-self-v25(真正的 guard 形狀,只有 8 格;與整區 guard 的長度與條件數完全相同)→ guard-conditions-3/-12-v25(條件數與長度)→ guard-region-v25(完整重現失敗的那條)。每條都經啟動時的斷言確認終端指令唯讀、不含改動世界的動詞,且直接走橋接、不經 Undo 服務,因此不會配置快照也不會寫方塊。任一條逾時就停住整條階梯:同一條連線不再送出任何 probe,不重播、不自動重試,必須重新 /connect 才會恢復。
反覆修改同一棟建築
mc_structure 的 saveMode 就是為這件事設計的:
模式 | 什麼時候用 | 生命週期 |
| AI 改建築時想留退路——存一版,改壞了 load 回來 | 關掉遊戲就消失,硬碟不留檔 |
| 使用者明確說要保留(「幫我記住這棟」) | 寫進世界資料夾,關掉遊戲仍在 |
版本管理就是取名字:castle_v1、castle_v2。同名會直接覆蓋,改版本前先換名字。
遊戲沒有「列出已存結構」的指令,所以存過什麼只能靠名字記。橋接會記住本次連線存過的名單,問 mc_status 就看得到——但那只涵蓋本行程,重啟就沒了(disk 模式的檔案還在,名字要你自己記)。
對稱性分析——批改作品
mc_analyze_symmetry 檢查一塊區域是否鏡像對稱,不對稱時會指出哪幾塊不對稱,不是只丟一個「否」。
原理:testforblocks 只做平移比對不會鏡像,所以先用 structure save 存下區域,再用 structure load 的 mirror 參數把它鏡像放到暫存區,然後兩區比對。整體通過就直接滿分;不通過才細分成 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 批次數 |
| 二十四種幾何形狀,多數支援 hollow(見下表) |
| 逐格藍圖的預覽 |
| 任意形狀:給「座標 → 方塊」清單,相同方塊自動合併 |
mc_build_shape 的形狀清單:
群組 | 形狀 |
基本量體 |
|
線與面 |
|
建築件 |
|
地景與路徑 |
|
裝飾與造型 |
|
選型比語意更容易出錯
形狀從 12 增到 24 的過程中,跨 AI 發想(grok/codex/agy,紀錄在 agents/docs/ais/)
三家獨立指向同一個風險:真正的瓶頸不是幾何寫不寫得出來,而是清單變長之後 AI 選錯形狀。
選錯不會報錯,只會蓋出一個看似合理但不是你要的東西。所以 mc_build_shape 的工具說明
是按「想蓋什麼」分組的選型指引,而不是一張平的清單,並且把最容易互相搶市場的幾組寫成對照:
你要的 | 用這個 | 不要用 |
斜的柱子、樑、管線 |
|
|
直角轉折的牆、圍牆 |
|
|
有屋脊的屋頂 |
|
|
繞塔而上的樓梯 |
|
|
上下不等寬的塔身、基座、煙囪 |
| 多層 |
圓頂、花瓶、拋物面、冷卻塔 |
| 各自新增一個形狀 |
一片起伏的地 |
| 多個 |
幾個容易搞錯的參數語意:
prism/pyramid的radius是中心到「邊」的距離(內切圓半徑),不是到頂點。所以邊數愈多就愈接近同半徑的cylinder,而sides=4與同尺寸的box逐格相同。cone與pyramid的topRadius是漸近值:頂層實際會比它略寬半格左右。這是沿用cone原本的線性收斂公式(topRadius=0時逐格等於加這個參數之前),沒有為了錐台去改動既有形狀的輸出。roof的ridgeAxis是「屋脊延伸的方向」,不是坡面朝向的方向——這兩個講法差 90 度,是這個形狀最容易填反的參數。heightfield的corners是厚度(幾格),不是「表面在from.y上方幾格」。厚度 1 就只有一層;波浪把厚度壓到不足一格的地方直接沒有方塊,所以窪地與水塘是免費的。wedge的終點端剩一格高而不是收到零,所以它是走得上去的坡道。arch畫的是拱圈實體,中間的洞才是開口,開口寬度為 2×radius−1。
合併效率有硬門檻:tests/domain/fill-efficiency.test.ts 針對每個形狀釘住
「fill 條數 ÷ 方塊數」的上限。述詞寫得出來不代表產物適合這條管線——細碎、分支狀的
形狀會讓 greedy 合併壓不下去,fill 條數逼近方塊數,教室現場的體感就是新功能反而更慢。
事件 — 感知(4)
mc_events_catalog、mc_events_subscribe、mc_events_unsubscribe、mc_events_poll。
事件進環形緩衝,用游標連續讀;dropped > 0 代表輪詢太慢、有事件永遠讀不到了。重新連線後會自動重新訂閱。
4. 為什麼建造不會卡死
天真作法是每個方塊送一次 setblock。一顆半徑 20 的實心球有 33,000 多格,等於三萬多次 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 設定。一個例外要講清楚:
mc_structure的saveMode="disk"會透過遊戲把結構寫成檔案,存進 Minecraft 的世界資料夾。那不是 MCP runtime 在寫檔,但確實會在使用者硬碟上留下東西。所以預設是memory(暫存,關掉遊戲就消失),只有使用者明確表示要保留時才該用disk,而且工具回覆一定會講出它寫到哪裡——不會靜悄悄留檔。不碰祕密:整個專案沒有 token、帳號或憑證。
不主動連線:遊戲不
/connect進來,所有工具都回可照做的錯誤訊息,不會靜默失敗。
mc_run_command 的閘門
mcp/README.md 架構原則 4 要求拒絕任意執行入口。這裡的判斷是:slash 指令的作用域完全在本機遊戲世界內,不觸及主機檔案系統、行程或網路,所以它不等同任意程式碼執行。真正必須擋的是讓橋接失效的操作,因此政策是結構性的而非猜意圖的關鍵字黑名單:
只允許單行——換行與 NUL 直接拒絕,不能用
\n把一條請求拆成兩條指令。拒絕
wsserver與connect——那會把遊戲指向別的端點,之後所有工具全部失效。其餘指令標記
read-only/world-write/wide-effect風險等級,交由 MCP Host 依 annotation 決定是否要人工確認。
所有會被插進指令列的方塊 ID、選擇器、狀態字串都先過白名單正規表達式,防止用空白拼出額外參數。
商標
依 Minecraft Usage Guidelines,第三方工具不得看起來像官方產品。產品名 BlockHand 刻意不含 Minecraft 商標;minecraft-edu 只是這個私人工作區內的描述性資料夾名。若日後要對外發布,套件名與任何公開露出都必須重新檢視。
6. 設定
全部有預設值,.env 不是必需品。
變數 | 預設 | 說明 |
|
| 監聽位址;預設只綁 loopback |
|
| 遊戲連線埠。維持預設 19131 時使用共用中樞;設成其他值(例如 doctor/smoke 用的 |
| 自動 |
|
|
| 中樞給 AI 對話連的本機控制埠,同時是「誰當中樞」的選舉鎖 |
|
| 中樞狀態檔 |
|
| 沒有對話請求、且遊戲未連線超過這段時間,中樞自動結束;遊戲連著時永遠不會結束 |
|
| 優先埠被其他 MCP 任務占用時,由作業系統自動配一個空閒埠;設成 |
|
| 單一指令等待遊戲回應的逾時 |
|
| 閒置時送出保活探測( |
|
| 事件環形緩衝筆數 |
|
| 單次建造方塊數上限,超過即拒絕 |
|
| 設成 |
|
| 自動備份格數預算,範圍 1–32768;另有最多 64 個備份區的限制 |
|
| Agent 程式每步預設間隔 |
| 未設 | 設成 |
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 合併 + 依上限拆批
build/undo-plan.ts 區域合併與覆蓋、預算檢查、原生整區復原條件
ports/minecraft-connection.ts 連線抽象;測試靠它塞假件
adapters/ws-minecraft-connection.ts WebSocket 監聽、requestId 對應、事件緩衝、重連重訂閱
application/
blockhand-service.ts Agent 程式展開、querytarget 解析、事件
build-service.ts 規劃與執行分離(先讀後寫)
undo-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 的規則,不是 bug。
macOS 已完成真機 live 驗證(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 指令下不一定能解析:不同遊戲版本曾有無回應與正常解析兩種實測結果。mc_query_target預設用@p;自動 Undo 則必須成功取得querytarget @s的主世界維度,失敗時停止施工,不猜測作用中的世界。大型建造可能撞到 MCP Host 的請求逾時:建造工具會逐條送出 fill 並等遊戲回應,實測半徑 6 的空心球(126 條)約需 13 秒,但遊戲繁忙時會更久。MCP client 預設逾時多為 60 秒,超過就會在 Host 端被砍斷(工具本身仍在跑)。先用
mc_build_preview看fillBatches,數量大時分批建造。共用中樞一次只讓一個對話修改世界:某個對話的寫入類工具(建造、fill、raw 指令、Agent 動作等)執行中時,另一個對話的寫入會立刻收到「另一個 AI 對話正在修改世界」並被拒絕,不會排隊、也不會和前一個建造穿插;唯讀工具不受影響。同一個對話的連續呼叫照順序執行。
中樞更新:重新 build 後,下一個連進來的對話會發現中樞是舊版;若遊戲沒連著就自動換成新版;遊戲連著時先沿用舊版、絕不中斷,等之後有對話連進來而遊戲剛好沒連著時再換。中樞的日誌在
~/.blockhand/hub.log。獨立模式(
MINECRAFT_EDU_HUB=0或自訂埠)下,每個 BlockHand 程序各自持有一個監聽埠:第一份取得優先埠,其餘自動取得空閒埠,請用目前任務的mc_status.connectCommand。加密握手會同步安裝解密器:握手回覆與後續加密訊框可能在同一批資料內到達。adapter 在處理握手回覆時就切換加密,避免等待
await期間遺失後續訊框、造成串流錯位。握手後仍以唯讀time query daytime確認加密通道有回應;探測失敗會保留加密狀態,並記錄primed post-handshake stream的ok與elapsedMs。回歸測試涵蓋同批加密事件、第一筆指令、公鑰無法解析與不含公鑰的錯誤回覆。此修正已通過離線測試;與鍵盤、輸入法或背包失效的關係仍待實機確認。事件只在真正發生時觸發:
BlockPlaced只在玩家親手放方塊時發出,/setblock與/fill都不算。要收到事件必須先訂閱、再讓事件真的發生。網路連線與遊戲回應分開回報:
mc_status.connected只代表 WebSocket 存在;commandState的unknown/responsive/timed-out表示尚無證據、最近收到匹配的指令回覆、最近有指令逾時。lastCommandResponseAt/lastCommandTimeoutAt保留相應時間,inFlightCommands/queuedCommands顯示橋接這側還有多少工作。語法錯誤也能證明遊戲有回覆;responsive不表示建造成功或輸入法正常。若遊戲背景暫停、指令處理卡住或回覆無法解析,可能出現 connected=true 而指令逾時;不能單憑此狀態判定是哪一種原因。部分回應的 requestId 對不上請求(觀察到會回全為零的 ID)。在本連線尚無逾時且只剩一個非保活待決請求時,adapter 可採推斷歸屬,並在 stderr 記錄。發生任一逾時後,直到新連線建立前都只接受可精確匹配的回覆,避免把遲到成功誤認為下一條施工成功;代價是無法歸屬的遊戲回覆可能繼續逾時。不自動重送修改指令。
指令逐條送出,並限制排隊數量:MCP host 會併發呼叫工具(收到
tools/call就直接派給 handler,不等前一個完成),而唯讀指令不經過 Undo 的互斥鎖,所以呼叫端平行丟工具時橋接會同時收到多條指令。adapter 因此排隊逐條送,同時在飛的只有一條:目的是限制同時對遊戲發出的請求數,避免增加負載,也避免多條同時在飛時 requestId 對不上的回覆無法歸屬。mc_status的inFlightCommands(0 或 1)與queuedCommands可分辨「遊戲沒回」與「卡在呼叫端的併發」。排隊上限 64 條,超過即以command-queue-full拒絕而不排入。每一條在佇列裡的等待都有期限(該指令自己的逾時預算):等過期就回報「沒有送出,之後也不會送出」並跳過,不讓呼叫端早已放棄的指令在幾分鐘後才動到世界。送出佇列綁在單一遊戲連線上:換線或關閉時整批退休,等在裡面的指令一律回報未送出,一條都不會流進新遊戲;舊佇列的計數也不會影響新連線。新遊戲拿到的是一條空佇列,因此上一局塞滿的佇列不會擋住新連線的加密握手。握手失敗只記錄並退回明文,不會變成之後每條指令都繼承的錯誤。
保活探測需連續多次無回應才斷線:遊戲可能因載入、背景暫停或短暫卡頓而沒有處理指令;單次探測未回不足以證明 TCP 已失效。舊行為是一次探測沒回就終止 socket;現在需連續 3 次完全無回應才終止,以容忍短暫停頓。這些可能原因仍需實機對照確認;代價是真正的殭屍連線要多花幾個週期才會被清掉。
「連上 MCP 後無法切換中文輸入法/聊天列 Enter 沒反應」尚未找到程式因果:
src/、scripts/內沒有任何 AppleScript、鍵盤攔截或輸入法操作,橋接只透過 WebSocket 送 slash 指令。上述併發、佇列與保活修正都是可重現的程式錯誤,但沒有證據證明它們是輸入法症狀的成因,也還沒有實機對照可以排除遊戲本身的暫停/焦點行為。回報這個症狀時請一併記下:是否只有遊戲受影響、遊戲其他操作是否正常、mc_status的commandState/inFlightCommands/queuedCommands。一次只維持一條遊戲連線;新連線立即結束舊請求,不把舊指令重送到新遊戲。舊 socket 訊框、握手 continuation 與關閉事件不能改動新連線的加密/回覆狀態。批次遇到未知結果或連線更換時停止,即使
stopOnError:false也不繼續排送;該選項僅允許在遊戲已確認的普通指令失敗後繼續。已完成真機驗證的環境:Minecraft Education 1.26.32.0(Win32 桌面版)。若改用 Microsoft Store 的 UWP 版,loopback 會被 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