BlockHand
BlockHand(積木之手)— Minecraft Education MCP
AI가 Minecraft Education Edition에서 손과 발을 갖게 합니다: 동작(Agent 이동, 채굴, 배치, 경작, 운반), 눈(블록 감지, 좌표 조회, 게임 이벤트 구독), 창조(10가지 기하 도형과 격자 단위 청사진).
Minecraft Education 공식 문서화된 /wsserver 연결 명령(/connect는 alias)으로 작동하며, 프로세스 주입, 게임 파일 수정, 화면 인식 없이 동작합니다. 연결 명령은 공식 인터페이스입니다. 이후 WebSocket 메시지 프로토콜은 공개된 안정성 보장이 없으므로, 게임 업데이트 후에는 재검증이 필요합니다.
42개 도구, 2개 리소스
216개 단위·통합 테스트, 게임 실행 없이 가능한 stdio/프로세스 수명주기 smoke 1개, 실기기 live 검증 1개
계정, 토큰, 비밀번호 불필요; MCP 런타임은 loopback에만 바인딩되며 게임 파일이나 artifact를 쓰지 않음
1. 3단계 시작하기
1단계: 각 머신에 설치 및 빌드
cd /你的路徑/minecraft-edu
corepack pnpm install --frozen-lockfile
corepack pnpm run buildNode는 프로젝트 .nvmrc가 지정한 22.23.1이어야 하며, pnpm은 Corepack으로 11.17.0에 고정됩니다. Windows와 Mac 모두 로컬에 의존성을 설치해야 합니다. 다른 OS의 node_modules를 복사하지 마세요. Minecraft Education의 Mac 최소 요구 사항은 현재 macOS 14입니다.
2단계: 해당 머신에 MCP 등록 1회
Codex/Claude Code/Gemini CLI/Grok CLI를 지원하며, Windows와 macOS 모두 동일합니다.
먼저 두 개의 절대 경로 확보
등록 시 반드시 절대 경로를 사용해야 하며, node만 적으면 안 됩니다. 데스크톱 AI 도구는 Finder/파일 탐색기에서 실행되므로 셸의 nvm, Homebrew 또는 PATH를 읽지 못합니다. node라고 적으면 터미널에서는 테스트가 통과하지만, 데스크톱 버전으로 바꾸면 시작이 실패하고 오류 메시지는 대개 "server가 응답하지 않음"이라고만 나와서 디버깅이 어렵습니다.
macOS:
node -p "process.execPath" # Node 絕對路徑
pwd # 專案絕對路徑(在 minecraft-edu 目錄下執行)Windows(PowerShell):
node -p "process.execPath"
(Get-Location).Path아래에서 <NODE>는 Node 절대 경로, <REPO>는 프로젝트 절대 경로를 나타냅니다. 서버 진입점은 고정적으로 <REPO>/dist/index.js입니다(Windows에서는 <REPO>\dist\index.js). 경로에 공백이 있으면 전체를 따옴표로 감쌉니다.
설치 프로그램 사용(4개 모두 지원, 권장)
corepack pnpm run setup:codex # 或 setup:claude / setup:gemini / setup:grok
corepack pnpm run doctor # 加 --client=claude 等可診斷其他家설치 프로그램은 단순히 명령을 설정 파일에 쓰는 것이 아니라 다음을 수행합니다:
이 머신의 절대 Node 경로를 자동으로 채움 — 데스크톱 프로그램이 nvm, Homebrew 또는 셸 PATH를 읽을 수 있는지에 의존하지 않습니다.
실제 MCP initialize를 먼저 실행(곧 기록될 command/args/env 사용)하여 42개 도구가 모두 있는지 확인한 후에만 영구 설정을 변경합니다. 오래된 dist, 잘못된 launcher, 실행 불가능한 Node는 기록 전에 실패합니다.
이미 올바르게 등록되어 있으면 아무것도 하지 않으며, 재실행해도 안전합니다.
같은 이름이지만 호환되지 않으면 멈추고 차이점을 나열하며, 자동 remove/add를 하지 않아 다른 사람의 timeout, tool policy 또는 다른 clone의 설정을 덮어쓰지 않습니다.
각 사의 공식
mcp add/mcp remove하위 명령으로만 기록하며 설정 파일을 직접 수정하지 않습니다 — 그렇게 하면 각 사의 스키마 검증과 scope 해석을 우회하게 됩니다.
제거는 corepack pnpm run uninstall:codex(또는 uninstall:claude 등)를 사용합니다. 마찬가지로 오삭제 방지가 있습니다: 이 작업 트리에서 식별 가능한 entry가 아니면 거부합니다.
각 사의 기록 위치와 재시작 요구 사항:
Client | 기록 위치 | 이후 |
Codex |
| 완전히 종료 후 재시작; 데스크톱/CLI/IDE 공용 |
Claude Code |
| session 재시작 |
Gemini CLI |
| CLI 재시작 |
Grok CLI |
| CLI 재시작 |
읽기 전략에 차이가 있습니다: Codex와 Grok에는
mcp list --json이 있어 머신이 읽을 수 있는 출력을 직접 사용합니다. Claude Code와 Gemini의list는 사람이 읽을 수 있는 텍스트뿐이고 env를 포함하지 않아 호환성 판단이 불가능하므로, 각 사의 공식 CLI가 방금 기록한 설정 파일을 읽기 전용으로 확인합니다. 기록은 항상 CLI를 통해 수행됩니다.
수동 명령(설치 프로그램을 사용하지 않을 때)
명령은 동일하지만 절대 경로를 직접 채워야 하며, 사전 initialize 검증과 덮어쓰기 보호가 없습니다.
codex mcp add minecraft-edu --env MINECRAFT_EDU_WS_PORT=19131 -- <NODE> <REPO>/dist/index.js
claude mcp add minecraft-edu --scope user --env MINECRAFT_EDU_WS_PORT=19131 -- <NODE> <REPO>/dist/index.js
gemini mcp add minecraft-edu <NODE> <REPO>/dist/index.js --scope user --env MINECRAFT_EDU_WS_PORT=19131
grok mcp add minecraft-edu --scope user --env MINECRAFT_EDU_WS_PORT=19131 -- <NODE> <REPO>/dist/index.js자주 실수하는 세 가지 차이점:
Gemini의 command와 args는 위치 매개변수로, 이름 뒤에 붙으며
--구분자가 없습니다.Gemini의 기본 scope는 project이므로 전역에서 사용하려면 반드시
--scope user를 명시해야 합니다.Claude의 기본 scope는 local(현재 디렉터리에서만 적용);
--scope project는 프로젝트 루트의.mcp.json에 기록되어 repo와 함께 공유할 수 있으며, 반 전체가 함께 사용할 때는 이 옵션을 사용합니다.
설정 파일 수동 작성(설치 프로그램이 실패할 때의 대비책)
Claude Code와 Gemini CLI는 JSON 사용:
{
"mcpServers": {
"minecraft-edu": {
"command": "<NODE>",
"args": ["<REPO>/dist/index.js"],
"env": { "MINECRAFT_EDU_WS_PORT": "19131" }
}
}
}Codex와 Grok CLI는 TOML 사용:
[mcp_servers.minecraft-edu]
command = "<NODE>"
args = ["<REPO>/dist/index.js"]
env = { MINECRAFT_EDU_WS_PORT = "19131" }Windows 참고 사항
Node 절대 경로는 보통
C:\Program Files\nodejs\node.exe이며, nvm-windows를 사용하면C:\Users\<사용자>\AppData\Roaming\nvm\v22.23.1\node.exe와 같습니다.JSON 설정 파일에서는 백슬래시를 이스케이프해야 합니다:
"C:\\Program Files\\nodejs\\node.exe". TOML은 작은따옴표 리터럴 문자열을 사용할 수 있습니다:command = 'C:\Program Files\nodejs\node.exe'.Minecraft Education이 Microsoft Store의 UWP 버전이면 loopback이 Windows 앱 격리로 차단되므로 추가
CheckNetIsolation LoopbackExempt면제가 필요합니다(8절 참조).
등록 후
해당 AI 도구를 완전히 종료하고 재시작하세요 — 데스크톱 버전은 창을 닫는 것이 아니라 프로그램을 실제로 종료해야 합니다. 그런 다음 doctor로 확인합니다(Minecraft를 건드리지 않고 설정도 변경하지 않음):
corepack pnpm run doctorNode 버전, 빌드 산출물, 플랫폼 요구 사항, 등록 상태를 확인하고, 실제 등록된 command/args/env로 MCP initialize를 다시 실행하여 설정이 유효하지 않은 Node를 가리키면서도 그린 라이트를 보여주는 일이 없도록 합니다. --json을 추가하면 구조화된 출력을 얻을 수 있습니다. 각 사의 CLI에 직접 물어볼 수도 있습니다:
codex mcp list
claude mcp list
gemini mcp list
grok mcp list또는 AI에게 직접 mc_status를 호출하라고 하면, connectCommand를 반환하는지로 server가 뜰 수 있는지 알 수 있습니다.
각 머신마다 각각 한 번씩 등록해야 합니다: Windows 노트북, Mac, 다른 컴퓨터의 Node와 프로젝트 절대 경로가 모두 다르므로 설정을 서로 복사할 수 없습니다. 같은 머신에서 같은 도구의 데스크톱 버전/CLI/IDE는 동일한 설정을 공유합니다.
3단계: 게임에서 수동으로 연결
corepack pnpm run connect이 호환 진입점은 조작 방법만 표시하며, Minecraft를 열지 않고, 전경 창을 전환하지 않으며, 키보드를 시뮬레이션하지 않습니다. Windows PowerShell 자동 입력 기능은 제거되었습니다. Mac에도 AppleScript 자동화를 추가하지 않습니다.
방향을 혼동하기 쉽습니다: 게임이 연결을 시도하는 쪽이고, MCP server가 연결을 받는 쪽입니다.
현재 AI 대화에서
mc_status를 호출하고, 반환된connectCommand를 복사합니다.Minecraft Education을 열고 세계에 진입합니다(메인 메뉴에 머무르는 것은 무효).
세계에서 Cheats가 켜져 있어야 하며, 조작자에게 Admin/OP 권한이 필요합니다.
채팅창에 수동으로 입력합니다. 예:
/connect 127.0.0.1:19131Connection established가 보이면 완료입니다. 이후 AI에게 "앞에 속이 빈 유리 구를 지어줘"라고 말하면 됩니다.
다시 연결할 때 전체를 다시 입력할 필요는 없습니다: 채팅창에서 T를 눌러 열고 ↑를 눌러 이전 명령을 불러온 다음 Enter를 누르면 됩니다.
초기 버전에는 "약 60초 유휴 시 반드시 연결 끊김" 버그가 있었습니다: heartbeat가 WebSocket pong frame만 인식했지만 Bedrock/Education 클라이언트는 pong을 절대 반환하지 않아 정상 연결이 자체 heartbeat에 의해 종료되었습니다. 현재는 수정되었습니다(들어오는 모든 패킷으로 활성 여부를 판단하고 애플리케이션 계층 탐지로 보완). 유휴로 인한 연결 끊김은 더 이상 발생하지 않아야 합니다. 그래도 끊기면 다시 빌드한
dist/를 실행 중인지 먼저 확인하세요.
19131을 고정으로 외우지 마세요: 데스크톱 버전, CLI, IDE 또는 여러 task가 동시에 실행될 때 나중에 시작된 MCP가 다른 빈 포트를 얻을 수 있습니다. 항상 현재 조작 중인 task가 보고한 명령을 사용하세요.
Related MCP server: Minecraft MCP Server
2. 실기기 검증
먼저 게임을 열지 않는 안전한 진단을 수행합니다:
corepack pnpm run doctor
# 機器可讀版本
corepack pnpm blockhand doctor --jsondoctor는 영구 설정을 수정하지 않고 Minecraft를 시작하지 않습니다. 격리된 loopback 소켓을 잠시 생성하여 launcher, 42개 tools, 2개 resources, stdio EOF, 리스닝 포트 해제를 검증하고, Codex 실제 등록된 command/args/env로 initialize를 한 번 더 완료하여 설정이 유효하지 않은 Node를 가리키면서 그린 라이트를 보여주는 일이 없도록 합니다.
게임이 켜져 있고, 세계가 로드되었고, 치트가 켜진 후:
cd gjlmotea/vibe/mcp/minecraft-edu && corepack pnpm run live스크립트는 입력할 /connect를 출력하고, 연결될 때까지 기다린 다음 전체 경로를 실행하며 각 항목에 PASS/FAIL을 보고합니다: 연결 → 플레이어 좌표 읽기 → 게임 내 발화 → 시간 설정 → Agent 소환 → 감지 → L자 경로 이동 → 빌드 미리보기 → 속이 빈 유리 구 건설 → 블록이 실제로 존재하는지 역검증 → 청사진 병합 → 이벤트 구독 및 수신 → 정책 게이트 → 데모 건축물 정리.
게임 업데이트 이후
블록 읽기(mc_read_block)는 testforblock 실패 메시지의 텍스트 형식에 의존하며, 이 형식에는 공식적인 안정성 보장이 없습니다. Minecraft Education이 자동 업데이트로 문구를 바꾸거나, 게임 언어가 번체/간체/영어가 아닌 다른 언어로 바뀌면 이 경로는 무효화됩니다.
실패는 조용합니다: 도구가 고장 나는 것이 아니라 "읽을 수 없다"고 말하기 시작할 뿐입니다. 그래서 이 프로젝트는 의도적으로 이를 매번 live에서 실행하는 정례 검사로 만들지 않았습니다 — 정례 검사는 초록불을 보면 안심하는 습관을 기르게 하며, 실제로 판단이 필요한 시점은 "행동이 수상해지는 그 순간"이지 매주 고정적으로 실행하는 그 한 번이 아닙니다.
필요할 때 능동적으로 판단하도록 변경:
mc_verify_reading { position: 任一座標 }최대 두 개의 명령을 보내고 세계에 전혀 쓰지 않으며 parseable을 반환합니다:
true→ 파싱 경로가 정상이며mc_read_block의 결과를 신뢰할 수 있습니다.false→ 프로토콜이 드리프트됨. 이 경우mc_read_block은null대신 항상 오류를 반환하므로(3절 참조) "읽을 수 없음"을 "거기가 비어 있음"으로 오인하는 일이 없습니다. 반환된raw는 게임의 원본 메시지이므로, 이를src/domain/block-report.ts의PATTERNS와 대조하면 어떤 패턴을 보완해야 하는지 알 수 있습니다.
이 도구를 실행하고 싶게 만드는 세 가지 신호:
mc_read_block이 오류를 반환하기 시작했는데, 게임에서 그 칸에 분명히 뭔가가 있는 것이 보입니다.게임이 방금 업데이트되었고, 읽기에 의존하는 작업(채점, 대칭 분석)을 앞두고 있습니다.
게임 언어를 변경했습니다.
server instructions에도 같은 단서가 들어 있어, AI가 행동이 수상할 때 스스로 이 도구를 찾아낼 수 있으므로 사용자가 알려줄 필요가 없습니다.
기본적으로 데모 건축물을 air로 되돌려 세계에 쓰레기를 남기지 않습니다. 남겨두고 보려면:
cd gjlmotea/vibe/mcp/minecraft-edu && node scripts/live-check.mjs --keep게임을 열지 않아도 되는 검증(타입, 테스트, build, stdio 핸드셰이크, STDIN 닫힘 시 포트 해제와 포트 점유 실패를 한 번에 실행):
cd gjlmotea/vibe/mcp/minecraft-edu && corepack pnpm run verify3. 도구 개요
연결 및 대비책(4)
도구 | 용도 |
| 브리지 상태, 연결 명령, 구독된 이벤트, 누적 명령 수. 어떤 실패든 먼저 이것을 확인 |
| 게임 연결을 차단하며 대기(단일 최대 120초) |
| 한 줄 raw slash 명령; 전용 도구가 없을 때의 대비책 |
| 여러 raw 명령을 순서대로 실행 |
Agent — 손과 발(10)
도구 | 용도 |
| Agent 소환 |
| 지정한 방향으로 N칸 이동 |
| 좌우 회전, 매번 90도 |
| 길을 잃은 Agent를 플레이어 곁으로 소환 |
| attack/destroy/till, 연속 가능 |
| 인벤토리 슬롯에서 블록 배치 |
| 드롭 아이템 줍기 |
| count/space/detail/drop/dropAll/transfer |
| inspect/inspectData/detect/detectRedstone —— Agent의 눈 |
| 전체 동작 프로그램을 한 번에 전송, 단계별 결과 보고 |
Agent 방향은 자신이 바라보는 방향 기준이지 세계 방위가 아닙니다.
세계(13)
mc_set_block, mc_fill, mc_clone, mc_test_block, mc_read_block, mc_verify_reading, mc_compare_regions, mc_analyze_symmetry, mc_query_target, mc_summon, mc_world_settings(시간/날씨/게임 규칙/난이도), mc_structure(구조 저장·불러오기), mc_ticking_area.
mc_query_target은 querytarget이 반환한 JSON 문자열을 파싱해 주며, 플레이어나 Agent 좌표를 얻는 정식 방법입니다 — 건설 전에 먼저 물어보세요.
읽기 영역에는 선천적 한계가 있으며, 없는 척하는 것보다 명확히 말하는 것이 낫습니다. Education에는 "임의 블록 읽기" 명령이 없으므로:
mc_test_block은 예/아니오 문제입니다: 먼저 블록 ID를 추측해야 합니다.mc_read_block은 추측할 필요가 없습니다 — 공기를 센티널로 사용해 물어보고, 추측이 틀리면 게임 메시지가 실제 블록을 알려줍니다. 하지만 반환되는 것은 지역화된 표시 이름("흙")이지 블록 ID(dirt)가 아니므로mc_set_block에 다시 넣을 수 없습니다. 파싱할 수 없으면 이 도구는null성공 응답이 아니라 오류를 반환합니다 — 이유는 아래 참조.mc_verify_reading은 위 파싱 경로가 여전히 유효한지 능동적으로 검증합니다. 수업 전에 한 번 실행하면mc_read_block의 결과를 믿을 수 있는지 알 수 있습니다.mc_compare_regions는 하나의testforblocks로 전체 영역을 비교합니다. 격자 단위 비교는 수백 칸 이상이면 host 타임아웃에 부딪히지만, 이 방식은 그렇지 않습니다.masked모드는 소스의 공기를 무시하므로 "있어야 할 것이 있는지"를 주변에 추가된 것이 무엇이든 상관없이 확인하기에 적합합니다 — 학생 작품 채점이 바로 이 형태입니다.
파싱 실패 시 null이 아니라 오류를 반환하는 이유
이 도구의 사용자는 AI이고, AI는 시스템 고장을 의심하지 않기 때문입니다.
"성공" 응답에 block: null이 붙으면 "읽었는데 거기가 비어 있다"로 읽히기 쉽습니다. 그러면 AI는 이 잘못된 인식을 바탕으로 매우 자신 있게 계속 작업합니다 — 예를 들어 학생이 한 시간 동안 지은 작품을 빈 땅으로 오인해 덮어버리고, 사후에 확인할 수 있는 오류 기록도 남지 않습니다. 사람은 null을 보면 이상하다고 느끼고 멈춰서 디버깅하지만, AI는 그렇지 않습니다.
오류는 데이터로 계속 사용될 수 없습니다. 이것이 핵심입니다.
mc_verify_reading은 나머지 절반입니다: 그 칸이 무엇인지 미리 알 필요가 없습니다 — 그 칸이 공기면 베드록으로 물어보고(공기가 베드록일 수 없으므로 불일치가 보장됨) 실패 메시지를 강제로 끌어냅니다; 그 칸에 뭔가가 있으면 첫 번째 질문에서 이미 메시지를 얻습니다. 두 경로 모두 메시지를 얻는 것이 보장되며, 최대 두 개의 명령이고 세계에 전혀 쓰지 않습니다.
이 방어선은 돌연변이 테스트로 지켜집니다: 의도적으로 파싱 규칙을 망가뜨리면 탐지와 파서를 합친 7개 테스트가 반드시 빨간불이 되어야 합니다.
전체 영역을 격자 단위로 읽으려면 행동 팩과 Script API를 사용하세요. 이 프로젝트는 의도적으로 그 길을 가지 않습니다. 학교 컴퓨터에 설치 단계가 하나 더 늘어나기 때문입니다.
같은 건축물을 반복 수정
mc_structure의 saveMode는 바로 이를 위해 설계되었습니다:
모드 | 언제 사용하는지 | 수명주기 |
| AI가 건축물을 수정할 때 퇴로를 남기고 싶을 때 — 한 버전 저장, 망치면 load로 복원 | 게임을 끄면 사라지고 하드디스크에 파일이 남지 않음 |
| 사용자가 명시적으로 보존을 요청할 때("이 건물 기억해줘") | 세계 폴더에 기록, 게임을 꺼도 유지됨 |
버전 관리는 이름 짓기입니다: castle_v1, castle_v2. 같은 이름이면 덮어쓰므로 버전을 바꾸기 전에 이름을 먼저 바꾸세요.
게임에는 저장된 구조 목록을 보여주는 명령이 없으므로 무엇을 저장했는지는 이름으로만 기억할 수 있습니다. 브리지는 이번 연결에서 저장한 목록을 기억하며 mc_status로 확인할 수 있습니다 — 하지만 이는 이번 프로세스에만 해당되고 재시작하면 사라집니다(disk 모드의 파일은 남아 있지만 이름은 직접 기억해야 합니다).
대칭 분석 — 작품 채점
mc_analyze_symmetry는 영역이 거울 대칭인지 확인하며, 비대칭일 때 어느 블록이 비대칭인지 지적해 주지 단순히 "아니오"만 던지지 않습니다.
원리: testforblocks는 평행 이동 비교만 하고 거울 반전은 하지 않으므로, 먼저 structure save로 영역을 저장한 다음 structure load의 mirror 매개변수로 거울 반전시켜 임시 영역에 배치하고, 두 영역을 비교합니다. 전체가 통과하면 바로 만점; 통과하지 못하면 n³ 칸으로 세분화해 격자 단위로 비교하며, 점수는 일치하는 칸의 비율입니다.
이 도구는 일시적으로 세계에 기록합니다. 흐름은 다음과 같으며, 어느 단계에서 실패해도 지저분한 상태를 남기지 않습니다:
분석 영역 저장 — 실패하면 중단(보통 청크가 로드되지 않은 경우).
먼저 임시 영역을 백업 — 백업 실패 시 중단하고 거울 복사본을 절대 배치하지 않으므로 세계는 전혀 손상되지 않습니다.
거울 복사본 배치, 비교.
성패와 무관하게 임시 영역을 복원하고 임시 구조를 삭제; 복원 결과는
scratchRestored에 사실대로 보고하며 실패를 미화하지 않습니다.
임시 영역은 분석 영역과 겹칠 수 없습니다. 그렇지 않으면 거울 복사본이 원본 건축물을 덮어버립니다 — 이 검사는 어떤 명령을 보내기 전에 수행됩니다.
플레이어 및 피드백(7)
mc_teleport, mc_give, mc_gamemode, mc_effect, mc_player_action(kill/clear/xp/ability), mc_message(say/tell/title/subtitle/actionbar), mc_feedback(효과음/입자).
건설(4)
도구 | 용도 |
| 계산만 하고 실행하지 않음: 블록 수, 경계 상자, fill 배치 수 |
| line/box/sphere/ellipsoid/cylinder/cone/pyramid/disk/torus/helix/curve/revolution, 대부분 hollow 지원 |
| 격자 단위 청사진 미리보기 |
| 임의 형태: "좌표 → 블록" 목록 제공, 같은 블록은 자동 병합 |
이벤트 — 감지(4)
mc_events_catalog, mc_events_subscribe, mc_events_unsubscribe, mc_events_poll.
이벤트는 링 버퍼에 들어가며 커서로 연속 읽습니다; dropped > 0은 폴링이 너무 느려 일부 이벤트를 영원히 읽지 못했음을 의미합니다. 재연결 후에는 자동으로 다시 구독합니다.
4. 건설이 멈추지 않는 이유
순진한 방법은 블록마다 setblock을 한 번씩 보내는 것입니다. 반지름 20의 속이 찬 구는 33,000개가 넘는 칸이므로 3만 번 이상의 WebSocket 왕복이 필요합니다 — 실질적으로 멈춤과 같습니다.
BlockHand의 파이프라인은:
形狀參數 → inside() 判定掃描 → 方塊座標集合
→ X 連段合併 → Z 矩形合併 → Y 立方合併(三階段 greedy)
→ 依 Bedrock 單次 /fill 上限 32768 拆批
→ 送出반지름 8의 속이 찬 구는 2,000개가 넘는 블록을 200개 미만의 명령으로 압축하며, 병합 결과는 결정적입니다 — 같은 입력은 항상 같은 배치를 얻으므로 "병합 후 덮는 블록 집합이 원본 점 집합과 완전히 동일해야 한다"는 테스트로 고정되어 있어 더 많이 덮거나 덜 덮는 일이 없습니다.
속이 빈 형태는 항상 "내부 판정 + 외곽 이웃 테스트"로 구현하며, 각 형태마다 별도의 속이 빈 수학을 작성하지 않습니다. 새 형태는 inside()만 작성하면 속이 빈 동작이 자동으로 일관됩니다.
5. 안전 경계
하지 않는 일
외부 네트워크에 연결하지 않음:
127.0.0.1에서만 WebSocket 리스닝.MCP 런타임은 호스트 파일을 쓰지 않음: artifact 출력 경로가 없습니다. 사용자가 명시적으로
setup:<client>/uninstall:<client>를 실행할 때만 해당 사의 공식 CLI가 로컬 MCP 설정을 업데이트합니다.예외 하나를 명확히 설명:
mc_structure의saveMode="disk"는 게임을 통해 구조를 파일로 기록하여 Minecraft 세계 폴더에 저장합니다. MCP 런타임이 파일을 쓰는 것은 아니지만, 사용자 하드디스크에 실제로 남는 것은 맞습니다. 그래서 기본값은memory(임시, 게임을 끄면 사라짐)이며, 사용자가 명시적으로 보존을 요청할 때만disk를 사용해야 하고, 도구 응답은 항상 어디에 기록했는지 알려줍니다 — 조용히 파일을 남기지 않습니다.비밀번호를 건드리지 않음: 프로젝트 전체에 token, 계정, 자격 증명이 없습니다.
능동적으로 연결하지 않음: 게임이
/connect로 들어오지 않으면 모든 도구는 따를 수 있는 오류 메시지를 반환하며 조용히 실패하지 않습니다.
mc_run_command의 게이트
mcp/README.md 아키텍처 원칙 4는 임의 실행 진입점을 거부하도록 요구합니다. 여기서의 판단은: slash 명령의 범위는 전적으로 로컬 게임 세계 내에 있으며, 호스트 파일 시스템, 프로세스, 네트워크에 닿지 않으므로 임의 코드 실행과 동일하지 않습니다. 실제로 막아야 하는 것은 브리지를 무효화하는 작업이므로, 정책은 의도를 추측하는 키워드 블랙리스트가 아니라 구조적입니다:
한 줄만 허용 — 줄바꿈과 NUL은 직접 거부하며,
\n으로 하나의 요청을 두 개의 명령으로 쪼갤 수 없습니다.wsserver와connect를 거부 — 게임을 다른 엔드포인트로 향하게 하여 이후 모든 도구가 무효화됩니다.나머지 명령은
read-only/world-write/wide-effect위험 등급으로 표시하고, MCP Host가 annotation에 따라 수동 확인 여부를 결정하도록 위임합니다.
명령줄에 삽입될 모든 블록 ID, 선택자, 상태 문자열은 먼저 화이트리스트 정규식을 통과하여 공백으로 추가 매개변수를 만들어내는 것을 방지합니다.
교실 보호(기본 켜짐)
위 3번은 결정권을 Host에 위임하는데, 이는 단인 개발 상황에서는 성립하지만 이 프로젝트의 사용 현장은 교실입니다:
Host가 자동 승인으로 설정될 수 있습니다 — 선생님이 수업을 원활하게 진행하려고 쉽게 그렇게 합니다.
학생이 그 AI에게 말할 수만 있으면 명령을 내릴 수 있는 것과 같습니다. 브리지를 해킹할 필요 없이 모델을 설득하면 됩니다.
오용은 raw 명령조차 필요 없습니다:
mc_player_action은 원래@a를 받고kill이 옵션 중 하나입니다. 그러므로 raw 명령만 막는 것은 쇼이고, 두 경로 모두 막아야 합니다.
규칙은 선생님에게 한 문장으로 가르칠 수 있는 형태로 만듭니다: "사람"에게 작용하는 동작은 반드시 이름을 명시해야 한다.
경로 | 동작 |
raw 명령 |
|
|
|
건설 및 세계 설정 | 전혀 영향 없음( |
"반 전체 몰살"은 따라서 한 문장에서 일일이 이름을 명시해야 하는 것으로 바뀌고, 합법적인 교실 관리(특정 학생의 인벤토리 비우기)는 전혀 영향받지 않습니다.
끄려면 MINECRAFT_EDU_CLASSROOM_GUARD=0을 설정하세요 — 오류 메시지 자체가 이 사실을 알려주므로 도구가 고장 났다고 오인하지 않습니다.
상표
Minecraft Usage Guidelines에 따라, 서드파티 도구는 공식 제품처럼 보여서는 안 됩니다. 제품명 BlockHand는 의도적으로 Minecraft 상표를 포함하지 않습니다. minecraft-edu는 이 비공개 작업 공간 안의 설명적인 폴더 이름일 뿐입니다. 향후 외부에 공개할 경우, 패키지 이름과 모든 공개 노출은 반드시 재검토해야 합니다.
6. 설정
모든 항목에 기본값이 있으며, .env는 필수가 아닙니다.
변수 | 기본값 | 설명 |
|
| 수신 주소; 기본값은 loopback에만 바인딩 |
|
| 우선 수신 포트; 실제 값은 |
|
| 우선 포트가 다른 MCP 작업에 점유되면 운영체제가 자동으로 빈 포트를 하나 배정함. |
|
| 단일 명령이 게임 응답을 기다리는 타임아웃 |
|
| 유휴 상태에서 keepalive 프로브( |
|
| 이벤트 링 버퍼 개수 |
|
| 단일 건설 블록 수 상한, 초과 시 거부 |
|
| 교실 보호: 플레이어에게 작용하는 동작은 반드시 이름을 명시해야 함. raw 명령은 kill/kick/op/deop/clear/ability를 거부함. |
|
| Agent 프로그램의 단계별 기본 간격 |
| 미설정 |
|
7. 모듈 지도
src/
domain/ 純資料與純邏輯,不依賴 MCP、ws 或 Node
contracts.ts 型別、已知事件名、Bedrock fill 上限
coordinates.ts 絕對/相對/局部座標格式化與邊界檢查
commands.ts 所有 slash 指令建構器 + 注入白名單
command-policy.ts raw 指令的結構性閘門
build/shapes.ts 十種形狀;inside() + 外殼鄰居測試
build/fill-planner.ts 三階段 greedy 合併 + 依上限拆批
ports/minecraft-connection.ts 連線抽象;測試靠它塞假件
adapters/ws-minecraft-connection.ts WebSocket 監聽、requestId 對應、事件緩衝、重連重訂閱
application/
blockhand-service.ts Agent 程式展開、querytarget 解析、事件
build-service.ts 規劃與執行分離(先讀後寫)
server/
create-server.ts server 實例與給 Host 的操作指引
schemas.ts 共用 zod 片段
tool-kit.ts 回應塑形與錯誤包裝
tools/ session/agent/world/player/build/event
composition.ts 組裝;可注入假連線
index.ts stdio 入口도메인 계층은 WebSocket의 존재를 전혀 알지 못하므로, MCP 도구 파이프라인 전체를 순수 메모리 페이크로 끝까지 테스트할 수 있습니다. tests/integration/mcp-client.test.ts의 16개 테스트는 게임을 실행할 필요가 없습니다.
8. 알려진 제한 사항
세계에서 반드시 치트를 켜야 함 — 그렇지 않으면 게임이 모든 명령을 거부합니다. 이는 Minecraft의 규칙이지 버그가 아닙니다.
macOS에서 실기 live 검증 완료(Claude Code 경로): 2026-08-25에 macOS에서 Claude Code를 통해
/connect, 대량 읽기/쓰기(단일 세션에서 45,000개 이상의 블록,fill/setblock/testforblock/teleport포함), 연결 끊김 후 재연결 전체 흐름을 완료했습니다. 아직 검증되지 않은 것은 "Finder에서 Codex Desktop 시작" 경로입니다. GUI 시작은 PATH와 환경 변수 상속 방식이 다르므로 각각 실기 테스트가 필요합니다.Agent는 Education Edition 전용 — 일반 Bedrock 버전에는 이 기능이 없습니다.
이벤트 이름과
agent하위 명령은 Mojang이 공식적으로 문서화하지 않음 — 공개 관찰을 통해 얻은 것입니다. 게임 업데이트로 동작이 바뀔 수 있습니다.mc_events_subscribe는 목록에 없는 이름을 허용하지만, 검증되지 않음으로 표시합니다.agent setitem의 인자 순서는 확인되지 않음 — 현재 전용 도구로 만들지 않았으며, 필요할 때는mc_run_command를 사용하세요.@s는 WebSocket 명령에서 항상 해석되지는 않음 — 브리지를 통해 전달된 명령에는 엔티티 신원이 없어서, 실제 테스트에서querytarget @s는 전혀 응답이 없습니다. 따라서mc_query_target는 기본적으로@p(가장 가까운 플레이어)를 사용하며,live도@p→@a→@e[type=player]순서로 시도하고 각 결과를 보고합니다.대규모 건설은 MCP Host의 요청 타임아웃에 걸릴 수 있음 — 건설 도구는 fill을 한 줄씩 보내고 게임의 응답을 기다립니다. 실제 테스트에서 반지름 6의 속이 빈 구(126줄)는 약 13초가 걸리지만, 게임이 바쁠 때는 더 오래 걸립니다. MCP client의 기본 타임아웃은 대부분 60초이며, 이를 초과하면 Host 쪽에서 연결이 끊깁니다(도구 자체는 계속 실행 중). 먼저
mc_build_preview로fillBatches를 확인하고, 수량이 많으면 배치로 나누어 건설하세요.각 BlockHand 프로세스는 여전히 각자 수신 포트를 하나씩 보유함 — STDIO client가 닫히면 server는 Minecraft WebSocket을 함께 닫고 포트를 해제합니다. AI 도구의 데스크톱 버전이 여러 작업을 동시에 로드하거나, 데스크톱 버전/CLI/IDE를 병렬로 실행하면 첫 번째가 우선 포트를 얻고 나머지는 자동으로 빈 포트를 얻습니다. 항상 현재 작업의
mc_status.connectCommand를 사용해 게임이 실제로 조작하려는 인스턴스에 연결되게 하세요. 고정 포트가 필요하면 각 client에 서로 다른MINECRAFT_EDU_WS_PORT를 지정하거나MINECRAFT_EDU_WS_PORT_FALLBACK을0으로 설정하면 됩니다.핸드셰이크 후 첫 번째 명령이 반드시 타임아웃되던 문제를 수정함 — 네 번의 독립된 실기 실행 모두에서 재현되었습니다. 게임이 서버에 복호화기가 준비되기 전에 암호화 프레임을 하나 보내고, 스트림이 어긋나면서 다음 요청의 응답을 읽을 수 없게 됩니다. AES-CFB8은 자기 동기화(self-synchronizing) 방식이므로 첫 번째에만 영향을 줍니다. 이제 adapter는 핸드셰이크 완료 후 읽기 전용
time query daytime을 자동으로 한 번 보내 그 손실을 흡수하고 결과를 버리므로, 호출 측의 첫 동작은 정상적으로 실행됩니다. stderr에는primed post-handshake stream이 기록됩니다.이벤트는 실제로 발생할 때만 트리거됨 —
BlockPlaced는 플레이어가 직접 블록을 놓을 때만 발생하며,/setblock과/fill은 해당되지 않습니다. 이벤트를 받으려면 먼저 구독한 다음 이벤트가 실제로 발생하게 해야 합니다.일부 응답의 requestId는 요청과 일치하지 않음(전부 0인 ID를 반환하는 것이 관찰됨). adapter는 "대기 중인 요청이 하나만 남은" 경우 그 응답을 해당 요청에 귀속시키고, stderr에 추론된 것임을 기록합니다. 그렇지 않으면 해당 요청들은 끝까지 조용히 타임아웃되어, 호출 측은 실제 실패 원인이 아니라 "반응 없음"만 보게 됩니다.
게임 연결은 한 번에 하나만 유지되며, 새 연결이 이전 연결을 대체합니다.
실기 검증이 완료된 환경: Minecraft Education 1.26.32.0(Win32 데스크톱 버전). Microsoft Store의 UWP 버전으로 바꾸면 loopback이 Windows 앱 격리에 막혀 추가로
CheckNetIsolation LoopbackExempt면제가 필요합니다. macOS 14+의 검수 매트릭스는agents/docs/macos-support.md를 참조하세요.
9. 라이선스
이 프로젝트는 MIT License로 배포됩니다. 상업적 용도를 포함하여 자유롭게 사용, 수정, 배포 및 재라이선스할 수 있으며, 유일한 조건은 원본 저작권 고지와 라이선스 조항을 보존하는 것입니다.
소프트웨어는 "있는 그대로" 제공되며, 어떠한 명시적 또는 묵시적 보증도 수반되지 않습니다.
Minecraft, Minecraft Education은 Mojang Studios와 Microsoft의 상표입니다. 본 프로젝트는 두 회사와 제휴 관계가 없으며, 그로부터 보증을 받지 않았습니다.
Available Tools
42 toolsmc_agent_actAgent 攻擊/挖掘/耕地ADestructive
對指定方向做動作:attack 攻擊生物、destroy 挖掉方塊並收進背包、till 把泥土翻成耕地。repeat 可連續執行。Agent 是 Education Edition 專屬的機器人,必須先用 mc_agent_create 召喚。方向是相對 Agent 自身面向,不是世界方位。
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | ||
| repeat | No | ||
| delayMs | No | ||
| direction | No | forward |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| failed | Yes | |
| issued | Yes | |
| outcomes | Yes | |
| elapsedMs | Yes | |
| succeeded | Yes | |
| firstFailure | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal destructive behavior, but the description adds useful operational details beyond them: destroying puts blocks into the backpack, repeat allows consecutive executions, and direction is relative to the agent's facing. It also notes the agent is Education Edition exclusive and requires creation first. This gives an agent a clear behavioral model without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, with the main action semantics in the first sentence, then a note on repeat, a prerequisite, and a critical direction clarification. Each sentence earns its place, and there is no redundant repetition of the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema and the annotations already cover destructive intent, the description provides all necessary context for correct invocation: the prerequisite of mc_agent_create, the precise meaning of each action, the direction reference frame, and repeat behavior. An agent can confidently select and call this tool without needing additional information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does well by explaining the three action enum values (attack, destroy, till) and the meaning of direction (relative to agent facing). It also clarifies that repeat can be used for continuous execution. The delayMs parameter is not mentioned, but its meaning is self-evident from its name and schema defaults. Overall, it adds substantial meaning beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs three specific actions (attack, destroy, till) on a specified direction, distinguishing it from siblings like mc_agent_move or mc_agent_place. It even explains the effect of each action (e.g., destroy collects blocks into backpack) and clarifies the direction is relative to the agent's facing, leaving no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool: when the agent needs to attack, destroy, or till. It also includes a key prerequisite (must use mc_agent_create first) and explains direction semantics. However, it does not explicitly mention alternatives or when not to use it, but the action list itself implies the appropriate use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_agent_collectAgent 撿取掉落物A
撿取 Agent 附近的掉落物。item 留空代表全部撿。Agent 是 Education Edition 專屬的機器人,必須先用 mc_agent_create 召喚。方向是相對 Agent 自身面向,不是世界方位。
| Name | Required | Description | Default |
|---|---|---|---|
| item | No | 方塊 ID,例如 stone 或 minecraft:oak_planks |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | Yes | |
| elapsedMs | Yes | |
| statusCode | Yes | |
| commandLine | Yes | |
| statusMessage | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide no positive hints (all false), so the description carries the burden. It does add useful context: Agent is Education Edition-only, must be summoned first, and direction is relative to Agent facing. However, it does not disclose the mutating effect on the world or inventory, failure modes, or behavior when no items match.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with purpose, followed by parameter behavior, prerequisite, and orientation caveat. Every sentence contributes, though the direction note is only marginally relevant to a collect action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a simple 1-optional-parameter tool with an output schema present, the description is largely complete: purpose, optional parameter semantics, and the Education Edition/Agent-creation prerequisite are covered. Minor omissions like collection range or no-drop behavior do not seriously hurt usability.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and already defines item as a block ID with a null default, so baseline is 3. The description adds meaning beyond the schema by explaining that an empty item value collects all items, which is significant for the single parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 撿取 Agent 附近的掉落物 (collect dropped items near the Agent). This clearly distinguishes it from sibling tools like mc_agent_inventory, mc_agent_sense, or mc_give, whose purposes are different.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit usage context: item left blank means collect all, and the Agent must first be created with mc_agent_create. It also notes Education Edition exclusivity. It does not explicitly name alternative tools or state when not to use it, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_agent_create召喚 AgentAIdempotent
在玩家旁邊生成 Agent。已存在時重複呼叫是安全的。Agent 是 Education Edition 專屬的機器人,必須先用 mc_agent_create 召喚。方向是相對 Agent 自身面向,不是世界方位。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | Yes | |
| elapsedMs | Yes | |
| statusCode | Yes | |
| commandLine | Yes | |
| statusMessage | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true, and the description reinforces this by saying repeated calls are safe. It additionally discloses useful behaviors not in the structured fields: the Agent spawns beside the player, is Education Edition-exclusive, and the direction semantics are relative to the Agent's own facing rather than world orientation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief, front-loads the core action, and packs idempotency, edition exclusivity, prerequisite usage, and directional behavior into three sentences. It is not perfectly structured because the sentence '必須先用 mc_agent_create 召喚' is mildly self-referential, and the direction note is cryptic given that the tool has no input parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless, idempotent, non-destructive creation tool with an output schema, the description covers everything needed: what is created, where it appears, that it is repeat-safe, that it is Education Edition-only, and that it is the required prerequisite for Agent operations. No essential call context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema documents that fully, so the description has no parameter semantics to add. The directional note appears to describe Agent behavior rather than any input, and there is no schema gap needing compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb and resource: '生成 Agent' next to the player, and it identifies the Agent as an Education Edition-specific robot. It does not explicitly contrast this tool with sibling alternatives such as mc_summon, so it stops just short of the top score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives strong usage context by saying the Agent must be summoned with mc_agent_create first, and that repeated calls are safe. It also notes the Education Edition-only restriction, but it does not explicitly name alternative tools for non-Agent entities or state when not to use this tool beyond that restriction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_agent_inventoryAgent 背包操作A
對 Agent 背包做一件事:count 查槽內數量、space 查剩餘空間、detail 查物品細節、drop 丟出指定數量、dropAll 清空整槽方向、transfer 在槽之間搬移。Agent 是 Education Edition 專屬的機器人,必須先用 mc_agent_create 召喚。方向是相對 Agent 自身面向,不是世界方位。
| Name | Required | Description | Default |
|---|---|---|---|
| slot | No | count/space/detail/drop 需要 | |
| action | Yes | ||
| quantity | No | drop/transfer 需要 | |
| direction | No | drop/dropAll 需要 | |
| destinationSlot | No | transfer 需要 |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | Yes | |
| elapsedMs | Yes | |
| statusCode | Yes | |
| commandLine | Yes | |
| statusMessage | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false, so the description carries the burden. It reveals the direction relativity (important behavior) and lists actions, but it does not disclose consequences like whether dropping items removes them permanently or places them in the world, nor does it mention error handling or side effects. The term '清空整槽方向' is ambiguous about what happens to the items. Some transparency is provided, but significant gaps remain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (two sentences) and front-loads the action list. It avoids redundancy, though the first sentence is a long enumeration that could be structured more cleanly. Overall it is efficient and effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the return format is known. The description includes the prerequisite, direction semantics, and action list, covering key aspects for a multi-action tool with 5 parameters. It lacks discussion of error cases, permissions, or detailed side effects, but given the output schema and clear prerequisite, it is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 80%, which provides baseline, but the description adds value by mapping actions to parameters (e.g., 'count 查槽內數量') and clarifying that direction is relative to Agent's facing, not world orientation. This goes beyond the schema's enum listing. It also explains the necessity of mc_agent_create, aiding parameter interpretation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies the tool operates on the Agent backpack with a clear list of actions (count, space, detail, drop, dropAll, transfer), each with a brief meaning. It also explicitly states a prerequisite (Agent must be summoned with mc_agent_create) and clarifies a key distinction from world coordinates (direction relative to Agent's facing). This is a specific verb+resource description that differentiates it from siblings like mc_agent_act or mc_agent_move.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly states the prerequisite of using mc_agent_create and defines the tool's scope as Agent backpack operations. However, it does not explicitly mention when not to use it or name alternative tools for similar tasks. It provides clear context for invocation but lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_agent_moveAgent 移動A
讓 Agent 往指定方向走 steps 格,每格一條指令。被方塊擋住時該步會失敗但不會中斷後續。Agent 是 Education Edition 專屬的機器人,必須先用 mc_agent_create 召喚。方向是相對 Agent 自身面向,不是世界方位。
| Name | Required | Description | Default |
|---|---|---|---|
| steps | No | ||
| delayMs | No | 每步間隔,給遊戲時間完成移動 | |
| direction | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| failed | Yes | |
| issued | Yes | |
| outcomes | Yes | |
| elapsedMs | Yes | |
| succeeded | Yes | |
| firstFailure | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
因 annotations 全為 false,描述承擔了行為透明度的責任。它揭露了被方塊擋住時該步會失敗但不會中斷後續,以及每格一條指令的特性,超越了 annotations 提供的資訊。
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
三句話簡潔扼要:先講動作,再講失敗行為,最後講前置條件與方向定義。每句都有價值,無冗詞。
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
涵蓋了核心資訊:動作內容、失敗處理、前置條件及方向相對性。雖然未提及回傳值,但輸出 schema 存在,因此足夠完整。
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema 描述覆蓋率僅 33% (只有 delayMs 有描述),描述補充了 steps 代表的格數與 direction 的相對面向語意,有效填補了未描述參數的缺口。delayMs 則由 schema 提供。
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
明確的動詞與資源 (讓 Agent 走 steps 格),指出是 Agent 專用移動工具,並提及需先召喚,與 mc_agent_teleport 等兄弟工具明顯區隔。
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
明確指出前置條件 (必須先用 mc_agent_create 召喚),並解釋方向是相對自身面向而非世界方位,提供實際使用情境。但未直接說明與其他移動方式 (如 teleport) 的比較。
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_agent_placeAgent 放置方塊A
從指定背包槽(1–27)取出方塊放到指定方向。槽位空的時候會失敗。Agent 是 Education Edition 專屬的機器人,必須先用 mc_agent_create 召喚。方向是相對 Agent 自身面向,不是世界方位。
| Name | Required | Description | Default |
|---|---|---|---|
| slot | Yes | ||
| repeat | No | ||
| delayMs | No | ||
| direction | No | forward |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| failed | Yes | |
| issued | Yes | |
| outcomes | Yes | |
| elapsedMs | Yes | |
| succeeded | Yes | |
| firstFailure | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint: false, destructiveHint: false) indicate this is a mutating but non-destructive operation. The description adds meaningful behavioral details beyond annotations: it discloses that the tool fails if the slot is empty, that the Agent must be created first, and that direction is relative to the Agent's facing. These are operational constraints an agent needs to know. It does not mention repeat or delay behavior, but the annotations do not contradict the description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a compact three-sentence structure that front-loads the core action, then covers failure conditions, prerequisites, and a direction nuance. Each sentence delivers discrete, non-redundant information, and no space is wasted. This is appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists (so return values are documented) and annotations are present, the description covers the essential operational context: the prerequisite to create the Agent, the failure mode when the slot is empty, and the relative-direction semantics. It omits explicit mention of the repeat and delayMs behavior, but these are less critical for correct invocation. Overall, it is sufficiently complete for a moderately complex tool, with minor gaps around loop timing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% parameter descriptions, so the tool description must compensate. It adequately explains the 'slot' parameter (range 1-27, failure when empty) and the 'direction' parameter (relative to agent, six options). However, it provides no semantic clarity for 'repeat' and 'delayMs' parameters beyond what the schema's defaults and bounds convey. Since two of the four parameters are left unexplained, it only partially compensates for the missing schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('take a block from the specified inventory slot (1-27) and place it in the specified direction') with a specific verb, resource (agent's inventory slot), and destination (direction). It also distinguishes itself from related block-placement tools by specifying that it operates through the Agent robot, which is exclusive to Education Edition, and that it requires prior creation via mc_agent_create.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: it explicitly states the prerequisite that the Agent must be summoned with mc_agent_create, and it notes the critical behavioral distinction that direction is relative to the Agent's own facing, not the world orientation. However, it does not explicitly name or contrast with alternative block-placing tools like mc_set_block or mc_fill, leaving some ambiguity about when to prefer this tool over those.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_agent_program執行一段 Agent 程式ADestructive
把一連串 Agent 動作當成一支程式依序執行,這是讓 Agent 真正「做事」的主力工具:邊走邊鋪路、挖一條隧道、耕一整片田都用它。每步結果都會個別回報,可設定失敗即停。
| Name | Required | Description | Default |
|---|---|---|---|
| steps | Yes | ||
| delayMs | No | 每步間隔;null 使用預設 100 ms | |
| stopOnError | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| failed | Yes | |
| issued | Yes | |
| commands | Yes | |
| outcomes | Yes | |
| elapsedMs | Yes | |
| succeeded | Yes | |
| firstFailure | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the destructiveHint annotation, the description discloses sequential execution, per-step result reporting, and configurable stop-on-failure behavior. It does not detail the exact side effects or failure semantics, but adds meaningful behavioral context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with a clear front-loaded definition, followed by memorable use-case examples and the two most important behavioral switches. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the highly detailed union schema and existing output schema, the description covers the tool's core role, examples, sequencing, per-step output, and failure policy. It omits prerequisites such as agent existence and parameter details, but those are less critical for selecting and invoking the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description partially compensates for low schema coverage by clarifying that 'steps' are a chain of Agent actions and that stop-on-failure is configurable. It does not explain delayMs or the action object structures, leaving the rich item-level schema to carry most parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly defines the tool as executing a sequence of Agent actions as a program, with concrete examples such as paving while walking, digging a tunnel, and tilling a field. It distinguishes the batch/program nature from single-action siblings, though it does not explicitly name an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear context for when to use it: any multi-step, task-oriented Agent behavior, and calls it the main tool for making the Agent actually do things. It gives representative use cases, but does not explicitly say when to prefer single-action sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_agent_senseAgent 感測周遭ARead-onlyIdempotent
讀取 Agent 周圍狀態,不改變世界:inspect 看方塊種類、inspectData 看方塊資料值、detect 偵測該方向是否有實體方塊、detectRedstone 偵測紅石訊號。這是 Agent 的「眼睛」,行動前先看。
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | inspect | |
| direction | No | forward |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | Yes | |
| elapsedMs | Yes | |
| statusCode | Yes | |
| commandLine | Yes | |
| statusMessage | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description reinforces the non-destructive nature ('不改變世界') and adds specifics beyond the annotations: inspect returns block type, inspectData returns data values, detect checks for solid blocks, and detectRedstone checks redstone signals. These details align perfectly with readOnlyHint/idempotentHint and provide actionable behavioral expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no fluff. It front-loads the core purpose and safety property, then efficiently enumerates the modes, ending with a memorable usage metaphor. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the availability of an output schema and comprehensive annotations, the description covers all necessary context: what each mode does, that it is non-destructive, and when to use it. For a sensing tool with two enum parameters and no required fields, nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description takes on full responsibility for explaining the mode parameter. It explicitly defines each enum value, which is the critical parameter. The direction parameter values (forward/back/left/right/up/down) are self-explanatory standard directions, so no additional description is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reads the Agent's surroundings and does NOT change the world, listing four specific sensing modes (inspect, inspectData, detect, detectRedstone) with distinct purposes. This differentiates it from action-oriented siblings like mc_agent_act or mc_agent_move, making the tool's role unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase '這是 Agent 的「眼睛」,行動前先看' provides clear context: use this tool as a pre-action sensing step. While it doesn't explicitly compare against alternative read tools like mc_read_block or mc_query_target, it establishes a clear usage heuristic and when to invoke it (before acting).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_agent_teleportAgent 傳送到玩家身邊AIdempotent
把 Agent 叫到玩家旁邊。Agent 走丟、卡住或掉進洞裡時用這個回收。Agent 是 Education Edition 專屬的機器人,必須先用 mc_agent_create 召喚。方向是相對 Agent 自身面向,不是世界方位。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | Yes | |
| elapsedMs | Yes | |
| statusCode | Yes | |
| commandLine | Yes | |
| statusMessage | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral context beyond the annotations, noting the Agent is Education Edition exclusive, requires prior creation with mc_agent_create, and that direction is relative to the Agent's facing rather than world coordinates. The annotations (idempotentHint=true, destructiveHint=false) already cover the safety profile, so the description adds value without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences deliver the action, use cases, prerequisite, and a directional caveat without redundancy. Each sentence earns its place, and the main action is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters, an output schema present, and the description covering purpose, usage conditions, prerequisite, and a subtle behavioral detail, an agent has everything needed to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so the description does not need to explain parameter formats; the baseline of 4 applies since there is nothing to clarify.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource ('把 Agent 叫到玩家旁邊' – call the Agent to the player's side) and reinforces the purpose with the recovery use case ('Agent 走丟、卡住或掉進洞裡時用這個回收'). This clearly distinguishes it from sibling tools like mc_agent_move (targeted movement) and mc_teleport (general entity teleportation).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit conditions for use ('走丟、卡住或掉進洞裡時') and a prerequisite ('必須先用 mc_agent_create 召喚'), giving an agent clear context on when to invoke it. It does not explicitly name alternatives, but the use-case restrictions and prerequisite are sufficient for routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_agent_turnAgent 轉向A
讓 Agent 原地左轉或右轉,每次 90 度。times=2 等於轉身。Agent 是 Education Edition 專屬的機器人,必須先用 mc_agent_create 召喚。方向是相對 Agent 自身面向,不是世界方位。
| Name | Required | Description | Default |
|---|---|---|---|
| times | No | ||
| direction | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| failed | Yes | |
| issued | Yes | |
| outcomes | Yes | |
| elapsedMs | Yes | |
| succeeded | Yes | |
| firstFailure | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false and provide no real safety profile, so the description carries the behavioral disclosure burden. It discloses the core effect (rotate in place 90 degrees), the times=2 about-face behavior, and the relative-to-self orientation semantics. It omits failure modes or world interaction, but for a simple turn action this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: core action with degrees, times semantics, prerequisite, and coordinate-frame clarification. There is no filler, repetition of schema fields, or vague preamble.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only two parameters, an output schema present, and a simple behavior, the description covers the action, prerequisite, and orientation nuance. Nothing needed for a correct call is missing; the schema covers bounds and enums.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description compensates meaningfully: direction is clarified as relative to the Agent's own facing rather than world coordinates, and times is given a concrete behavioral meaning with the times=2 turn-around example. The schema already supplies min/max/default, so the description adds the missing semantic layer.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: '讓 Agent 原地左轉或右轉' (make the Agent turn left or right in place), specifies 90 degrees per turn, and thereby distinguishes itself from movement, placement, and collection siblings. The prerequisite and relative-direction note further sharpen what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly states a condition of use: the Agent must first be summoned with mc_agent_create, and it notes the Agent is Education Edition exclusive. It does not explicitly contrast with mc_agent_move or other orientation-affecting tools, but the in-place rotation semantics make the appropriate use case evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_analyze_symmetry分析建築的鏡像對稱程度ADestructiveIdempotent
檢查一塊區域是否左右(或前後)對稱,並在不對稱時指出哪幾塊不對稱。批改學生作品用這個:分數是對稱格子的比例,不是憑感覺。原理:testforblocks 只會平移比對不會鏡像,所以先用 structure save/load 的 mirror 參數做出鏡像副本,再跟原區比對。⚠️ 這會暫時寫入 scratch 指定的暫存區:流程一定先備份該區內容,比對完立刻還原;備份失敗就中止且不動世界。scratch 不可與分析區重疊,否則鏡像副本會蓋掉原始建築。區域受 structure 指令上限限制(64×384×64)。
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | 分析區的對角 | |
| from | Yes | 分析區的一角 | |
| mirror | No | 鏡射軸;x 檢查左右對稱、z 檢查前後對稱、xz 兩軸都要 | x |
| scratch | Yes | 暫存區最小角;會被覆蓋後還原,不可與分析區重疊 | |
| cellsPerAxis | No | 整體不對稱時的細分粒度;每軸 n 段共 n³ 格,每格一條指令 |
Output Schema
| Name | Required | Description |
|---|---|---|
| score | Yes | 0–100,對稱格子的比例 |
| mirror | Yes | |
| symmetric | Yes | |
| totalCells | Yes | |
| matchedCells | Yes | |
| commandsIssued | Yes | |
| asymmetricCells | Yes | |
| scratchRestored | Yes | false 代表暫存區沒還原成功,世界被留下改動 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the annotations by disclosing that the tool temporarily writes to the scratch region, backs it up before writing, restores it immediately after comparison, and aborts without modifying the world if backup fails. It also warns that overlapping scratch with the analysis region can destroy the original build and explains the underlying mirror-copy algorithm. This is excellent behavioral disclosure for a tool marked destructiveHint=true.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but efficient: it states purpose, method, safety behavior, and constraints in a few sentences. It is front-loaded with the primary function and then adds warnings. Slightly longer than strictly necessary, but every sentence carries useful information about behavior or limitations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's purpose, scoring semantics, algorithm, side effects, failure mode, safety restoration, overlap prohibition, and size limits. It also explains how asymmetric results are reported at a per-cell granularity. Combined with the output schema and annotations, nothing essential is missing for an agent to invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all five parameters. The description adds practical semantic value by explaining the roles of the symmetry axes (x/z/xz), the meaning of cellsPerAxis as per-axis subdivisions, and the critical constraint that scratch cannot overlap the analysis region. This extra context helps the agent choose parameter values correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('檢查'), resource (a region/building), and the core function: detecting whether a region is mirror-symmetric and identifying which sub-blocks are not. It also distinguishes the output as a quantitative score (proportion of symmetric cells) rather than a heuristic judgment, clearly differentiating it from a generic region comparison like mc_compare_regions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit use case: grading student builds with an objective symmetry score. It also provides important operational conditions, such as scratch must not overlap the analysis region and region size limits. It does not explicitly name alternative tools or state when not to use it, but the use-case guidance is concrete enough for an agent to select it appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_await_connection等待 Minecraft 連入ARead-only
阻塞等待遊戲連上橋接,最多等 timeoutSeconds 秒。逾時不算錯誤,只是回報 connected=false。適合在請使用者輸入 /connect 之後呼叫。
| Name | Required | Description | Default |
|---|---|---|---|
| timeoutSeconds | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| host | Yes | |
| port | Yes | |
| connected | Yes | |
| encrypted | Yes | |
| listening | Yes | |
| connectedAt | Yes | |
| bufferedEvents | Yes | |
| commandsIssued | Yes | |
| connectCommand | Yes | |
| connectionCount | Yes | |
| savedStructures | Yes | 本次連線存過的結構;遊戲沒有列出結構的指令,所以只能由橋接自己記 |
| subscribedEvents | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Even though readOnlyHint=true already signals safety, the description adds genuinely useful behavior: the call blocks, it has a timeout, a timeout is not an error, and it reports connected=false. This is exactly the kind of behavioral context an agent needs and is not present in annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences deliver the core behavior, the timeout semantics, and the intended invocation context with no filler. The most important fact—blocking wait with a maximum duration—is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with an output schema and read-only annotations, the description leaves no critical gap: it covers what the tool waits for, how long, how timeout is handled, and when to call it. The existing output schema supplies the return-structure detail that the description need not repeat.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description names timeoutSeconds and explains that it is the maximum wait in seconds. It also clarifies the semantic consequence of reaching that timeout (connected=false), compensating for the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a precise verb and resource: it blocks waiting for the game to connect to the bridge, with a timeout limit. This clearly distinguishes it from the sibling tools, none of which perform this bridge-connection wait. The added usage hint ('適合在請使用者輸入 /connect 之後呼叫') further anchors its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase '適合在請使用者輸入 /connect 之後呼叫' gives an explicit, actionable trigger for when to use this tool. It does not name alternatives or state when not to use it, so it stops short of a full when/when-not guide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_blueprint_preview預覽藍圖建造ARead-onlyIdempotent
只計算不動工:把一份逐格藍圖依方塊種類分組,回報總方塊數與合併後的 fill 批次數。
| Name | Required | Description | Default |
|---|---|---|---|
| entries | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| block | Yes | |
| shape | Yes | |
| bounds | Yes | |
| blockCount | Yes | |
| blockStates | Yes | |
| fillBatches | Yes | |
| savedCommands | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, and the description reinforces this by saying it only calculates and does not start work. It adds useful behavioral detail about grouping blocks by type and reporting merged fill batch counts. No contradiction with the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The entire description is one sentence with no filler. It front-loads the critical non-action guarantee ('只計算不動工') before stating the computation and outputs, making it easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Together with the read-only annotations, the rich input schema, and the output schema, the description provides enough context for correct invocation. A minor gap is that it does not specify how optional blockStates affect grouping or merged fill batch calculation, which could matter for blueprints that use block states.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage for the top-level 'entries' parameter is 0%, but the description identifies it as a per-cell blueprint, adding domain meaning. The item-level schema already documents position, block, and blockStates, though the description does not clarify whether blockStates participate in grouping, so compensation for the missing top-level description is only partial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a precise computation ('only calculates, does not start work') on a specific resource (a cell-by-cell blueprint) and names the exact outputs: total block count and merged fill batch count. This clearly distinguishes it from actual building tools like mc_fill or mc_build_blueprint.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase '只計算不動工' gives clear context that this is a planning-only tool and explicitly excludes performing construction. It does not name alternative sibling tools, but the boundary between calculating and building is clear enough for an agent to decide when to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_build_blueprint建造逐格藍圖ADestructiveIdempotent
蓋出任意形狀:直接給一份「座標 → 方塊」清單,相同方塊會自動合併成最少的 fill。幾何形狀請優先用 mc_build_shape;這個工具是給像素畫、文字、不規則造型或從外部資料轉來的模型用的。
| Name | Required | Description | Default |
|---|---|---|---|
| entries | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| plan | Yes | |
| failed | Yes | |
| issued | Yes | |
| outcomes | Yes | |
| elapsedMs | Yes | |
| succeeded | Yes | |
| firstFailure | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true, readOnlyHint=false. The description adds a non-obvious behavioral trait: identical blocks are automatically merged into the fewest possible fill commands, which affects execution cost and expectations. It does not contradict annotations. This extra context is valuable beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the primary action and input format, and the sibling routing is placed second. No redundant phrasing; every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Description plus schema and annotations cover what the tool does, when to use it, how input is structured, and the destructive/idempotent behavior. An output schema exists, so return values are accounted for. The only small gap is whether coordinates are absolute or relative, but Minecraft tool conventions and the plain integer schema make absolute coordinates the likely default, so this is not a serious omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description compensates by framing the sole parameter (entries) as a 'coordinate → block' list, which maps directly to the array of position/block pairs. It does not spell out the JSON structure or the optional blockStates, but the schema already provides those details, and the semantic framing is enough for an agent to form the correct input shape.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States '蓋出任意形狀' (build any shape) with a specific verb and resource, and immediately clarifies the input mechanism (coordinate→block list). It explicitly contrasts with sibling mc_build_shape, which is for geometric shapes, and lists its intended use cases (pixel art, text, irregular shapes, external data), so an agent can distinguish it from alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names the alternative tool mc_build_shape and gives a routing rule: prefer it for geometric shapes, use this for pixel art/text/irregular/external data. This is a clear when-to-use/alternative statement with no ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_build_preview預覽幾何建造ARead-onlyIdempotent
只計算不動工:回報這個形狀會用掉幾個方塊、邊界盒在哪、會拆成幾條 fill 指令。座標一律是絕對世界座標;不知道玩家在哪就先用 mc_query_target。建造會直接改變世界,動手前建議先用對應的 preview 工具看方塊數與邊界盒。
| Name | Required | Description | Default |
|---|---|---|---|
| block | Yes | 方塊 ID,例如 stone 或 minecraft:oak_planks | |
| shape | Yes | ||
| blockStates | No | 選用的方塊狀態,例如 ["stone_type":"granite"] |
Output Schema
| Name | Required | Description |
|---|---|---|
| block | Yes | |
| shape | Yes | |
| bounds | Yes | |
| blockCount | Yes | |
| blockStates | Yes | |
| fillBatches | Yes | |
| savedCommands | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnlyHint=true and idempotentHint=true. The description adds specifics: it reports block count, bounding box, and fill command count, and emphasizes absolute world coordinates. This goes beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero waste. The purpose is front-loaded, the coordinate caveat and tool suggestion are concise, and no irrelevant detail is included.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a preview tool with an output schema, the description adequately covers use, output highlights, and a coordinate prerequisite. It doesn't mention volume limits or edge cases, but those are likely in the output schema. It is sufficiently complete for an agent to call correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67% and the schema already documents shape variants and block states. The description adds no parameter-specific guidance (e.g., how to choose shape kind), so it stays at baseline without compensating for the uncovered parts of the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with '只計算不動工' (only calculate, don't build), a specific verb+resource that immediately distinguishes it from building tools. It then lists concrete outputs: block count, bounding box, and number of fill commands. This clearly differentiates it from siblings like mc_build_shape and mc_blueprint_preview.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It instructs to use mc_query_target when the player's location is unknown, and recommends using this preview tool before any build that changes the world. However, it doesn't explicitly name the building sibling (mc_build_shape) or state when NOT to use it, leaving some inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_build_shape建造幾何形狀ADestructiveIdempotent
直接在世界蓋出形狀:line 線、box 方體、sphere 球、ellipsoid 橢球、cylinder 圓柱、cone 圓錐、pyramid 金字塔、disk 圓盤/圓環、torus 甜甜圈、helix 螺旋。多數形狀有 hollow 可只蓋外殼。方塊座標會自動合併成最少的 fill 指令,所以蓋一顆半徑 20 的球只要幾百條指令而不是三萬條。座標一律是絕對世界座標;不知道玩家在哪就先用 mc_query_target。建造會直接改變世界,動手前建議先用對應的 preview 工具看方塊數與邊界盒。
| Name | Required | Description | Default |
|---|---|---|---|
| block | Yes | 方塊 ID,例如 stone 或 minecraft:oak_planks | |
| shape | Yes | ||
| blockStates | No | 選用的方塊狀態,例如 ["stone_type":"granite"] |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| plan | Yes | |
| failed | Yes | |
| issued | Yes | |
| outcomes | Yes | |
| elapsedMs | Yes | |
| succeeded | Yes | |
| firstFailure | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, and the description reinforces this ('建造會直接改變世界'). It adds valuable behavioral traits beyond annotations: block coordinates are automatically merged into minimal fill commands (efficiency behavior), and coordinates are always absolute world coordinates. It also notes that most shapes support hollow. No contradictions found.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and efficient: it starts with the core purpose, lists all shape kinds, mentions the hollow feature, explains the efficiency optimization, notes the coordinate system, and closes with usage guidance. Every sentence earns its place; there is no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (12 shape variants) and the presence of an output schema, the description covers the key points: shape types, hollow capability, coordinate behavior, efficiency, and safety advice. It doesn't enumerate every parameter because the schema does that, but it provides the behavioral context an agent needs to invoke it correctly. The only minor gap is not referencing the blockStates parameter, but that is adequately documented in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema itself provides rich description coverage (67%) with detailed descriptions for many shape-specific parameters (e.g., hollow, points, profile). The description adds the crucial note that coordinates are absolute world coordinates and that most shapes have a hollow option, which is not explicitly stated in the schema. The blockStates parameter is not mentioned in the description, but the schema covers it adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('蓋出形狀' - build shapes) and enumerates all shape kinds (line, box, sphere, etc.), making it easy to distinguish from sibling tools like mc_fill or mc_set_block. It also mentions the hollow option and the coordinate merging optimization, which further clarifies its unique role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit usage guidance: it advises using mc_query_target if unsure of player location, and recommends using the corresponding preview tool before building to check block count and bounding box. It also warns that building directly modifies the world, implying when to exercise caution. No exclusions are needed since the shape-building purpose is clear, but the alternative tools are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_clone複製一塊區域ADestructive
把 begin–end 的區域複製到 destination。cloneMode="move" 會把原地清空。適合把手工蓋好的樣板量產。
| Name | Required | Description | Default |
|---|---|---|---|
| end | Yes | ||
| begin | Yes | ||
| maskMode | No | ||
| cloneMode | No | ||
| destination | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | Yes | |
| elapsedMs | Yes | |
| statusCode | Yes | |
| commandLine | Yes | |
| statusMessage | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=true, so the mutation profile is known. The description adds value by disclosing the specific destructive trait 'cloneMode="move" 會把原地清空' (move mode clears the source), which is exactly the what-gets-destroyed context annotations cannot express. It does not mention that normal cloning also overwrites destination blocks, but the destructive hint covers the general risk.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with no filler: the operation, the key behavioral caveat, and the intended use case. The core purpose is front-loaded and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema and annotations cover return values and the safety profile, and the description covers the core flow plus the move-mode caveat. The main gap is that maskMode (a filter that meaningfully changes what gets copied) and the remaining cloneMode semantics are absent, so an agent invoking anything beyond defaults is left guessing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must compensate, and it partially does: it clarifies that begin–end defines the source region, destination is the copy target, and explains one cloneMode value ('move' clears the source). However, maskMode is never mentioned and the 'normal' and 'force' cloneMode values are left unexplained, leaving the compensation incomplete for a 5-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: '把 begin–end 的區域複製到 destination' (copy the region from begin–end to destination), naming all three core parameters and their roles. The operation is unambiguous and clearly distinct from sibling tools such as mc_fill, mc_set_block, and mc_compare_regions, none of which copy a region.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The final sentence '適合把手工蓋好的樣板量產' provides a concrete usage context: mass-producing hand-built templates. However, it names no alternative tools (e.g., mc_structure or mc_build_blueprint) and offers no when-not-to-use guidance, so it reaches clear context but stops short of explicit exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_compare_regions比對兩個等大區域是否一致ARead-onlyIdempotent
用一條指令比對整片區域,適合檢查學生蓋的東西跟參考範例是否相同。逐格比對在幾百格以上就會撞到 MCP host 逾時,這個不會。masked=true 會忽略來源區域裡的空氣,只檢查「該有的東西在不在」,不管周圍多了什麼;masked=false 則要求完全一致。兩個區域大小必須相同,destination 是目標區域的最小角。
| Name | Required | Description | Default |
|---|---|---|---|
| end | Yes | 來源區域的對角 | |
| begin | Yes | 來源區域的一角 | |
| masked | No | true 時忽略來源的空氣 | |
| destination | Yes | 目標區域的最小角 |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | Yes | |
| elapsedMs | Yes | |
| identical | Yes | |
| statusCode | Yes | |
| commandLine | Yes | |
| statusMessage | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds valuable behavioral detail beyond the annotations: it explains the timeout avoidance for large regions, the nested semantics of masked mode (ignoring air in source), and the size-equality requirement. This contextualizes the read-only and idempotent nature without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: it front-loads the core purpose, then provides usage guidance, behavior specifics, and a key constraint. Every sentence contributes meaningful information without redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers all essential operational aspects: what the tool does, when to use it, how masked mode alters behavior, the size requirement, and the meaning of destination. Since an output schema exists, return values do not need to be detailed here. The definition is complete for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the baseline is 3, but the description enriches understanding of key parameters: it clarifies that masked=false requires exact equality, masked=true only checks for presence, and that destination is the minimum corner. It also adds the constraint that both regions must be the same size, which is not explicit in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: comparing two equal-sized regions for consistency. It uses a specific verb and resource, and explicitly contrasts with per-block comparison, making its purpose unambiguous and distinct from siblings like mc_test_block or mc_analyze_symmetry.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool, such as checking student builds against a reference, and warns that per-block comparison times out for large regions. It implies the alternative is per-block checking but does not explicitly name a sibling tool, slightly reducing the guidance's precision.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_effect施加或清除狀態效果C
action="apply" 施加藥水效果,"clear" 清除全部效果。
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | apply | |
| effect | No | apply 需要,例如 speed 或 night_vision | |
| target | No | 目標選擇器(@a/@p/@s/@e/@r,可帶 [])或玩家名稱 | @s |
| seconds | No | ||
| amplifier | No | ||
| hideParticles | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | Yes | |
| elapsedMs | Yes | |
| statusCode | Yes | |
| commandLine | Yes | |
| statusMessage | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With all annotations false (no read-only, destructive, etc.), the description must carry the full behavioral burden. It mentions that 'clear' removes all effects, which is useful, but it does not disclose side effects like overwriting existing effects, persistence, or whether it modifies the world state. The coverage is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that quickly communicates the core behavior. It is concise without being verbose, but it is too sparse to be considered well-structured for a tool of this complexity. It omits necessary detail, so the brevity is a weakness rather than a strength.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter tool with only 33% schema coverage, no annotations, and no provided output schema, this description is severely inadequate. It does not explain valid effect names, how duration and amplifier work, what 'clear' does exactly, or any constraints. An agent would have insufficient information to call the tool correctly, especially without schema documentation for most parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema documentation covers only 'effect' and 'target' (33%). The description adds meaning for the 'action' parameter by explaining the semantics of 'apply' and 'clear', but it does not elaborate on 'seconds', 'amplifier', or 'hideParticles'. Given the low schema coverage, the description does not sufficiently compensate for the undocumented parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool applies or clears potion effects based on the 'action' parameter, identifying the exact operation and resource. It is specific enough to distinguish from generic siblings like mc_give or mc_summon, though it does not explicitly name an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There are no exclusions, prerequisites, or context about when applying effects is preferable to other commands. The description only states what the tool does, not when to choose it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_events_catalog列出可訂閱的事件名稱ARead-onlyIdempotent
回傳已知可用的事件名稱。Mojang 沒有正式文件化這份清單,所以訂閱清單外的名稱是允許的,只會被標記為未驗證。無副作用。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| eventNames | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly, idempotent, non-destructive), the description adds meaningful behavioral detail: Mojang has not officially documented the list, out-of-list names are permitted, and those names are marked as unverified. It also states there are no side effects, which reinforces the safe-read nature of the tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences with no filler: it states the purpose, discloses the unverified/official-documentation caveat, and confirms no side effects. Every sentence adds information an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only catalog tool with an existing output schema, the description is complete. It explains what is returned, the trustworthiness boundary of the list, and that calling it has no side effects. Nothing material is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema already covers this completely with an empty properties object. There are no parameter semantics for the description to add, so a baseline score of 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('回傳' / returns) and identifies the resource: known available event names for subscriptions. The title further clarifies it lists subscribable events, which distinguishes it clearly from siblings like mc_events_subscribe, mc_events_unsubscribe, and mc_events_poll.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The context is clear: an agent should call this tool to discover known event names before subscribing. It also cautions that the list is not officially documented and not exhaustive, implying it should not be treated as an authoritative closed set. It does not explicitly name alternatives, but the tool's catalog role is evident from its position among subscription-related siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_events_poll讀取已收到的事件ARead-only
取出游標之後的事件。第一次用 afterCursor=0,之後帶回上次回傳的 nextCursor 就能連續讀。dropped 大於 0 代表緩衝環繞、有事件永遠讀不到了,該提高輪詢頻率。無副作用。
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| eventName | No | 只取這一種事件 | |
| afterCursor | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| events | Yes | |
| dropped | Yes | |
| nextCursor | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description explains meaningful behavior: continuous reading via nextCursor, buffer wrap-around detection via dropped, and the implication that events may be permanently lost if dropped > 0. It also explicitly states '無副作用' (no side effects), which aligns with and reinforces the readOnlyHint annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three concise sentences with no filler. It front-loads the core action, then provides the essential cursor usage, and ends with the important dropped warning. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a polling tool with an output schema, the description provides enough context to use it correctly: initial cursor, continuation pattern, and failure signal. The remaining parameter details are present in the input schema, and the output schema covers return values. No critical operational context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is only 33%, so the description must compensate. It does explain afterCursor semantics well, including the first-call value and nextCursor continuation. However, it does not describe the limit parameter, and eventName is already covered by the schema. This is adequate but leaves one parameter's semantics to the schema's default and range constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: '取出游標之後的事件' (retrieve events after a cursor). It uses a specific verb and resource and is distinct from sibling tools like mc_events_catalog, mc_events_subscribe, and mc_events_unsubscribe by focusing on polling/reading already-received events.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives concrete usage instructions: use afterCursor=0 for the first call and pass the returned nextCursor thereafter. It also explains how to interpret the dropped indicator. It does not explicitly mention when to prefer this over sibling tools, but the cursor-based polling pattern is clearly conveyed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_events_subscribe訂閱遊戲事件AIdempotent
開始接收某類遊戲事件(例如 PlayerMessage 聊天、BlockPlaced 放置方塊、PlayerTravelled 移動)。事件會存進環形緩衝,之後用 mc_events_poll 取出。這是讓 AI「感知」玩家在做什麼的方式。重新連線後會自動重新訂閱。
| Name | Required | Description | Default |
|---|---|---|---|
| eventName | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| verified | Yes | |
| eventName | Yes | |
| subscribedEvents | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds meaningful behavior beyond the annotations: events are stored in a ring buffer, consumed via mc_events_poll, and subscriptions are automatically re-established after reconnection. This complements the idempotentHint annotation without contradicting it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences cover the purpose, behavior, follow-up operation, and reconnection semantics without redundancy. The most important information is front-loaded with clear examples.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter subscription tool with an output schema and annotations, the description covers the key aspects: what to pass, what happens to events, how they are retrieved, and reconnection behavior. It does not mention the event catalog, but sibling naming makes that discoverable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides no description for eventName and schema description coverage is 0%. The description partially compensates by giving examples of valid event types, but it does not specify where to find the complete list of event names or whether the value must match an exact catalog entry.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action (開始接收 / subscribe) targeting a specific resource (某類遊戲事件), with concrete examples like PlayerMessage, BlockPlaced, and PlayerTravelled. It clearly distinguishes this tool from the sibling poll tool by explaining the ring-buffer flow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: subscribe first, then retrieve events with mc_events_poll. It explains the purpose as letting the AI perceive player actions. It does not explicitly mention alternatives like mc_events_catalog or mc_events_unsubscribe, but the flow with mc_events_poll is explicit enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_events_unsubscribe取消訂閱遊戲事件AIdempotent
停止接收某類事件。已經收進緩衝的事件不會被清除。
| Name | Required | Description | Default |
|---|---|---|---|
| eventName | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| eventName | Yes | |
| subscribedEvents | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true and destructiveHint=false; the description adds meaningful context that already-buffered events are not cleared, which goes beyond the structured hints. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the primary behavior and a compact clarification about buffered events. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool with an output schema and idempotency annotation, the description covers the essential behavior and buffer caveat. The main gap is not referencing the event catalog or subscribe counterpart for valid eventName values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the sole parameter eventName is only documented as a string. The description says '某類事件' (a certain type) but does not explain valid event names or point to mc_events_catalog for the list, leaving the agent to guess.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('stop receiving a certain type of event') with a clear resource (game events), and the verb 'unsubscribe' distinguishes it from poll/subscribe/catalog siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The use case is implied by '停止接收' (stop receiving), but the description does not explicitly say 'use after mc_events_subscribe' or 'do not use to clear the buffer.' It lacks explicit when-to-use or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_feedback播放音效或粒子B
播一個音效或在座標生成粒子效果,用來給玩家即時的感官回饋。
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | 音效或粒子 ID,例如 random.levelup 或 minecraft:heart_particle | |
| kind | Yes | ||
| target | No | kind="sound" 時的聽眾 | @a |
| position | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | Yes | |
| elapsedMs | Yes | |
| statusCode | Yes | |
| commandLine | Yes | |
| statusMessage | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations are all false and provide no helpful hints, so the description carries the behavioral disclosure burden. It only states that sounds are played and particles are generated; it does not disclose scope of listeners, whether effects are transient, stacking behavior, or any side effects. It does not contradict the annotations, but adds little beyond the title.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence that front-loads the core action and purpose. There is no filler or unnecessary repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has four parameters, an output schema, and a large sibling set, yet the description is minimal. It is enough to understand what the tool does, but it lacks guidance on selecting it over similar tools and does not compensate for the sparse behavioral and parameter context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is about 50%, with id and target described but kind and position lacking top-level description. The description adds a useful semantic hint by associating coordinates with particle generation and sound with being played, but it does not explain the id format, the meaning of kind, or how target works.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the resource and action: play a sound effect or generate a particle effect at coordinates, with the stated purpose of immediate sensory feedback. It does not explicitly contrast with sibling tools, but the sound/particle focus makes the tool's role reasonably distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase '用來給玩家即時的感官回饋' gives an implied use case: use this when the agent wants to provide quick in-world feedback. However, it does not say when not to use it, nor does it point to alternatives such as mc_message, mc_effect, or mc_run_command that could serve similar purposes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_fill填滿一個長方體ADestructiveIdempotent
用同一種方塊填滿 from 到 to 的長方體。Bedrock 單次上限 32768 格;超過請改用 mc_build_shape,它會自動拆批。mode=hollow 只留外殼、outline 只留邊框。
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | ||
| from | Yes | ||
| mode | No | ||
| block | Yes | 方塊 ID,例如 stone 或 minecraft:oak_planks | |
| blockStates | No | 選用的方塊狀態,例如 ["stone_type":"granite"] | |
| replaceBlock | No | 只在 mode="replace" 時有效 | |
| replaceStates | No | 選用的方塊狀態,例如 ["stone_type":"granite"] |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | Yes | |
| elapsedMs | Yes | |
| statusCode | Yes | |
| commandLine | Yes | |
| statusMessage | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already include `destructiveHint=true` and `idempotentHint=true`. The description goes beyond those by specifying the Bedrock per-operation limit of 32768 blocks and the meanings of `mode=hollow` (only outer shell) and `mode=outline` (only border), which are not in the annotations. This adds valuable context, though it does not elaborate on other mode effects like `replace` or `destroy`.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose and immediately followed by the key usage constraint and mode clarifications. There is no filler or redundant repetition of schema or annotation content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists and annotations cover destructive and idempotent behavior, the description adds the most critical operational detail: the block count limit and the alternative tool for exceeding it, plus the hollow/outline mode semantics. It does not explain the full set of mode values (e.g., replace/destroy/keep), but those are standard Minecraft commands and partly described in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is around 57%. The description compensates for the `mode` parameter by explaining the hollow and outline options, and it clarifies that the `block` parameter applies the same block across the whole volume. However, it does not add detail for coordinate modes or the replace-related parameters, leaving some meaning to the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (fill) and resource (a cuboid from `from` to `to`) and clarifies that it uses a single block type. It also distinguishes itself from the sibling `mc_build_shape` by calling out the size threshold, which helps an agent separate the two tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says that when the fill exceeds 32768 blocks, the agent should use `mc_build_shape` instead, which automatically batches. This is a clear when-not/alternative rule, and it implies that `mc_fill` is appropriate for fills within the limit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_gamemode切換遊戲模式CIdempotent
把對象切成 survival、creative、adventure 或 spectator。
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | ||
| target | No | 目標選擇器(@a/@p/@s/@e/@r,可帶 [])或玩家名稱 | @s |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | Yes | |
| elapsedMs | Yes | |
| statusCode | Yes | |
| commandLine | Yes | |
| statusMessage | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations 已標示 readOnlyHint=false,描述「切換」也與此一致,但描述沒有額外揭露行為特質,例如改動目標遊戲模式後對遊戲的影響、是否需要權限、是否會覆寫既有模式等。idempotentHint=true 和 destructiveHint=false 的含義也未在描述中補充。
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
一句話即完整表達核心操作與可選模式,沒有冗詞,資訊密度高且直接切入重點。
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
此工具雖簡單,但考量到兄弟工具眾多且包含 mc_run_command 這種可能替代的通用指令工具,描述未提供任何使用情境或排除條件;同時也未說明切換遊戲模式的實際行為後果。搭配 annotation 與 output schema 仍不足以讓代理判斷何時該選此工具。
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema 對 target 有提供詳細說明,但 mode 參數只有 enum 沒有 prose 描述;描述中的「survival、creative、adventure 或 spectator」補足了 mode 的語意,且「對象」也暗示了 target 的用途。不過描述並未說明 mode 為必要參數或 target 預設為 @s,因此只算部分補償。
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
描述明確指出要對目標執行「切換遊戲模式」的動作,並列舉 survival、creative、adventure、spectator 四種模式,語意清楚且涵蓋資源與操作。但未特別與其他兄弟工具(如 mc_player_action 或 mc_run_command)做區隔,因此不到 5 分。
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
描述完全沒有提到何時應使用此工具、何時不應使用,也沒有指出與 mc_run_command、mc_player_action 等替代工具的選擇條件。使用者只能從工具名稱與語意自行推斷用途。
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_give給予物品B
給對象指定數量的物品。要讓 Agent 有東西可放,先 give 給玩家再交給 Agent。
| Name | Required | Description | Default |
|---|---|---|---|
| data | No | ||
| item | Yes | 方塊 ID,例如 stone 或 minecraft:oak_planks | |
| amount | No | ||
| target | No | 目標選擇器(@a/@p/@s/@e/@r,可帶 [])或玩家名稱 | @s |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | Yes | |
| elapsedMs | Yes | |
| statusCode | Yes | |
| commandLine | Yes | |
| statusMessage | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false and offer no safety or side-effect information. The description only states the action without disclosing any behavioral nuances, such as impacts on existing inventory, permission requirements, or error handling. For a mutation tool, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loads the main action, and the second sentence adds valuable workflow context without any fluff. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple give tool, the description plus schema is mostly adequate. The workflow hint is useful, and the output schema covers return values, but there is no mention of edge cases (e.g., max stack size, inventory overflow) or cautions when giving items to players vs. agents.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%, covering item and target, but data and amount lack schema descriptions. The tool description does not compensate for this, explaining none of the parameters or any additional meaning like data values or stacking behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (give), resource (items), and target (object), making the core action clear. However, it does not explicitly differentiate this tool from siblings like mc_run_command, which could also give items via a command.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The second sentence provides a concrete workflow: to give items to an Agent for placing, first give to the player and then to the Agent. This gives clear context for one use case, though it does not mention alternative tools or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_message在遊戲內顯示訊息A
say 全體聊天、tell 私訊、title/subtitle/actionbar 在畫面上顯示大字。教學或回報進度時用這個跟玩家說話。
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | 目標選擇器(@a/@p/@s/@e/@r,可帶 [])或玩家名稱 | @a |
| channel | No | say | |
| message | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | Yes | |
| elapsedMs | Yes | |
| statusCode | Yes | |
| commandLine | Yes | |
| statusMessage | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses meaningful behavioral detail beyond the annotations: say broadcasts to global chat, tell sends a private message, and title/subtitle/actionbar display large on-screen text. It makes the observable effect of each channel transparent without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single well-structured sentence that front-loads the tool's purpose and channel breakdown without any filler. Every part adds meaning, and the format is easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple messaging tool, the description covers the essential behavior and usage context, and an output schema is available for return-value details. It is not fully complete because target and message semantics are under-described, but the overall complexity is low and the main decision points are addressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, so the description should compensate for the undocumented 'message' parameter and clarify the 'target' parameter. It adds useful semantics for the 'channel' enum, but says nothing about what message content should look like or how target selectors/player names operate beyond the schema's terse description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that this tool sends messages to players and enumerates the exact channels (say, tell, title, subtitle, actionbar) with their distinct behaviors. It is unmistakably differentiated from sibling tools that perform actions, block edits, or queries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a concrete usage context: '教學或回報進度時用這個跟玩家說話' (use this to talk to players when teaching or reporting progress). It does not explicitly state when not to use it or name alternative tools, but the context is clear enough for an agent to know when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_player_action玩家雜項動作BDestructive
kill 殺死對象、clear 清空背包(可指定單一物品)、xp 給經驗、ability 開關 worldbuilder/mayfly/mute 權限。
| Name | Required | Description | Default |
|---|---|---|---|
| item | No | clear 可選 | |
| unit | No | points | |
| action | Yes | ||
| amount | No | xp 需要 | |
| target | No | 目標選擇器(@a/@p/@s/@e/@r,可帶 [])或玩家名稱 | @s |
| ability | No | ||
| enabled | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | Yes | |
| elapsedMs | Yes | |
| statusCode | Yes | |
| commandLine | Yes | |
| statusMessage | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=true and readOnly=false, which already signal mutating behavior. The description adds per-action details such as clear being able to target a single item and ability toggling permission flags. However, it does not disclose side effects like the irreversibility of kill, the ability to use negative xp amounts, or whether ability changes persist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense sentence that front-loads all four action types and their effects. There is no filler or redundant repetition of the schema. Each segment earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 7 parameters and 4 distinct behaviors, the description is terse. It covers the main action meanings but omits important operational details such as how unit affects xp, what enabled controls, and interaction with target selectors. The schema covers target and amount, and an output schema exists, but the combination is still not fully self-sufficient for an agent to use all options correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 43%, so the description must compensate. It does clarify the action enum and the meaning of the item parameter for clear. However, it leaves unit (levels vs points), enabled (boolean), and ability parameter semantics unstated, requiring the agent to guess from enum names or default values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly enumerates the four actions (kill, clear, xp, ability) and states what each does: killing a target, clearing inventory optionally for a single item, granting experience, and toggling permissions. This gives a specific verb and resource scope. It does not explicitly distinguish itself from sibling tools like mc_give or mc_effect, but the action list makes the tool's purpose immediately understandable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as mc_give, mc_effect, mc_gamemode, or mc_run_command. There are no exclusions, prerequisites, or routing hints. The agent must infer usage from action names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_query_target查詢實體位置與朝向ARead-onlyIdempotent
用選擇器查詢實體的座標、朝向與唯一 ID,回傳已解析的 JSON。這是取得玩家或 Agent 目前位置的正規做法——建造前先問這個,才知道要蓋在哪裡。預設用 @p(最近的玩家)而非 @s:WebSocket 送進來的指令沒有實體身分,@s 在部分情況下無法解析。
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | 目標選擇器(@a/@p/@s/@e/@r,可帶 [])或玩家名稱 | @p |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | Yes | |
| details | No | |
| elapsedMs | Yes | |
| statusCode | Yes | |
| commandLine | Yes | |
| statusMessage | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly, idempotent, and non-destructive behavior. The description adds meaningful behavioral context beyond that: output is resolved JSON, default target is @p rather than @s, and @s can fail in some WebSocket cases because the command has no entity identity. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences front-load the purpose and output, then the use case, then the default caveat. Every sentence adds essential information with no padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one optional parameter, full schema coverage, an output schema, and annotations already covering safety, the description covers everything needed to invoke correctly: what it returns, when to call it, and the selector default caveat.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the target parameter with 100% coverage, so the baseline is 3. The description adds value by explaining the practical semantics of the default: why @p is preferred and why @s is unreliable in this context, which helps an agent choose or accept the value correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb (查詢/query) with a specific resource (實體 entities) and names the exact outputs: coordinates, orientation, and unique ID, returned as resolved JSON. It also labels itself as the canonical way to get a player or Agent's current position, which separates it from the broader sibling set.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear context: call this before building to know where to place things, and it is the standard way to get player/Agent positions. It explicitly warns about the @s selector failing over WebSocket and explains the default @p choice, though it does not name an alternative tool or specify when NOT to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_read_block讀取某座標實際是什麼方塊ARead-onlyIdempotent
回報該座標實際上放著什麼,不需要你先猜。Education 沒有讀取方塊的指令,這裡是拿空氣當哨兵去 testforblock,猜錯時遊戲的訊息會把實際方塊講出來。注意:回傳的是在地化顯示名稱(例如「泥土」)而不是方塊 ID(dirt),不能直接餵回 mc_set_block;要用 ID 判斷請改用 mc_test_block。訊息格式沒有官方保證,解析不出來時 block 會是 null 並附上原始訊息,不會亂猜。
| Name | Required | Description | Default |
|---|---|---|---|
| position | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| raw | Yes | |
| data | Yes | |
| block | Yes | 在地化顯示名稱;解析不出來時本工具回錯誤而不是 null |
| isAir | Yes | |
| elapsedMs | Yes | |
| statusCode | Yes | |
| commandLine | Yes | |
| statusMessage | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint: false), so the description earns credit for enriching behavior beyond them: it discloses the implementation quirk (testforblock workaround because Education lacks a read command), the localized-name return semantics, and the failure contract (returns null plus raw message rather than guessing). It also warns that the message format is not officially guaranteed, which is exactly the kind of non-obvious behavior an agent needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, purpose front-loaded, and every sentence carries load: the core function, the implementation rationale, the return-type caveat plus sibling routing, and the failure/parsing behavior. It is on the longer side, but the length is justified because the tool's testforblock hack and unguaranteed message format are genuinely non-obvious and risk-mitigating for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema, full safety annotations, and a clear single positional parameter, the description covers everything essential: purpose, alternative tool, output semantics caveat, and failure handling. Minor gaps remain — no mention of world-boundary/loaded-area constraints or permission requirements — but nothing an agent needs to invoke the tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is reported at 0%, so the description carries the burden of parameter explanation, yet it says nothing about how to specify position, coordinate modes, or format. The gap is mitigated by the parameter being a self-evident coordinate triple and the schema's inline mode enum description (absolute/relative/local), making the missing compensation a moderate rather than severe deficiency.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb-resource pairing ('回報該座標實際上放著什麼' — reports what is actually at that coordinate) and immediately differentiates itself from siblings by warning that it returns localized display names, not block IDs, and explicitly routing ID-based checks to mc_test_block. The mechanism (air sentinel feeding testforblock) further clarifies what the tool is and is not.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use context ('不需要你先猜' — use this when you need ground truth rather than assumptions) and an explicit when-not-to-use rule with a named alternative ('要用 ID 判斷請改用 mc_test_block'). It also states a concrete downstream constraint: the localized-name output cannot be fed back into mc_set_block.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_run_command執行單一 slash 指令ADestructive
送出一條原始 slash 指令,涵蓋本 server 沒有專用工具的功能。只接受單行、不得換行串接,並拒絕 wsserver/connect(那會切斷本橋接)。前導斜線可有可無。
| Name | Required | Description | Default |
|---|---|---|---|
| command | Yes | 例如 "time set day" 或 "/give @s diamond 1" |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | Yes | |
| risk | Yes | |
| elapsedMs | Yes | |
| statusCode | Yes | |
| commandLine | Yes | |
| statusMessage | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint=true, and the description adds important caveats: single-line only, no newline chaining, and rejection of bridge-breaking commands. This goes beyond the schema and gives the agent critical context about safe invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no redundancy. The core purpose, constraints, and exclusions are all front-loaded, making the description easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with a full output schema and annotations covering destructive behavior, the description supplies all necessary behavioral constraints and usage boundaries. Nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers the single 'command' parameter 100% with an example. The description does not add parameter-specific details beyond the overall command-sending context, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool sends a raw slash command and explicitly scopes it to functionality without a dedicated tool, which distinguishes it from the many specialized sibling tools. The verb 'send' and resource 'slash command' are specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It tells the agent to use this when no dedicated tool exists, and explicitly forbids wsserver/connect commands that would sever the bridge. It does not name sibling alternatives like mc_run_commands, but the 'no dedicated tool' condition provides clear selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_run_commands依序執行多條 slash 指令ADestructive
照順序送出多條原始指令,每條都各自通過政策檢查。適合手動編排的巨集;大量方塊請改用 mc_build_shape 或 mc_build_blueprint,它們會自動合併成最少的 fill。
| Name | Required | Description | Default |
|---|---|---|---|
| delayMs | No | ||
| commands | Yes | ||
| stopOnError | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| failed | Yes | |
| issued | Yes | |
| outcomes | Yes | |
| elapsedMs | Yes | |
| succeeded | Yes | |
| firstFailure | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, but the description adds useful behavioral context: commands are raw, sent in order, and each one independently passes policy checks. This goes beyond the structured annotations and helps the agent understand execution semantics and safety implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no waste: the first states the core behavior, the second gives usage guidance and alternatives. The most important information is front-loaded and every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose, usage boundaries, and some behavioral nuance, and an output schema exists so return values need no explanation. However, it omits key parameter semantics, especially stopOnError and delayMs, which are relevant for a command runner and are not documented anywhere else. The presence of annotations and schema constraints mitigates this, so it is adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the burden of explaining parameters, but it only vaguely hints at the commands array via 'multiple raw commands'. It does not explain delayMs or stopOnError, leaving the agent to rely solely on parameter names, defaults, and constraints in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: sending multiple raw commands sequentially, each passing policy checks. It differentiates itself from related siblings by explicitly naming mc_build_shape and mc_build_blueprint as alternatives for bulk block operations and by the 'multiple commands' framing, distinguishing it from the singular mc_run_command.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says this is suitable for manually orchestrated macros, and provides a clear exclusion: for large numbers of blocks, use mc_build_shape or mc_build_blueprint instead. This gives the agent concrete decision criteria between this tool and its main alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_set_block放置單一方塊ADestructiveIdempotent
在指定座標放一個方塊。大量方塊請改用 mc_fill 或 mc_build_shape——逐格呼叫這個工具會非常慢。
| Name | Required | Description | Default |
|---|---|---|---|
| block | Yes | 方塊 ID,例如 stone 或 minecraft:oak_planks | |
| handling | No | ||
| position | Yes | ||
| blockStates | No | 選用的方塊狀態,例如 ["stone_type":"granite"] |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | Yes | |
| elapsedMs | Yes | |
| statusCode | Yes | |
| commandLine | Yes | |
| statusMessage | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already disclose destructive and idempotent behavior, and the description adds a useful performance warning beyond them. However, it does not explain the default replace/destroy/keep handling behavior or what happens to existing blocks at the target position, so behavioral transparency is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One focused sentence front-loads the core action and then gives the scale-based alternative. Every part earns its place and there is no redundant wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-block mutation tool, the description plus annotations and output schema cover the essential selection and invocation context. It could add handling semantics, but the missing details are partially available in the schema and annotations, so the overall picture is nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 50% schema description coverage, the description needed to compensate for undocumented parameters such as handling, but it merely restates 'specified coordinates' and 'one block'. It adds no explanation of handling, position modes, or block-state syntax beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('place one block at specified coordinates') and explicitly differentiates itself from mc_fill and mc_build_shape for large numbers of blocks. This lets an agent distinguish it from relevant sibling tools immediately.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit when-to-use rule: use for a single block, and switch to mc_fill or mc_build_shape for large quantities because per-block calls are slow. This is direct, actionable guidance with named alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_status讀取橋接與連線狀態ARead-onlyIdempotent
回報 WebSocket 橋接是否在監聽、Minecraft 是否已連入、遊戲內應輸入的 /connect 指令、已訂閱事件與累計指令數。任何工具失敗時先查這個。無副作用。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| host | Yes | |
| port | Yes | |
| connected | Yes | |
| encrypted | Yes | |
| listening | Yes | |
| connectedAt | Yes | |
| bufferedEvents | Yes | |
| commandsIssued | Yes | |
| connectCommand | Yes | |
| connectionCount | Yes | |
| savedStructures | Yes | 本次連線存過的結構;遊戲沒有列出結構的指令,所以只能由橋接自己記 |
| subscribedEvents | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description reinforces this with '無副作用' and adds useful behavioral context by specifying what status information is reported. No contradictions exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one dense sentence that front-loads the main reporting items and ends with a usage guideline. Every element earns its place, and there is no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 0-parameter status tool with an output schema and comprehensive annotations, the description provides enough context: what it reports, when to use it, and that it has no side effects. It doesn't explain the output structure, but that's covered by the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema is empty, so the baseline is 4. The description correctly omits any parameter details as none exist; there is nothing missing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb '回報' and lists the exact status items it reports: WebSocket bridge listening state, Minecraft connection, /connect command, subscribed events, and cumulative command count. This distinguishes it from sibling tools like mc_await_connection or mc_feedback.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly instructs to check this tool first when any tool fails ('任何工具失敗時先查這個'), providing a clear when-to-use context. It doesn't name alternative tools, but the condition is actionable and sufficient for an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_structure儲存或載入結構ADestructive
把一塊區域存成具名結構,或把已存的結構放回世界。這是把 AI 蓋好的東西保存、量產、帶到別的世界的官方途徑。
saveMode 要照使用者的意圖選,不要一律用同一個:
memory(預設)=這次連線內的暫存。AI 反覆修改同一棟建築時用這個:想留退路就存一版,改壞了 load 回來。關掉遊戲就消失,不會在硬碟累積檔案。disk=使用者明確表示要保留時才用(「幫我記住這棟」「存起來下次還要用」)。它會寫成檔案存進遊戲的世界資料夾,關掉遊戲也還在——但那是真的在使用者硬碟上留東西,不要在他沒說要保留時擅自寫入。
版本管理就是取名字:castle_v1、castle_v2。同名會直接覆蓋,改版本前先換名字。遊戲沒有「列出已存結構」的指令,所以存過什麼只能靠名字記——本次連線存過的名單可以問 mc_status。
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | save 需要 | |
| from | No | save 需要 | |
| name | Yes | 版本就靠這個區分;同名會覆蓋 | |
| action | Yes | ||
| saveMode | No | memory=暫存(預設);disk=寫進硬碟,只在使用者明確說要保留時用 | memory |
| destination | No | load 需要 | |
| includeEntities | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | Yes | |
| elapsedMs | Yes | |
| statusCode | Yes | |
| commandLine | Yes | |
| statusMessage | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the destructiveHint annotation, the description discloses that disk mode writes actual files to the game world folder on the user's hard drive, persists after closing the game, and should not be used without explicit user request. It also explains that memory mode disappears on shutdown and that same-name saves overwrite silently. These are exactly the behavioral traits an agent needs to avoid destructive mistakes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is longer than average but every section earns its place: purpose, mode selection, persistence consequences, and versioning rules. The formatting with bolded headers and bullet-like lines makes it easy to scan, and the most safety-critical warning about disk writes is prominently placed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and input schema descriptions covering coordinate modes and required parameters, the description covers most operational context: when to use memory vs disk, how versioning works, and what happens on overwrite. The main gap is includeEntities, which has a default but no guidance on when an agent should enable it. Overall it is nearly complete for a destructive-capable tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds significant meaning to saveMode and name that the schema only gestures at: memory vs disk semantics, user-intent-based selection, and versioning via names. It also communicates the action-dependent coordinate roles indirectly. However, includeEntities is left undocumented in both the schema and the description, and parameter coverage is only 71%, so the description does not fully close the gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: saving a region as a named structure or loading it back into the world, and positions it as the official path for preserving, mass-producing, and transporting AI-built structures. It does not explicitly differentiate from siblings like mc_clone or mc_blueprint_preview, so it lacks explicit sibling contrast, but the core purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives strong, decision-oriented guidance for saveMode: memory for session-scoped iteration and disk only when the user explicitly asks for persistence. It also warns about same-name overwrites and points to mc_status for listing session saves. It does not explicitly discuss when to use this tool versus alternatives such as mc_clone, but it provides clear context and practical constraints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_summon生成生物或實體A
在指定座標生成一個實體,可加名牌。position 留空則生在指令發起者位置。
| Name | Required | Description | Default |
|---|---|---|---|
| entity | Yes | 實體 ID,例如 cow 或 minecraft:villager | |
| nameTag | No | ||
| position | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | Yes | |
| elapsedMs | Yes | |
| statusCode | Yes | |
| commandLine | Yes | |
| statusMessage | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no behavioral annotations, the description carries the transparency burden. It does disclose the core effect (spawning an entity) and the position/name-tag defaults, but it does not mention permissions, duplicate-entity behavior, or any broader world-modifying side effects, leaving some behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact sentence front-loads the main action, then covers the two optional behaviors. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter tool with an output schema and detailed entity/coordinate-mode info already in the schema, the description covers the essential defaults and optional name tag. The only missing context is permission-level or operational caveats, which are not critical for basic invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33%, so the description must compensate. It does: it clarifies position defaults to the caller when omitted and that nameTag is optional. The schema still handles the entity ID example and coordinate mode, so the description adds meaningful value without duplicating the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: '在指定座標生成一個實體' (spawn an entity at specified coordinates), and adds the optional name tag. This clearly separates it from sibling tools like mc_set_block (blocks) and mc_give (items), so an agent can select it without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives one useful invocation rule: leaving position empty spawns at the command issuer's location. However, it never states when to prefer this tool over alternatives or when not to use it, so the usage guidance is mostly implied by the tool's purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_teleport傳送玩家或實體BIdempotent
把選擇器指定的對象傳送到座標。target 預設 @s 是執行指令的玩家。
| Name | Required | Description | Default |
|---|---|---|---|
| target | No | 目標選擇器(@a/@p/@s/@e/@r,可帶 [])或玩家名稱 | @s |
| destination | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | Yes | |
| elapsedMs | Yes | |
| statusCode | Yes | |
| commandLine | Yes | |
| statusMessage | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already classify this as non-read-only, idempotent, and non-destructive, and the description is consistent with that. It adds no extra disclosure about permissions, chunk-loading, or failure modes, but the annotations lower the burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the action front-loaded and no filler. Slightly under-specified for the nested destination/mode structure, so not a perfect 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple teleport tool with an output schema and annotations covering safety/idempotency, the core invocation is understandable. The main gap is lack of routing guidance among teleport-related siblings, and coordinate mode semantics depend entirely on the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds the useful note that target defaults to the executing player and frames the target as a selector, but it largely repeats schema info. With 50% schema coverage, x/y/z are left to inference, though the mode enum in the schema covers coordinate semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a concrete verb (傳送) and resource (selector-specified targets to coordinates), and the title narrows it to players/entities. It is clear, though it does not explicitly contrast itself with mc_agent_teleport.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides no guidance on when to use this tool instead of alternatives such as mc_agent_teleport or mc_agent_move, and no exclusions. The only usage hint is the @s default, which is more parameter-oriented than selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_test_block檢查某座標是不是指定方塊ARead-onlyIdempotent
不改變世界,只回報該座標是否為指定方塊。建造前確認地形、或驗證剛才蓋的東西時用。
| Name | Required | Description | Default |
|---|---|---|---|
| block | Yes | 方塊 ID,例如 stone 或 minecraft:oak_planks | |
| position | Yes | ||
| blockStates | No | 選用的方塊狀態,例如 ["stone_type":"granite"] |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | Yes | |
| matches | Yes | |
| elapsedMs | Yes | |
| statusCode | Yes | |
| commandLine | Yes | |
| statusMessage | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds that the tool 'only reports whether the coordinate is the specified block', clarifying the return semantics as a boolean, and reiterates 'does not change the world' which aligns with annotations. It does not disclose other behaviors like error handling, but the safety profile is fully covered by annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two concise sentences, front-loading the core behavior ('does not change the world, only reports whether the coordinate is the specified block') followed by usage context. Every word serves a purpose with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, read-only test tool, the description covers purpose, usage, and non-destructiveness. Required parameters are documented in the schema (with most having descriptions), annotations cover safety, and an output schema exists, so no return value explanation is needed. All necessary contextual information is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not explain any parameters, merely referring to 'that coordinate'. The schema provides helpful descriptions for block, blockStates, and the mode field, but the position object itself lacks a description. With schema description coverage at 67% (not high), the tool description was expected to compensate for missing parameter guidance but does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: it does not change the world and reports whether a coordinate is the specified block. It also provides concrete use cases (confirming terrain before building, verifying recent builds), which distinguishes it from siblings like mc_read_block that likely return block data rather than a boolean test.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit usage context: use this tool before construction to check terrain or to verify placed blocks. However, it does not explicitly mention when not to use it or name alternative tools, so it lacks exclusions but still provides clear guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_ticking_area新增常載區域AIdempotent
把一塊區域設為常載,讓玩家離開後那裡的機制仍會運作。Agent 要在遠處自動工作時需要這個。
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | ||
| from | Yes | ||
| name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | Yes | |
| elapsedMs | Yes | |
| statusCode | Yes | |
| commandLine | Yes | |
| statusMessage | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate a non-read-only, non-destructive, idempotent mutation, but do not explain the persistent world behavior. The description adds that the area remains loaded and its mechanisms continue functioning after player departure, which is meaningful context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences front-load the core action and effect, then add the key use case. Every sentence earns its place with no redundant detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description gives the purpose and effect but omits parameter semantics and any prerequisites or limitations (e.g., area limits, persistence behavior once unloaded). The output schema exists and annotations help, so the gaps are moderate; an agent could probably call it correctly by using the schema structure, but not from the description alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the top-level parameters, and the description provides no parameter-specific guidance (what 'from'/'to' represent, how 'name' is used, or coordinate mode implications). The agent must infer from the names and nested schema, and the description does not compensate for the missing coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action and resource: '把一塊區域設為常載' (set an area as always-loaded). It further explains the functional effect (mechanisms keep running after players leave) and distinguishes it from sibling tools by tying it to remote autonomous work.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool: 'Agent 要在遠處自動工作時需要這個' (the agent needs this when working automatically at a distance). It does not provide exclusions or name alternatives, so it does not fully meet the 5-level bar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_verify_reading驗證「讀方塊」這條路還有效ARead-onlyIdempotent
讀方塊靠的是 testforblock 失敗訊息會洩漏方塊名稱,而那個訊息格式沒有官方穩定性保證。遊戲改版改了文案、或遊戲語言不是繁中/簡中/英文,解析就會失效——而且失效的樣子是安靜的。這支探測會主動驗證解析路徑是否仍然有效,上課前跑一次就知道 mc_read_block 的結果能不能信。它不需要事先知道那格是什麼:若該格是空氣,就拿基岩去問(保證不符)逼出失敗訊息;若該格有東西,第一問就已經給了訊息。最多兩條指令,完全不寫入世界。parseable=false 代表協定已漂移,此時 mc_read_block 的結果一律不可信。
| Name | Required | Description | Default |
|---|---|---|---|
| position | Yes | 任一座標皆可,空的或有方塊都行 |
Output Schema
| Name | Required | Description |
|---|---|---|
| raw | Yes | |
| branch | Yes | |
| parseable | Yes | false 代表協定已漂移,讀方塊不可信 |
| parsedName | Yes | |
| commandsIssued | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, and non-destructive behavior. The description adds substantial behavioral context: it relies on testforblock failure message parsing, the failure mode is 'silent', it uses at most two commands, and guarantees no world writes. It also explains the algorithm (querying with bedrock to force a failure message if the cell is air), which is beyond what annotations provide. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense and front-loaded with the core problem (failure message format instability), then explains the verification approach and the consequence of parseable=false. Each sentence earns its place, and the structure flows logically from problem to solution to implication. While it is longer than average, the complexity of the tool justifies the detail; minor redundancy with annotations (e.g., 'no writes to world') is acceptable for emphasis.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's purpose (why it exists), usage context (when to run it), internal behavior (how it works), and output interpretation (parseable=false implies protocol drift). Since an output schema exists, it does not need to enumerate return fields. No critical information is missing for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents the position object with x, y, z, and mode, including a description ('absolute=world coordinate; relative=~ relative to initiator; local=^ relative to facing') and a note that any coordinate works. Schema coverage is 100%, so the description does not need to add parameter semantics. The description adds no new param-level detail, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('verifies') and a specific resource ('the parsing path for block reading'), making it clear this tool checks whether mc_read_block's results can be trusted. It distinguishes itself from sibling tools like mc_read_block and mc_test_block by framing itself as a probe of the underlying protocol, not a read operation itself. The title and description align perfectly, leaving no ambiguity about its role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear trigger ('run before class') and a decision rule ('if parseable=false, mc_read_block results are untrustworthy'), indicating when to use this tool to validate the read path. It implies when it should be used instead of relying directly on mc_read_block, though it does not explicitly list exclusions or alternative tools. The context is strong but lacks explicit 'when-not-to-use' or sibling comparison.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_world_settings調整世界設定AIdempotent
一次改一項世界設定:time 設定時間(day/night/noon/midnight 或 tick 數)、weather 天氣、gamerule 遊戲規則、difficulty 難度。
| Name | Required | Description | Default |
|---|---|---|---|
| rule | No | setting="gamerule" 時的規則名稱 | |
| value | Yes | time:day|weather:clear|difficulty:peaceful|gamerule 的值 | |
| setting | Yes | ||
| durationSeconds | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| data | Yes | |
| elapsedMs | Yes | |
| statusCode | Yes | |
| commandLine | Yes | |
| statusMessage | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate that the operation is idempotent and non-destructive; the description adds that exactly one setting is changed at a time and enumerates the setting types. However, it does not disclose side effects such as whether changes persist, how the world is affected, or how durationSeconds alters behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence expresses the key constraint ('one setting at a time') and then maps each setting category to its value form with zero filler. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema and annotations present, the description need not restate return values or safety, and it covers the main setting categories. The notable gap is the undocumented durationSeconds parameter, whose purpose and applicability are left to inference, making the tool not fully self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description enriches 'setting' and 'value' with concrete examples (day/night/noon/midnight, clear, peaceful) that complement the schema's terse examples. But it leaves 'durationSeconds' completely unexplained and does not state that 'rule' is required when setting='gamerule', so parameter semantics are only partially conveyed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('改' / change), a clear resource ('世界設定' / world settings), and an explicit scope: it changes only one setting at a time, with four named categories (time, weather, gamerule, difficulty). This makes it easy to distinguish from sibling tools like mc_run_command or mc_gamemode.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly establishes when to use the tool: when a single world setting (time, weather, gamerule, difficulty) needs to be changed. It does not explicitly name alternatives or exclusion conditions, but the category list and '一次改一項' constraint give sufficient context for an agent to select it over agent/command/block tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
42 tool updates
v0.1.0- First observed
mc_agent_act - First observed
mc_agent_collect - First observed
mc_agent_create - First observed
mc_agent_inventory - First observed
mc_agent_move - First observed
mc_agent_place - First observed
mc_agent_program - First observed
mc_agent_sense - First observed
mc_agent_teleport - First observed
mc_agent_turn - First observed
mc_analyze_symmetry - First observed
mc_await_connection - First observed
mc_blueprint_preview - First observed
mc_build_blueprint - First observed
mc_build_preview - First observed
mc_build_shape - First observed
mc_clone - First observed
mc_compare_regions - First observed
mc_effect - First observed
mc_events_catalog - First observed
mc_events_poll - First observed
mc_events_subscribe - First observed
mc_events_unsubscribe - First observed
mc_feedback - First observed
mc_fill - First observed
mc_gamemode - First observed
mc_give - First observed
mc_message - First observed
mc_player_action - First observed
mc_query_target - First observed
mc_read_block - First observed
mc_run_command - First observed
mc_run_commands - First observed
mc_set_block - First observed
mc_status - First observed
mc_structure - First observed
mc_summon - First observed
mc_teleport - First observed
mc_test_block - First observed
mc_ticking_area - First observed
mc_verify_reading - First observed
mc_world_settings
TDQS
Scored across 42 tools
每个工具都有明确且独特的用途,例如mc_agent_*系列管理Agent行为,mc_build_*系列处理建造,mc_events_*系列订阅事件。即使有类似工具(如mc_set_block与mc_fill、mc_run_command与mc_run_commands),也在描述中明确区分了使用场景,没有模糊边界。
所有工具均以mc_前缀开头,使用小写下划线命名,且按功能领域分组(如mc_agent_、mc_build_、mc_events_),模式高度一致。动词与名词的组合虽然不完全统一,但整体规律清晰,易于预测。
工具数量为42个,但对Minecraft这样一个功能丰富的游戏来说,覆盖了Agent操作、建筑、世界管理、事件订阅等多个方面,每个工具都有存在的必要,没有冗余或缺失,规模与服务器目的匹配。
工具集涵盖了建造、查询、修改、事件处理、世界设置等完整生命周期,包括创建、读取、更新、删除的基本操作,也提供了预览和验证工具来避免错误。没有明显的功能死角,代理可以独立完成从规划到执行的完整流程。
Maintenance
Related MCP Connectors
Connect AI agents to Flato's editable canvas runtime through a hosted MCP server.
Educational MCP server with 17 math/stats tools, visualizations, and persistent workspace
One AI endpoint to search and call 22k+ MCP servers; 50+ hosted tools work instantly, no key.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to control Unreal E…
Related MCP Servers
- AlicenseBqualityBmaintenanceA TypeScript-based server that enables AI-powered control of Minecraft Bedrock Edition through 15 powerful tools for player movement, agent operations, world manipulation, and building complex structures.2116MIT
- AlicenseBqualityDmaintenanceEnables LLMs to control a Minecraft bot through the Mineflayer API, allowing for tasks like building, mining, and inventory management via natural language. It supports complex interactions including coordinate-based movement, block manipulation, and real-time game chat.5364 npm1Apache 2.0
- AlicenseNot gradedqualityFmaintenanceEnables AI-driven interactions with Minecraft through a WebSocket-based server and MCP protocol, allowing external MCP clients and in-game chat to trigger AI tools.4MIT
- AlicenseAqualityAmaintenanceEnables AI agents to control a Minecraft bot inside a Java Edition world via MCP, providing tools for movement, building, mining, combat, farming, trading, inventory, and world perception.5564 npm1MIT