BlockHand
BlockHand is an MCP server that lets an AI operate Minecraft Education through the official WebSocket interface: it can inspect and modify the world, control an Agent, build structures, subscribe to game events, and manage players.
Connection & status:
mc_status,mc_await_connection,mc_run_command/mc_run_commandsfor raw slash commands with safety filtering.Agent control: spawn, move, turn, teleport, attack/destroy/till, place, collect, inventory, sense, and run multi-step programs.
World inspection: test/read blocks, verify reading reliability, compare regions, analyze symmetry, query entity positions.
World modification: set blocks, fill volumes, clone regions, summon entities, adjust time/weather/gamerules/difficulty, manage ticking areas.
Structures: save/load named structures in memory or to disk.
Building: preview and build geometric shapes (box, sphere, cylinder, cone, etc.), curves/helix/torus/revolution, and arbitrary block-by-block blueprints; fills are automatically merged into efficient batches.
Events: list, subscribe, unsubscribe, and poll game events from a ring buffer.
Player/feedback: teleport, give items, gamemode, effects, player actions, chat/titles, sounds/particles.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@BlockHandbuild a hollow glass sphere with radius 5 in front of me"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
BlockHand — Minecraft Education MCP
Gives AI hands and feet in Minecraft Education Edition: actions (Agent movement, mining, placing, tilling, transporting), eyes (block sensing, coordinate queries, game event subscriptions), creation (ten geometric shapes and per-cell blueprints).
Operates through Minecraft Education's officially documented /wsserver connection command (/connect is an alias) — no process injection, no game file modification, no screen recognition. The connection command is an official interface; the subsequent WebSocket message protocol has no public stability guarantee, so re-verification is needed after game updates.
42 tools, 2 resources
216 unit and integration tests, 1 stdio/process lifecycle smoke test that doesn't require launching the game, 1 live verification on a real device
No account, token, or secret required; the MCP runtime binds only to loopback and writes no game files or artifacts
1. Getting Started in Three Steps
Step One: Install and Build on Each Machine
cd /你的路徑/minecraft-edu
corepack pnpm install --frozen-lockfile
corepack pnpm run buildNode must be 22.23.1 as specified in the project's .nvmrc; pnpm is pinned to 11.17.0 by Corepack. Dependencies must be installed locally on both Windows and Mac; do not copy node_modules from another operating system. Minecraft Education currently requires macOS 14 as the minimum on Mac.
Step Two: Register MCP Once on That Machine
Supports Codex/Claude Code/Gemini CLI/Grok CLI, identical on Windows and macOS.
First, Get Two Absolute Paths
Absolute paths are mandatory when registering — writing just node is not enough. Desktop AI tools are launched by Finder/File Explorer and cannot read nvm, Homebrew, or PATH from your shell; writing node may pass when tested in a terminal, but the desktop version will fail to start, and the error message usually just says "server didn't respond," which is hard to debug.
macOS:
node -p "process.execPath" # Node 絕對路徑
pwd # 專案絕對路徑(在 minecraft-edu 目錄下執行)Windows (PowerShell):
node -p "process.execPath"
(Get-Location).PathBelow, <NODE> represents the absolute Node path and <REPO> the absolute project path. The server entry point is always <REPO>/dist/index.js (written as <REPO>\dist\index.js on Windows). Quote the entire path if it contains spaces.
Using the Installer (Supported by All Four, Recommended)
corepack pnpm run setup:codex # 或 setup:claude / setup:gemini / setup:grok
corepack pnpm run doctor # 加 --client=claude 等可診斷其他家The installer doesn't just write commands into a config file; it:
Auto-fills the absolute Node path for this machine, without relying on whether the desktop app can read nvm, Homebrew, or the shell PATH.
Runs a real MCP initialize first (using the command/args/env about to be written) to confirm all 42 tools are present before touching any persistent settings. A stale dist, a wrong launcher, or a non-executable Node will fail before anything is written.
Does nothing when already correctly registered — re-running is safe.
Stops and lists the differences when a same-named but incompatible entry exists, without auto remove/add, to avoid overwriting someone else's timeout, tool policy, or another clone's settings.
Writes only through each vendor's official
mcp add/mcp removesubcommands, never by hand-editing config files — that would bypass each vendor's own schema validation and scope resolution.
Removal uses corepack pnpm run uninstall:codex (or uninstall:claude, etc.). It also has accidental-deletion protection: it refuses entries not recognizable as belonging to this working tree.
Write locations and restart requirements per vendor:
Client | Written to | Afterwards |
Codex |
| Fully quit and restart; shared by desktop/CLI/IDE |
Claude Code |
| Reopen the session |
Gemini CLI |
| Restart the CLI |
Grok CLI |
| Restart the CLI |
Read strategies differ: Codex and Grok have
mcp list --json, so machine-readable output is used directly. Claude Code and Gemini'slistonly produce human-readable text without env, so compatibility cannot be determined from it; instead, their official CLI's just-written config files are read read-only. Writes always go through the CLI.
Manual Commands (When You Don't Want the Installer)
The commands are equivalent, but you must fill in the absolute paths yourself, and there's no upfront initialize validation or overwrite protection.
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.jsThree easy-to-miss differences:
Gemini's command and args are positional parameters, placed after the name, with no
--separator.Gemini's default scope is project; you must explicitly write
--scope userfor global availability.Claude's default scope is local (only effective in the current directory);
--scope projectwrites to the project root's.mcp.json, which can be shared with the repo — use this when sharing with a whole class.
Hand-Editing Config Files (Fallback When the Installer Fails)
Claude Code and Gemini CLI use JSON:
{
"mcpServers": {
"minecraft-edu": {
"command": "<NODE>",
"args": ["<REPO>/dist/index.js"],
"env": { "MINECRAFT_EDU_WS_PORT": "19131" }
}
}
}Codex and Grok CLI use TOML:
[mcp_servers.minecraft-edu]
command = "<NODE>"
args = ["<REPO>/dist/index.js"]
env = { MINECRAFT_EDU_WS_PORT = "19131" }Windows Notes
The absolute Node path is usually
C:\Program Files\nodejs\node.exe; with nvm-windows it looks likeC:\Users\<you>\AppData\Roaming\nvm\v22.23.1\node.exe.Backslashes in JSON config files must be escaped:
"C:\\Program Files\\nodejs\\node.exe". TOML can use single-quoted literal strings instead:command = 'C:\Program Files\nodejs\node.exe'.If Minecraft Education is the Microsoft Store UWP version, loopback will be blocked by Windows app isolation and requires an additional
CheckNetIsolation LoopbackExemptexemption (see Section 8).
After Registration
Fully quit and restart the AI tool — the desktop version must actually terminate, not just close its window. Then confirm with doctor (doesn't touch Minecraft, doesn't change settings):
corepack pnpm run doctorIt checks the Node version, build artifacts, platform requirements, and registration status, and runs another MCP initialize using the actually registered command/args/env, so a config pointing to a dead Node can't pass as green. Add --json for structured output. You can also ask each vendor's CLI directly:
codex mcp list
claude mcp list
gemini mcp list
grok mcp listOr simply have the AI call mc_status — if it returns a connectCommand, the server can start.
Each machine must be registered once individually: Windows laptops, Macs, and other computers all have different Node and project absolute paths, so settings cannot be copied between them. On the same machine, the desktop/CLI/IDE versions of the same tool share the same settings.
Step Three: Connect Manually in the Game
corepack pnpm run connectThis compatibility entry point only displays instructions — it does not launch Minecraft, switch foreground windows, or simulate keystrokes. Windows PowerShell auto-input has been removed; Mac also does not add AppleScript automation.
It's easy to get the direction backwards: the game is the one connecting out; the MCP server is the one being connected to.
In the current AI conversation, call
mc_statusand copy theconnectCommandit returns.Open Minecraft Education and enter a world (staying on the main menu does nothing).
The world must have Cheats enabled, and the operator needs Admin/OP permissions.
Type manually in the chat bar, for example:
/connect 127.0.0.1:19131You're done when you see Connection established. After that, just tell the AI "help me build a hollow glass sphere in front of me."
To reconnect, you don't need to retype the whole string: press T in the chat bar, then ↑ to recall the previous command, then Enter.
Early versions had a bug where connections would drop after about 60 seconds of idling: the heartbeat only recognized WebSocket pong frames, but Bedrock/Education clients never send pongs, so healthy connections were killed by their own heartbeat. This is now fixed (liveness is determined by any incoming packet, supplemented by application-layer probing), and idling should no longer cause disconnects. If it still drops, first confirm you're running a rebuilt
dist/.
Don't memorize 19131: when desktop, CLI, IDE, or multiple tasks start simultaneously, later-started MCP instances may get different free ports. Always use the command reported by the task you're currently operating.
Related MCP server: Minecraft MCP Server
2. Real-Device Verification
First, run the safe diagnostics that don't require launching the game:
corepack pnpm run doctor
# 機器可讀版本
corepack pnpm blockhand doctor --jsondoctor doesn't modify persistent settings or start Minecraft; it briefly creates an isolated loopback socket to verify the launcher, 42 tools, 2 resources, stdio EOF, and listening port release, and completes another initialize using Codex's actually registered command/args/env, so a config pointing to a dead Node can't pass as green.
Once the game is open, the world is loaded, and cheats are enabled:
cd gjlmotea/vibe/mcp/minecraft-edu && corepack pnpm run liveThe script prints the /connect command to enter, waits for you to connect, then walks a complete path and reports PASS/FAIL for each item: connect → read player coordinates → speak in-game → set time → summon Agent → sense → walk an L-shaped path → preview build → build a hollow glass sphere → verify the blocks actually exist → merge blueprints → subscribe and receive events → policy gate → clean up the demo build.
After Game Updates
Reading blocks (mc_read_block) relies on the text format of testforblock's failure message, and that format has no official stability guarantee. If Minecraft Education silently auto-updates and changes the wording, or the game language is switched to something other than Traditional Chinese/Simplified Chinese/English, this path will break.
The failure is silent: the tool won't break; it will just start saying "can't read." So this project deliberately does not make it a routine check in every live run — routine checks build the habit of relaxing when you see a green light, but the real moment for judgment is "when behavior becomes suspicious," not the one fixed run per week.
Instead, judge proactively when needed:
mc_verify_reading { position: 任一座標 }It sends at most two commands, writes nothing to the world, and returns parseable:
true→ the parsing path is normal andmc_read_blockresults are trustworthy.false→ the protocol has drifted. In this casemc_read_blockalways returns an error rather thannull(see Section 3), so no one can mistake "can't read" for "it's empty there." The returnedrawis the game's original message; compare it againstPATTERNSinsrc/domain/block-report.tsto see which pattern needs to be added.
Three signals that make you want to run it:
mc_read_blockstarts returning errors, but you can see in the game that the cell clearly has something in it.The game just updated, and you're about to do anything that depends on reading (grading, symmetry analysis).
The game language was changed.
The server instructions also contain the same clue, so the AI will find this tool on its own when behavior looks suspicious — you don't need to remember to remind it.
By default, the demo build is filled back with air, leaving no litter in the world. To keep it for inspection:
cd gjlmotea/vibe/mcp/minecraft-edu && node scripts/live-check.mjs --keepVerification that doesn't require launching the game (types, tests, build, stdio handshake, STDIN-close port release, and port-occupied failure all run in one pass):
cd gjlmotea/vibe/mcp/minecraft-edu && corepack pnpm run verify3. Tool Surface
Connection and Fallback (4)
Tool | Purpose |
| Bridge status, connection command, subscribed events, cumulative command count. Check this first on any failure |
| Block until the game connects (single wait up to 120 seconds) |
| Single-line raw slash command; fallback when no dedicated tool exists |
| Execute multiple raw commands in sequence |
Agent — Hands and Feet (10)
Tool | Purpose |
| Summon an Agent |
| Walk N cells in a given direction |
| Turn left/right, 90 degrees each time |
| Call a lost Agent back to the player's side |
| attack/destroy/till, can be chained |
| Place a block from an inventory slot |
| Pick up dropped items |
| count/space/detail/drop/dropAll/transfer |
| inspect/inspectData/detect/detectRedstone — the Agent's eyes |
| Send an entire action program at once, reporting results step by step |
Agent direction is relative to its own facing, not world orientation.
World (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 (time/weather/game rules/difficulty), mc_structure (save/load structures), mc_ticking_area.
mc_query_target parses the JSON string returned by querytarget — this is the proper way to get player or Agent coordinates. Ask it before building.
Reading has inherent limitations, and it's better to state them clearly than to pretend they don't exist. Education has no "read any block" command, so:
mc_test_blockis a yes/no question: you have to guess a block ID first.mc_read_blockdoesn't require guessing — it uses air as a sentinel to ask, and when the guess is wrong, the game message reveals the actual block. But what it returns is a localized display name ("dirt" in Chinese) rather than a block ID (dirt), so it can't be fed back intomc_set_block. When parsing fails, this tool returns an error, not a successful response withnull— the reason is below.mc_verify_readingproactively verifies that the parsing path above still works. Run it once before class to know whethermc_read_blockresults can be trusted.mc_compare_regionscompares an entire region with a singletestforblocks. Per-cell comparison hits host timeouts beyond a few hundred cells; this one doesn't.maskedmode ignores source air, which suits checking "whether the things that should be there are there" regardless of extra surroundings — grading student work is exactly this shape.
Why a parse failure returns an error rather than null
Because the user of this tool is an AI, and an AI doesn't suspect the system is broken.
A "successful" response with block: null is easily read as "read it, it's empty there." The AI will then very confidently continue based on this wrong belief — for example, overwriting a student's entire class-period work as if it were empty ground, with no error record to trace afterward. A human seeing null would find it odd and stop to debug; an AI won't.
An error can't be consumed as data and continued on. That's the point.
mc_verify_reading is the other half: it doesn't need to know what's in the cell in advance — if the cell is air, it asks with bedrock (air can't be bedrock, guaranteeing a mismatch) to force a failure message; if the cell has something, the first question already yields a message. Both paths guarantee a message, at most two commands, and nothing is written to the world.
This defense line is guarded by mutation tests: deliberately breaking the parsing rules must turn 7 probe-and-parser tests red.
For reading an entire region cell by cell, use behavior packs and the Script API; this project deliberately avoids that path because it would add an extra installation step on school computers.
Iterating on the Same Building
mc_structure's saveMode is designed exactly for this:
Mode | When to use | Lifecycle |
| When the AI is modifying a building and wants a fallback — save a version, load it back if the edit goes wrong | Disappears when the game closes; nothing on disk |
| When the user explicitly asks to keep it ("help me remember this building") | Written to the world folder; survives game close |
Version management is just naming: castle_v1, castle_v2. Same name overwrites directly; change the name before changing versions.
The game has no "list saved structures" command, so what's been saved can only be tracked by name. The bridge remembers the names saved during the current connection — ask mc_status to see them — but that only covers this process and is gone after restart (the disk-mode files remain; you have to remember the names yourself).
Symmetry Analysis — Grading Work
mc_analyze_symmetry checks whether a region is mirror-symmetric, and when it isn't, it points out which cells are asymmetric rather than just returning a "no."
How it works: testforblocks only does translation comparison, not mirroring, so the region is first saved with structure save, then loaded with the mirror parameter into a scratch area, and the two regions are compared. A full pass scores 100%; only on failure does it break down into n³ per-cell comparison, with the score being the proportion of matching cells.
This tool temporarily writes to the world, and the flow below leaves no mess if any step fails:
Save the analysis region — abort on failure (usually an unloaded chunk).
Back up the scratch region first — abort on backup failure, and never place the mirrored copy, leaving the world untouched.
Place the mirrored copy and compare.
Restore the scratch region and delete the scratch structure regardless of success or failure; the restore result is truthfully reported in
scratchRestored, with no whitewashing on failure.
The scratch region must not overlap the analysis region, or the mirrored copy would overwrite the original building — this check happens before any command is sent.
Player and Feedback (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 (sound/particle).
Building (4)
Tool | Purpose |
| Compute only, don't build: block count, bounding box, fill batch count |
| line/box/sphere/ellipsoid/cylinder/cone/pyramid/disk/torus/helix/curve/revolution, most support hollow |
| Preview for per-cell blueprints |
| Arbitrary shapes: give a "coordinate → block" list, identical blocks auto-merged |
Events — Perception (4)
mc_events_catalog, mc_events_subscribe, mc_events_unsubscribe, mc_events_poll.
Events go into a ring buffer, read continuously with a cursor; dropped > 0 means polling is too slow and some events will never be read. Subscriptions are automatically re-established after reconnection.
4. Why Building Doesn't Freeze
The naive approach sends one setblock per block. A solid sphere of radius 20 has over 33,000 cells — over 30,000 WebSocket round trips, which in practice is equivalent to freezing.
BlockHand's pipeline is:
形狀參數 → inside() 判定掃描 → 方塊座標集合
→ X 連段合併 → Z 矩形合併 → Y 立方合併(三階段 greedy)
→ 依 Bedrock 單次 /fill 上限 32768 拆批
→ 送出A solid sphere of radius 8 is compressed from over 2,000 blocks to fewer than 200 commands, and the merge result is deterministic — the same input always yields the same batches, so tests pin down that "the set of blocks covered after merging must be exactly identical to the original point set," with neither over- nor under-coverage.
Hollow shapes are always implemented via "interior test + shell neighbor test" rather than a separate hollow math for each shape. Adding a new shape only requires writing inside(), and hollow behavior is automatically consistent.
5. Safety Boundaries
What it doesn't do
No external network: the WebSocket listener only opens on
127.0.0.1.The MCP runtime writes no host files: there is no artifact output path. Only when the user explicitly runs
setup:<client>/uninstall:<client>does that vendor's official CLI update local MCP settings.One exception to be clear about:
mc_structurewithsaveMode="disk"writes structure files through the game into Minecraft's world folder. That's not the MCP runtime writing files, but it does leave something on the user's disk. So the default ismemory(temporary, gone when the game closes);diskshould only be used when the user explicitly asks to keep something, and the tool reply always states where it wrote — no silent file drops.No secrets: the entire project has no tokens, accounts, or credentials.
No proactive connections: if the game doesn't
/connectin, all tools return actionable error messages rather than failing silently.
The mc_run_command gate
Architecture principle 4 in mcp/README.md requires rejecting arbitrary execution entry points. The judgment here: slash commands operate entirely within the local game world, never touching the host filesystem, processes, or network, so they don't equal arbitrary code execution. What must actually be blocked are operations that would break the bridge, so the policy is structural rather than a keyword blacklist guessing intent:
Only single lines are allowed — newlines and NUL are rejected outright;
\ncan't split one request into two commands.wsserverandconnectare rejected — they would point the game at a different endpoint, breaking all tools afterward.Other commands are tagged with
read-only/world-write/wide-effectrisk levels, leaving it to the MCP Host to decide, per annotations, whether human confirmation is needed.
All block IDs, selectors, and state strings that get interpolated into command lines pass through a whitelist regex first, preventing whitespace from being used to smuggle in extra arguments.
Classroom protection (on by default)
Point 3 above delegates the decision to the Host, which works in solo development, but this project's use site is a classroom:
The Host may be set to auto-approve — teachers do this easily for smooth class flow.
Any student who can talk to that AI can effectively issue commands. They don't need to break the bridge; they just need to persuade the model.
Misuse doesn't even need raw commands:
mc_player_actionnatively accepts@aandkillis one of its options. So blocking only raw commands is theater; both paths must be blocked.
The rule is shaped into a sentence a teacher can teach: actions that affect "people" must name them individually.
Path | Behavior |
Raw commands | Directly reject |
|
|
Building and world settings | Completely unaffected ( |
"Kill the whole class" thus goes from a single sentence to having to name each student individually, while legitimate classroom management (clearing one student's inventory) is completely unaffected.
To disable, set MINECRAFT_EDU_CLASSROOM_GUARD=0 — the error message itself tells you this, so no one thinks the tool is broken.
Trademark
Per the Minecraft Usage Guidelines, third-party tools must not look like official products. The product name BlockHand deliberately contains no Minecraft trademark; minecraft-edu is merely a descriptive folder name within this private workspace. If this is ever released publicly, the package name and any public exposure must be re-reviewed.
6. Settings
All variables have defaults; .env is not required.
Variable | Default | Description |
|
| Listening address; by default binds only to loopback |
|
| Preferred listening port; the actual value is what |
|
| When the preferred port is taken by another MCP task, the OS automatically assigns a free port; set to |
|
| Timeout for a single command waiting for the game's response |
|
| Interval for sending keepalive probes ( |
|
| Number of entries in the event ring buffer |
|
| Maximum number of blocks per build operation; rejected if exceeded |
|
| Classroom guard: actions affecting players must name them explicitly; raw commands reject kill/kick/op/deop/clear/ability. Set |
|
| Default interval between steps of an Agent program |
| unset | Setting it to |
7. Module Map
src/
domain/ 純資料與純邏輯,不依賴 MCP、ws 或 Node
contracts.ts 型別、已知事件名、Bedrock fill 上限
coordinates.ts 絕對/相對/局部座標格式化與邊界檢查
commands.ts 所有 slash 指令建構器 + 注入白名單
command-policy.ts raw 指令的結構性閘門
build/shapes.ts 十種形狀;inside() + 外殼鄰居測試
build/fill-planner.ts 三階段 greedy 合併 + 依上限拆批
ports/minecraft-connection.ts 連線抽象;測試靠它塞假件
adapters/ws-minecraft-connection.ts WebSocket 監聽、requestId 對應、事件緩衝、重連重訂閱
application/
blockhand-service.ts Agent 程式展開、querytarget 解析、事件
build-service.ts 規劃與執行分離(先讀後寫)
server/
create-server.ts server 實例與給 Host 的操作指引
schemas.ts 共用 zod 片段
tool-kit.ts 回應塑形與錯誤包裝
tools/ session/agent/world/player/build/event
composition.ts 組裝;可注入假連線
index.ts stdio 入口The domain layer is completely unaware of WebSocket, so the entire MCP tool pipeline can be tested end-to-end with pure in-memory fakes—the 16 tests in tests/integration/mcp-client.test.ts don't require launching the game.
8. Known Limitations
The world must have cheats enabled, otherwise the game rejects every command. This is a Minecraft rule, not a bug.
macOS has been live-verified on real hardware (Claude Code path): On 2026-08-25,
/connect, heavy read/write (over 45,000 blocks in a single session, includingfill/setblock/testforblock/teleport), and the full disconnect-reconnect flow were completed on macOS via Claude Code. Not yet verified is the launch path of "starting Codex Desktop from Finder"—GUI launches inherit PATH and environment variables differently and still need individual testing.Agent is exclusive to Education Edition; the regular Bedrock edition doesn't have this feature.
Event names and
agentsubcommands are not officially documented by Mojang; they come from public observation, and game updates may change behavior.mc_events_subscribeallows names outside the list but marks them as unverified.The argument order of
agent setitemis unconfirmed; no dedicated tool has been made for it yet. When needed, usemc_run_command.@smay not resolve under WebSocket commands: commands sent through the bridge have no entity identity, and in practicequerytarget @sreturns no response at all.mc_query_targettherefore defaults to@p(nearest player), andlivealso tries@p→@a→@e[type=player]in order, reporting each result.Large builds may hit the MCP host's request timeout: the build tool sends each
fillone by one and waits for the game's response; in practice, a hollow sphere of radius 6 (126 commands) takes about 13 seconds, but longer when the game is busy. MCP clients default to a 60-second timeout; exceeding it causes the request to be cut off at the host (the tool itself keeps running). Usemc_build_previewto checkfillBatchesfirst, and build in batches when the count is large.Each BlockHand process still holds its own listening port: when the STDIO client closes, the server closes the Minecraft WebSocket and releases the port in sync. When the AI tool's desktop version loads multiple tasks at once, or when desktop/CLI/IDE run in parallel, the first instance gets the preferred port and the rest automatically get free ports; always use the current task's
mc_status.connectCommandto have the game connect to the instance you actually want to operate. If you need a fixed port, assign differentMINECRAFT_EDU_WS_PORTvalues to each client, or setMINECRAFT_EDU_WS_PORT_FALLBACKto0.The first command after the handshake used to always time out; now fixed: reproduced in four independent real-device runs—the game sends an encrypted frame before the server has its decryptor in place, and the stream misalignment makes the next request's response unreadable. AES-CFB8 self-synchronizes, so only the first command is affected. The adapter now automatically sends a read-only
time query daytimeafter the handshake to absorb that loss and discards the result, so the caller's first action works normally. stderr logsprimed post-handshake stream.Events fire only when they actually happen:
BlockPlacedfires only when a player places a block by hand; neither/setblocknor/fillcounts. To receive events, you must subscribe first, then make the event actually happen.Some responses have requestIds that don't match the request (IDs of all zeros have been observed). When only one pending request remains, the adapter attributes the response to it and logs in stderr that this was inferred; otherwise those requests time out silently, and the caller only sees "no response" rather than the real failure reason.
Only one game connection is maintained at a time; a new connection replaces the old one.
Environment verified on real hardware: Minecraft Education 1.26.32.0 (Win32 desktop). If you switch to the Microsoft Store UWP version, loopback is blocked by Windows app isolation and requires an additional
CheckNetIsolation LoopbackExemptexemption. Seeagents/docs/macos-support.mdfor the macOS 14+ acceptance matrix.
9. License
This project is released under the MIT License. You are free to use, modify, distribute, and sublicense it, including for commercial purposes, with the sole condition that the original copyright notice and license terms be retained.
The software is provided "as is", without any express or implied warranty.
Minecraft and Minecraft Education are trademarks of Mojang Studios and Microsoft; this project is not affiliated with or endorsed by either.
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
Protocol-native energy infrastructure orchestration for AI data centers. Provides 46 MCP tools across 8 grid protocols (IEC-61850, DNP3, Modbus, OCPP, OpenADR, IEEE 2030.5, IEC 60870-5-104, ICCP) with 5 core API primitives: connect, dispatch, settle, comply, and intel. Enables AI agents to programmatically interact with substations, grid interfaces, and energy assets for real-time workload-grid coordination.
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
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.2115MIT
- AlicenseBqualityBmaintenanceEnables 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.5330 npm1Apache 2.0
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to control a Minecraft bot for movement, building, crafting, and instant schematic-based structure spawning via MCP tools.30 npm2Apache 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