Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

BlockHand

NPM · @GJLMOTEA/BLOCKHAND-MCP

Minecraft Education Edition MCP server: Agent robot, 24 build shapes, events. No add-on needed.

+3 this week 82 Trust /100

Last scanned (7 hours ago)

Scores higher than 72% of npm servers

Category Entertainment and Games

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security81
  • No malware found by supply-chain analysis.Pass
  • CVE check failed: a known high-severity CVE affects zod 3.25.76, a direct dependency. A fixed version is available. View diagnostics → Fail
  • No install/post-install scripts declared.Pass
  • 30 of 94 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency97
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to gjlmotea/blockhand-mcp). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 16 days ago).Pass
  • Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability76
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 6018 tokens (~130/item across 46 items; 44 tools + 2 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management57
  • Stability observed for 17 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage84
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 43% of tool parameters carry a description.Partial
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 46 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 4 Nov 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 50 to 53. That category is still filling its 30-day observation window: 15 days of observed history at the previous scan, 16 at this one. The score rises as the window fills, whether or not the server changes.

  • 2 Nov 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes.

  • 31 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 37 to 40. That category is still filling its 30-day observation window: 11 days of observed history at the previous scan, 12 at this one. The score rises as the window fills, whether or not the server changes.

  • 29 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 30 to 33. That category is still filling its 30-day observation window: 9 days of observed history at the previous scan, 10 at this one. The score rises as the window fills, whether or not the server changes.

  • 27 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

  • 25 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

  • 24 Oct 26 −5
    • CVE-2023-54404 affects this package: high ▼ security
    • Known CVEs: pass → fail ▼ security
  • 22 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Analysed npm/@gjlmotea/blockhand-mcp@0.1.1

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem npm
Reason Verified
Discovered via Registry attestation endpoint
Source repo gjlmotea/blockhand-mcp
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/gjlmotea/blockhand-mcp/.github/workflows/release.yml@refs/tags/v0.1.1
Rekor log index 3319762071
Predicate type SLSA build provenance https://slsa.dev/provenance/v1
Subject digest sha512:b5d19f71b5a64b22f476db48cd322b27e77e977e64654a91716ffd5d5848b4acd1829c7a1bad7912ee92bd6eeafec1a2d1123e43cc839c096752c1ee3

Background: How many MCP packages publish verified provenance →

Vulnerabilities 1 finding
ID CVE Severity Vector Fix available
GHSA-mrhx-c7xc-m3w5 CVE-2023-54404 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H yes

Background: What a vulnerability scan can and cannot prove →

Dependencies 94 packages
Packages resolved 94
Stale 30
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 44 exposed · ~5,083 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
mc_agent_act ~107

Act in a direction: attack hits a mob, destroy breaks a block and puts it in the inventory, till turns dirt into farmland. repeat runs it several times in a row. The Agent is the robot found only in Education Edition; summon it with mc_agent_create first. Directions are relative to the way the Agent faces, not world directions.

NameTypeReqDescription
actionstringyes–
delayMsinteger––
directionstring––
repeatinteger––
NameTypeReqDescription
elapsedMsnumberyes–
failednumberyes–
firstFailure–yes–
issuednumberyes–
okbooleanyes–
outcomesarrayyes–
succeedednumberyes–
undoobject––

No examples provided.

mc_agent_collect ~75

Pick up dropped items near the Agent. Leave item empty to pick up everything. The Agent is the robot found only in Education Edition; summon it with mc_agent_create first. Directions are relative to the way the Agent faces, not world directions.

NameTypeReqDescription
item––Block ID, for example stone or minecraft:oak_planks
NameTypeReqDescription
commandLinestringyes–
data–yes–
elapsedMsnumberyes–
okbooleanyes–
statusCodenumber|nullyes–
statusMessagestring|nullyes–
undoobject––

No examples provided.

mc_agent_create ~61

Spawn the Agent next to the player. Calling it again when the Agent already exists is safe. The Agent is the robot found only in Education Edition; summon it with mc_agent_create first. Directions are relative to the way the Agent faces, not world directions.

Input schema present but exposes no named parameters.

NameTypeReqDescription
commandLinestringyes–
data–yes–
elapsedMsnumberyes–
okbooleanyes–
statusCodenumber|nullyes–
statusMessagestring|nullyes–
undoobject––

No examples provided.

mc_agent_inventory ~147

Do one thing with the Agent inventory: count reads the amount in a slot, space reads the room left, detail reads item details, drop drops a quantity, dropAll drops everything in a direction, transfer moves items between slots. The Agent is the robot found only in Education Edition; summon it with mc_agent_create first. Directions are relative to the way the Agent faces, not world directions.

NameTypeReqDescription
actionstringyes–
destinationSlotinteger–Required for transfer
directionstring–Required for drop / dropAll
quantityinteger–Required for drop / transfer
slotinteger–Required for count / space / detail / drop
NameTypeReqDescription
commandLinestringyes–
data–yes–
elapsedMsnumberyes–
okbooleanyes–
statusCodenumber|nullyes–
statusMessagestring|nullyes–
undoobject––

No examples provided.

mc_agent_move ~103

Move the Agent steps blocks in a direction, one command per block. A step blocked by a block fails without stopping the rest. The Agent is the robot found only in Education Edition; summon it with mc_agent_create first. Directions are relative to the way the Agent faces, not world directions.

NameTypeReqDescription
delayMsinteger–Delay between steps, so the game has time to finish each move
directionstringyes–
stepsinteger––
NameTypeReqDescription
elapsedMsnumberyes–
failednumberyes–
firstFailure–yes–
issuednumberyes–
okbooleanyes–
outcomesarrayyes–
succeedednumberyes–
undoobject––

No examples provided.

mc_agent_place ~98

Take a block from an inventory slot (1-27) and place it in a direction. Fails when the slot is empty. The Agent is the robot found only in Education Edition; summon it with mc_agent_create first. Directions are relative to the way the Agent faces, not world directions.

NameTypeReqDescription
delayMsinteger––
directionstring––
repeatinteger––
slotintegeryes–
NameTypeReqDescription
elapsedMsnumberyes–
failednumberyes–
firstFailure–yes–
issuednumberyes–
okbooleanyes–
outcomesarrayyes–
succeedednumberyes–
undoobject––

No examples provided.

mc_agent_program ~101

Run a sequence of Agent actions in order as one program. This is the main tool for getting real work done with the Agent: laying a path as it walks, digging a tunnel, tilling a whole field. Each step is reported separately, and it can stop at the first failure.

NameTypeReqDescription
delayMs––Delay between steps; null uses the default of 100 ms
stepsarrayyes–
stopOnErrorboolean––
NameTypeReqDescription
commandsarrayyes–
elapsedMsnumberyes–
failednumberyes–
firstFailure–yes–
issuednumberyes–
okbooleanyes–
outcomesarrayyes–
succeedednumberyes–
undoobject––

No examples provided.

mc_agent_sense ~82

Read what is around the Agent without changing the world: inspect reads the block type, inspectData reads the block data value, detect checks whether there is a solid block in that direction, detectRedstone checks for a redstone signal. These are the Agent's eyes; look before acting.

NameTypeReqDescription
directionstring––
modestring––
NameTypeReqDescription
commandLinestringyes–
data–yes–
elapsedMsnumberyes–
okbooleanyes–
statusCodenumber|nullyes–
statusMessagestring|nullyes–
undoobject––

No examples provided.

mc_agent_teleport ~70

Bring the Agent to the player. Use it to recover the Agent when it is lost, stuck or has fallen into a hole. The Agent is the robot found only in Education Edition; summon it with mc_agent_create first. Directions are relative to the way the Agent faces, not world directions.

Input schema present but exposes no named parameters.

NameTypeReqDescription
commandLinestringyes–
data–yes–
elapsedMsnumberyes–
okbooleanyes–
statusCodenumber|nullyes–
statusMessagestring|nullyes–
undoobject––

No examples provided.

mc_agent_turn ~78

Turn the Agent left or right in place, 90 degrees each time. times=2 turns it around. The Agent is the robot found only in Education Edition; summon it with mc_agent_create first. Directions are relative to the way the Agent faces, not world directions.

NameTypeReqDescription
directionstringyes–
timesinteger––
NameTypeReqDescription
elapsedMsnumberyes–
failednumberyes–
firstFailure–yes–
issuednumberyes–
okbooleanyes–
outcomesarrayyes–
succeedednumberyes–
undoobject––

No examples provided.

mc_analyze_symmetry ~286

Check whether a region is symmetric left to right (or front to back), and when it is not, point out **which parts** are not. Use it to grade student builds: the score is the share of symmetric cells, not a gut feeling. How it works: testforblocks only compares by translation, never mirrored, so a mirrored copy is made first with the mirror option of structure save / load and then compared with the original. Warning: this **temporarily writes** to the scratch area: its contents are always backed up first and restored right after the comparison; if the backup fails, it stops without touching the world. scratch must not overlap the analyzed region, or the mirrored copy overwrites the original build. The region is limited by the structure command (64x384x64).

NameTypeReqDescription
cellsPerAxisinteger–Subdivision when the whole region is not symmetric: n parts per axis, n^3 cells, one command per cell
fromobjectyesOne corner of the analyzed region
mirrorstring–Mirror axis: x checks left-right symmetry, z checks front-back symmetry, xz requires both
scratchobjectyesMinimum corner of the scratch area; it is overwritten and then restored, and must not overlap the analyzed region
toobjectyesThe opposite corner of the analyzed region
NameTypeReqDescription
asymmetricCellsarrayyes–
commandsIssuednumberyes–
matchedCellsnumberyes–
mirrorstringyes–
scorenumberyes0-100, the share of symmetric cells
scratchRestoredbooleanyesfalse means the scratch area was not restored and the world was left changed
symmetricbooleanyes–
totalCellsnumberyes–

No examples provided.

mc_await_connection ~58

Block until the game connects to the bridge, for at most timeoutSeconds seconds. A timeout is not an error; it just reports connected=false. Call it after asking the user to type /connect.

NameTypeReqDescription
timeoutSecondsinteger––
NameTypeReqDescription
bufferedEventsnumberyes–
commandStatestring––
commandsIssuednumberyes–
connectCommandstringyes–
connectedbooleanyes–
connectedAtstring|nullyes–
connectionCountnumberyes–
encryptedbooleanyes–
hoststringyes–
inFlightCommandsnumber–Commands sent to the game and still waiting for a reply; the bridge sends one at a time
lastCommandResponseAtstring|null––
lastCommandTimeoutAtstring|null––
listeningbooleanyes–
portnumberyes–
queuedCommandsnumber–Commands queued and not yet sent; greater than 0 means the backlog comes from concurrent calls on the client side, not from the game
savedStructuresarrayyesStructures saved during this connection; the game has no command to list structures, so the bridge keeps its own record
subscribedEventsarrayyes–
undoobject––

No examples provided.

mc_blueprint_preview ~46

Compute only, build nothing: group a block-by-block blueprint by block type and report the total block count and the number of merged fill batches.

NameTypeReqDescription
entriesarrayyes–
NameTypeReqDescription
blockstringyes–
blockCountnumberyes–
blockStatesstring|nullyes–
boundsobjectyes–
fillBatchesnumberyes–
savedCommandsnumberyes–
shapestringyes–

No examples provided.

mc_build_blueprint ~68

Build any form from a list of coordinate -> block entries; identical blocks are merged into the fewest fill commands automatically. Prefer mc_build_shape for geometric shapes; this tool is for pixel art, text, irregular forms, or models converted from external data.

NameTypeReqDescription
entriesarrayyes–
NameTypeReqDescription
elapsedMsnumberyes–
failednumberyes–
firstFailure–yes–
issuednumberyes–
okbooleanyes–
outcomesarrayyes–
planobjectyes–
succeedednumberyes–
undoobject––

No examples provided.

mc_build_preview ~126

Compute only, build nothing: report how many blocks the shape uses, where its bounding box is, and how many fill commands it splits into. All coordinates are absolute world coordinates; if you do not know where the player is, call mc_query_target first. Building changes the world directly, so check the block count and bounding box with the matching preview tool before you build.

NameTypeReqDescription
blockstringyesBlock ID, for example stone or minecraft:oak_planks
blockStates––Optional block states, for example ["stone_type":"granite"]
shape–yes–
NameTypeReqDescription
blockstringyes–
blockCountnumberyes–
blockStatesstring|nullyes–
boundsobjectyes–
fillBatchesnumberyes–
savedCommandsnumberyes–
shapestringyes–

No examples provided.

mc_build_shape ~492

Build a shape directly in the world. Block coordinates are merged into the fewest fill commands automatically, so a sphere of radius 20 takes a few hundred commands instead of thirty thousand. [Choose a shape by intent] Basic volumes: box, sphere, ellipsoid, cylinder, cone (topRadius>0 makes a truncated cone), pyramid (sides sets the number of sides, topRadius>0 makes a frustum), prism (regular n-sided prism). Lines and surfaces: line (straight line), curve (smooth curve), disk (disk / ring), tube (cylinder in any direction). Building parts: wedge (single slope), roof (gable / hip), arch, stairs (straight stairs), spiralStairs, polywall (polyline wall / city wall). Terrain and paths: heightfield (rolling ground), ribbon (road / bridge deck). Decoration and forms: torus (ring), helix, cross (plus-shaped column), star (star-shaped column), revolution (solid of revolution). [Easy to confuse; read this first] Slanted columns, beams, pipes -> tube, not cylinder (cylinder only aligns with x / y / z). Walls or fences with right-angle turns -> polywall, not curve (curve is smooth and rounds off right angles). A roof with a ridge -> roof; a single slope or ramp only -> wedge. Stairs that wind around a tower -> spiralStairs; straight up and down -> stairs. Tower bodies, bases or chimneys that are wider at one end -> cone or pyramid with topRadius, not stacked layers of box. Domes, vases, paraboloids, cooling towers and other round forms whose width changes -> revolution with a different profile; no other shape is needed. A stretch of rolling ground -> heightfield; a flat road with a width -> ribbon. If unsure, check the block count and bounding box with mc_build_preview first; it does not touch the world. All coordinates are absolute world coordinates; if you do not know where the player is, call mc_query_target first. Building changes the world directly, so check the block count and bounding box with the matching preview tool before you build.

NameTypeReqDescription
blockstringyesBlock ID, for example stone or minecraft:oak_planks
blockStates––Optional block states, for example ["stone_type":"granite"]
shape–yes–
NameTypeReqDescription
elapsedMsnumberyes–
failednumberyes–
firstFailure–yes–
issuednumberyes–
okbooleanyes–
outcomesarrayyes–
planobjectyes–
succeedednumberyes–
undoobject––

No examples provided.

mc_clone ~69

Copy the region from begin to end to destination. cloneMode="move" clears the original. Good for mass-producing a hand-built template.

NameTypeReqDescription
beginobjectyes–
cloneMode–––
destinationobjectyes–
endobjectyes–
maskMode–––
NameTypeReqDescription
commandLinestringyes–
data–yes–
elapsedMsnumberyes–
okbooleanyes–
statusCodenumber|nullyes–
statusMessagestring|nullyes–
undoobject––

No examples provided.

mc_compare_regions ~154

Compare a whole region with one command; good for checking whether a student build matches a reference. Comparing block by block hits the MCP host timeout beyond a few hundred blocks; this does not. masked=true ignores air in the source region and only checks that what should be there is there, regardless of anything extra around it; masked=false requires an exact match. Both regions must be the same size; destination is the minimum corner of the target region.

NameTypeReqDescription
beginobjectyesOne corner of the source region
destinationobjectyesMinimum corner of the target region
endobjectyesThe opposite corner of the source region
maskedboolean–When true, air in the source is ignored
NameTypeReqDescription
commandLinestringyes–
data–yes–
elapsedMsnumberyes–
identicalbooleanyes–
okbooleanyes–
statusCodenumber|nullyes–
statusMessagestring|nullyes–
undoobject––

No examples provided.

mc_effect ~98

action="apply" applies a potion effect; "clear" removes all effects.

NameTypeReqDescription
actionstring––
amplifierinteger––
effectstring–Required for apply, for example speed or night_vision
hideParticlesboolean––
secondsinteger––
targetstring–Target selector (@a/@p/@s/@e/@r, optionally with []) or a player name
NameTypeReqDescription
commandLinestringyes–
data–yes–
elapsedMsnumberyes–
okbooleanyes–
statusCodenumber|nullyes–
statusMessagestring|nullyes–
undoobject––

No examples provided.

mc_events_catalog ~47

Return the event names known to work. Mojang does not formally document this list, so subscribing to a name outside it is allowed; it is just marked unverified. No side effects.

Input schema present but exposes no named parameters.

NameTypeReqDescription
eventNamesarrayyes–

No examples provided.

mc_events_poll ~92

Return the events after a cursor. Use afterCursor=0 the first time, then pass back the nextCursor from the previous call to keep reading. dropped greater than 0 means the buffer wrapped around and some events are lost for good; poll more often. No side effects.

NameTypeReqDescription
afterCursorinteger––
eventName––Only return this kind of event
limitinteger––
NameTypeReqDescription
droppednumberyes–
eventsarrayyes–
nextCursornumberyes–

No examples provided.

mc_events_subscribe ~82

Start receiving a kind of game event (for example PlayerMessage for chat, BlockPlaced for placed blocks, PlayerTravelled for movement). Events go into a ring buffer; read them later with mc_events_poll. This is how the AI perceives what the player is doing. Subscriptions are renewed automatically after a reconnect.

NameTypeReqDescription
eventNamestringyes–
NameTypeReqDescription
eventNamestringyes–
subscribedEventsarrayyes–
verifiedbooleanyes–

No examples provided.

mc_events_unsubscribe ~33

Stop receiving a kind of event. Events already in the buffer are kept.

NameTypeReqDescription
eventNamestringyes–
NameTypeReqDescription
eventNamestringyes–
subscribedEventsarrayyes–

No examples provided.

mc_feedback ~75

Play a sound or spawn a particle effect at a coordinate, to give players immediate sensory feedback.

NameTypeReqDescription
idstringyesSound or particle ID, for example random.levelup or minecraft:heart_particle
kindstringyes–
position–––
targetstring–Who hears it when kind="sound"
NameTypeReqDescription
commandLinestringyes–
data–yes–
elapsedMsnumberyes–
okbooleanyes–
statusCodenumber|nullyes–
statusMessagestring|nullyes–
undoobject––

No examples provided.

mc_fill ~166

Fill the box from from to to with one kind of block. Bedrock allows at most 32768 blocks per fill; beyond that use mc_build_shape, which splits the work into batches automatically. mode=hollow fills the six outer faces and clears the inside to air; mode=outline replaces only the six outer faces and leaves the inside as it is.

NameTypeReqDescription
blockstringyesBlock ID, for example stone or minecraft:oak_planks
blockStates––Optional block states, for example ["stone_type":"granite"]
fromobjectyes–
mode–––
replaceBlock––Only used when mode="replace"
replaceStates––Optional block states, for example ["stone_type":"granite"]
toobjectyes–
NameTypeReqDescription
commandLinestringyes–
data–yes–
elapsedMsnumberyes–
okbooleanyes–
statusCodenumber|nullyes–
statusMessagestring|nullyes–
undoobject––

No examples provided.

mc_gamemode ~56

Switch the target to survival, creative, adventure or spectator.

NameTypeReqDescription
modestringyes–
targetstring–Target selector (@a/@p/@s/@e/@r, optionally with []) or a player name
NameTypeReqDescription
commandLinestringyes–
data–yes–
elapsedMsnumberyes–
okbooleanyes–
statusCodenumber|nullyes–
statusMessagestring|nullyes–
undoobject––

No examples provided.

mc_give ~97

Give a target a number of items. To give the Agent something to place, give it to the player first and then hand it to the Agent.

NameTypeReqDescription
amountinteger––
data–––
itemstringyesBlock ID, for example stone or minecraft:oak_planks
targetstring–Target selector (@a/@p/@s/@e/@r, optionally with []) or a player name
NameTypeReqDescription
commandLinestringyes–
data–yes–
elapsedMsnumberyes–
okbooleanyes–
statusCodenumber|nullyes–
statusMessagestring|nullyes–
undoobject––

No examples provided.

mc_message ~86

say posts to everyone in chat, tell sends a private message, title / subtitle / actionbar show large text on screen. Use it to talk to players while teaching or reporting progress.

NameTypeReqDescription
channelstring––
messagestringyes–
targetstring–Target selector (@a/@p/@s/@e/@r, optionally with []) or a player name
NameTypeReqDescription
commandLinestringyes–
data–yes–
elapsedMsnumberyes–
okbooleanyes–
statusCodenumber|nullyes–
statusMessagestring|nullyes–
undoobject––

No examples provided.

mc_player_action ~118

kill kills the target, clear empties the inventory (optionally one item only), xp gives experience, ability turns the worldbuilder / mayfly / mute abilities on or off.

NameTypeReqDescription
abilitystring––
actionstringyes–
amountinteger–Required for xp
enabledboolean––
item––Optional for clear
targetstring–Target selector (@a/@p/@s/@e/@r, optionally with []) or a player name
unitstring––
NameTypeReqDescription
commandLinestringyes–
data–yes–
elapsedMsnumberyes–
okbooleanyes–
statusCodenumber|nullyes–
statusMessagestring|nullyes–
undoobject––

No examples provided.

mc_query_target ~118

Query the coordinates, facing and unique ID of entities by selector, returned as parsed JSON. This is the standard way to get the current position of the player or the Agent; ask this before building so you know where to build. It defaults to @p (the nearest player) rather than @s: commands sent over the WebSocket have no entity identity, so @s cannot be resolved in some cases.

NameTypeReqDescription
targetstring–Target selector (@a/@p/@s/@e/@r, optionally with []) or a player name
NameTypeReqDescription
commandLinestringyes–
data–yes–
details–––
elapsedMsnumberyes–
okbooleanyes–
statusCodenumber|nullyes–
statusMessagestring|nullyes–
undoobject––

No examples provided.

mc_read_block ~149

Report what is actually at a coordinate, without you having to guess first. Education has no command to read a block, so this runs testforblock with air as a sentinel; when the guess is wrong, the game message names the actual block. Note: it returns the **localized display name** (for example "Dirt", or "泥土" in a Chinese game), not the block ID (dirt), so it cannot be fed back to mc_set_block; to check by ID, use mc_test_block. The message format has no official guarantee; when it cannot be parsed, this tool returns an error with the raw message instead of guessing.

NameTypeReqDescription
positionobjectyes–
NameTypeReqDescription
blockstringyesLocalized display name; when it cannot be parsed, this tool returns an error instead of null
commandLinestringyes–
data–yes–
elapsedMsnumberyes–
isAirbooleanyes–
okbooleanyes–
rawstring|nullyes–
statusCodenumber|nullyes–
statusMessagestring|nullyes–
undoobject––

No examples provided.

mc_run_command ~84

Send one raw slash command, for anything this server has no dedicated tool for. Single line only, no newline chaining. Refuses wsserver / connect / closewebsocket, including when wrapped in execute (that would cut this bridge). The leading slash is optional.

NameTypeReqDescription
commandstringyesFor example "time set day" or "/give @s diamond 1"
NameTypeReqDescription
commandLinestringyes–
data–yes–
elapsedMsnumberyes–
okbooleanyes–
riskstringyes–
statusCodenumber|nullyes–
statusMessagestring|nullyes–
undoobject––

No examples provided.

mc_run_commands ~157

Send several raw commands in order; each one passes the command policy on its own. Good for hand-written macros; for many blocks use mc_build_shape or mc_build_blueprint, which merge them into the fewest fill commands automatically.

NameTypeReqDescription
commandsarrayyes–
delayMsinteger––
reportFailuresOnlyboolean–Return only the failed commands and skip the successful ones. Per-command results of a large batch (for example 200 fill commands) easily run past ten thousand tokens, and most of them just say "N bl…
stopOnErrorboolean––
NameTypeReqDescription
elapsedMsnumberyes–
failednumberyes–
firstFailure–yes–
issuednumberyes–
okbooleanyes–
outcomesarrayyes–
succeedednumberyes–
undoobject––

No examples provided.

mc_set_block ~87

Place one block at a coordinate. For many blocks use mc_fill or mc_build_shape instead; calling this tool block by block is very slow.

NameTypeReqDescription
blockstringyesBlock ID, for example stone or minecraft:oak_planks
blockStates––Optional block states, for example ["stone_type":"granite"]
handling–––
positionobjectyes–
NameTypeReqDescription
commandLinestringyes–
data–yes–
elapsedMsnumberyes–
okbooleanyes–
statusCodenumber|nullyes–
statusMessagestring|nullyes–
undoobject––

No examples provided.

mc_status ~72

Report the WebSocket bridge, whether the game is answering commands (commandState), the last reply and timeout times, the /connect command and subscribed events. connected only means the network link is up; timed-out means a recent command got no reply, so do not assume the game can still act. No side effects.

Input schema present but exposes no named parameters.

NameTypeReqDescription
bufferedEventsnumberyes–
commandStatestring––
commandsIssuednumberyes–
connectCommandstringyes–
connectedbooleanyes–
connectedAtstring|nullyes–
connectionCountnumberyes–
encryptedbooleanyes–
hoststringyes–
inFlightCommandsnumber–Commands sent to the game and still waiting for a reply; the bridge sends one at a time
lastCommandResponseAtstring|null––
lastCommandTimeoutAtstring|null––
listeningbooleanyes–
portnumberyes–
queuedCommandsnumber–Commands queued and not yet sent; greater than 0 means the backlog comes from concurrent calls on the client side, not from the game
savedStructuresarrayyesStructures saved during this connection; the game has no command to list structures, so the bridge keeps its own record
subscribedEventsarrayyes–
undoobject––

No examples provided.

mc_structure ~354

Save a region as a named structure, or place a saved structure back into the world. This is the official way to keep what the AI built, mass-produce it, or take it to another world. **Choose saveMode by what the user wants; do not always use the same one:** - `memory` (default) = temporary storage for this connection. Use it while the AI keeps revising the same build: save a version to keep a way back, and load it if a change goes wrong. It disappears when the game closes and leaves no files on disk. - `disk` = only when **the user explicitly says to keep it** ("remember this building", "save it so I can use it next time"). It is written as a file into the game world folder and survives closing the game, which really leaves something on the user disk, so do not write it when they did not ask to keep it. Versioning is **naming**: `castle_v1`, `castle_v2`. The same name overwrites without warning, so change the name before saving a new version. The game has no command to list saved structures, so names are the only record; mc_status lists the ones saved during this connection.

NameTypeReqDescription
actionstringyes–
destinationobject–Required for load
fromobject–Required for save
includeEntitiesboolean––
namestringyesVersions are told apart by this; the same name overwrites
saveModestring–memory = temporary (default); disk = written to disk, only when the user explicitly says to keep it
toobject–Required for save
NameTypeReqDescription
commandLinestringyes–
data–yes–
elapsedMsnumberyes–
okbooleanyes–
statusCodenumber|nullyes–
statusMessagestring|nullyes–
undoobject––

No examples provided.

mc_summon ~63

Spawn one entity at a coordinate, optionally with a name tag. Leave position empty to spawn it where the command runs.

NameTypeReqDescription
entitystringyesEntity ID, for example cow or minecraft:villager
nameTag–––
position–––
NameTypeReqDescription
commandLinestringyes–
data–yes–
elapsedMsnumberyes–
okbooleanyes–
statusCodenumber|nullyes–
statusMessagestring|nullyes–
undoobject––

No examples provided.

mc_teleport ~67

Teleport the targets of a selector to a coordinate. target defaults to @s, the player running the commands.

NameTypeReqDescription
destinationobjectyes–
targetstring–Target selector (@a/@p/@s/@e/@r, optionally with []) or a player name
NameTypeReqDescription
commandLinestringyes–
data–yes–
elapsedMsnumberyes–
okbooleanyes–
statusCodenumber|nullyes–
statusMessagestring|nullyes–
undoobject––

No examples provided.

mc_test_block ~83

Report whether a coordinate holds the given block, without changing the world. Use it to check the terrain before building or to verify what was just built.

NameTypeReqDescription
blockstringyesBlock ID, for example stone or minecraft:oak_planks
blockStates––Optional block states, for example ["stone_type":"granite"]
positionobjectyes–
NameTypeReqDescription
commandLinestringyes–
data–yes–
elapsedMsnumberyes–
matchesbooleanyes–
okbooleanyes–
statusCodenumber|nullyes–
statusMessagestring|nullyes–
undoobject––

No examples provided.

mc_ticking_area ~54

Keep a region loaded so its mechanisms keep running after the player leaves. Needed when the Agent works on its own far away.

NameTypeReqDescription
fromobjectyes–
name–––
toobjectyes–
NameTypeReqDescription
commandLinestringyes–
data–yes–
elapsedMsnumberyes–
okbooleanyes–
statusCodenumber|nullyes–
statusMessagestring|nullyes–
undoobject––

No examples provided.

mc_undo ~154

Undo the last protected setblock/fill or build tool call; several build commands count as one step. All target blocks are checked first, then each region is restored with conditional commands so later changes are not overwritten. operationId guards against undoing the wrong version. Use overwriteChanges only when the user explicitly asks to overwrite conflicts, or accepts restoring the site after an operation whose outcome is uncertain; never set it to true on your own. This first version covers basic Overworld building blocks only: no mobs, inventories, water flow or redstone chains outside the region, and no Redo. Do not switch worlds or dimensions while it runs.

NameTypeReqDescription
operationIdstring––
overwriteChangesboolean––
NameTypeReqDescription
availablebooleanyes–
backupMsnumberyes–
busybooleanyes–
checkMsnumberyes–
enabledbooleanyes–
maxBlocksintegeryes–
maxRegionsintegeryes–
operationIdstring|nullyes–
reasonstring|nullyes–
restoreMsnumberyes–
restoredRegionsintegeryes–
snapshotCountintegeryes–
statestringyes–
storedBlocksintegeryes–

No examples provided.

Install

How do I install the BlockHand MCP server?

BlockHand runs locally as an npm package, launched with npx -y @gjlmotea/blockhand-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · @gjlmotea/blockhand-mcp

# add to Claude Code
claude mcp add gjlmotea-blockhand-for-minecraft-education-mcp -- npx -y @gjlmotea/blockhand-mcp
Common questions

What is the BlockHand MCP server?

BlockHand is an MCP server listed in the public MCP registry as io.github.gjlmotea/blockhand-for-minecraft-education-mcp. Minecraft Education Edition MCP server: Agent robot, 24 build shapes, events. No add-on needed. This page covers its npm package (@gjlmotea/blockhand-mcp).

Is the BlockHand MCP server safe to use?

BlockHand scores 82 out of 100 on VerifyMCP. We recorded 1 known advisory against it as of 5 November 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the BlockHand MCP server expose?

BlockHand exposes 44 tools: mc_undo_control, mc_undo, mc_status, mc_await_connection, mc_run_command, and 39 more. Their descriptions and schemas cost roughly 5,083 tokens of context every time the server is loaded.

Is the BlockHand MCP server still maintained?

BlockHand is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the BlockHand MCP server under?

BlockHand declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.