Awesome Mineflayer MCP
NPM · AWESOME-MINEFLAYER-MCP · SCANNED SEP 20
Control a Mineflayer Minecraft bot with 120+ MCP tools: move, mine, craft, fight, build, and see.
Available components
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 Security89
- No malware found by supply-chain analysis.Pass
- CVE check failed: a known high-severity CVE affects uuid 10.0.0, reached via mineflayer > minecraft-protocol > yggdrasil > uuid. A fixed version is available. View diagnostics → Fail
- No install/post-install scripts declared.Pass
- 93 of 247 dependencies flagged as unhealthy (2 deprecated). View diagnostics → Partial
Provenance & Transparency97
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Cryptographically verified build provenance (signed, bound to G0Osey99/awesome-mineflayer-mcp). View diagnostics → Pass
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 82 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability89
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- Tool/resource definitions use about 11473 tokens (~88/item across 129 items; 123 tools + 6 resources), lean.Pass
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management87
- Stability observed for 26 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage98
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 93% of tool parameters carry a description.Partial
Tool Safety75
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- 0 of 9 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "unequip_item" implies "remove" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
- An AI judge read all 125 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
How do I install the Awesome Mineflayer MCP server?
Awesome Mineflayer MCP runs locally as an npm package, launched with npx -y awesome-mineflayer-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 · awesome-mineflayer-mcp
claude mcp add g0osey99-awesome-mineflayer-mcp -- npx -y awesome-mineflayer-mcp
{
"mcpServers": {
"g0osey99-awesome-mineflayer-mcp": {
"command": "npx",
"args": [
"-y",
"awesome-mineflayer-mcp"
]
}
}
} {
"servers": {
"g0osey99-awesome-mineflayer-mcp": {
"command": "npx",
"args": [
"-y",
"awesome-mineflayer-mcp"
]
}
}
} codex mcp add g0osey99-awesome-mineflayer-mcp -- npx -y awesome-mineflayer-mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"g0osey99-awesome-mineflayer-mcp": {
"type": "local",
"command": [
"npx",
"-y",
"awesome-mineflayer-mcp"
],
"enabled": true
}
}
} openclaw mcp add g0osey99-awesome-mineflayer-mcp --command npx --arg -y --arg awesome-mineflayer-mcp
mcp_servers:
g0osey99-awesome-mineflayer-mcp:
command: "npx"
args: ["-y", "awesome-mineflayer-mcp"] {
"McpServers": {
"g0osey99-awesome-mineflayer-mcp": {
"Transport": "stdio",
"Command": "npx",
"Arguments": [
"-y",
"awesome-mineflayer-mcp"
]
}
}
} assistant mcp add g0osey99-awesome-mineflayer-mcp -t stdio -c npx -a -y awesome-mineflayer-mcp
{
"mcpServers": {
"g0osey99-awesome-mineflayer-mcp": {
"command": "npx",
"args": [
"-y",
"awesome-mineflayer-mcp"
]
}
}
} 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.
- 20 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
- 18 Sept 26 −2
- Stability: pass → 0.80 functional
- 17 Sept 26 0
- Stability: 0.97 → pass security
- 16 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.
- 15 Sept 26 0
- CVE-2026-82417 no longer affects this package ▲ security
- CVE-2026-82562 no longer affects this package ▲ security
- 14 Sept 26 0
- Security disclosure: unverified → fail ▼ functional
- 13 Sept 26 +1
- Security disclosure: fail → unverified ▼ functional
- 11 Sept 26 −2
- Stability: pass → 0.80 functional
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 20 Sept 2026 · Analysed npm/awesome-mineflayer-mcp@1.3.2
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 | G0Osey99/awesome-mineflayer-mcp |
| Certificate issuer | https://token.actions.githubusercontent.com |
| Certificate SAN | https://github.com/G0Osey99/awesome-mineflayer-mcp/.github/workflows/ci.yml@refs/tags/v1.3.2 |
| Rekor log index | 2002306050 |
| Predicate type | https://slsa.dev/provenance/v1 |
| Subject digest | sha512:043b6fcefcb3f4f1f889c33405d65f564e0fbb75f8323e8c26e1978ee31fe997bf0596aa5fb0cb85382695cb7ede391d794ec232f5a24508ccace9f3b |
Background: How many MCP packages publish verified provenance →
Vulnerabilities 1 finding
| ID | CVE | Severity | Vector | Fix available |
|---|---|---|---|---|
| GHSA-w5hq-g745-h8pq | CVE-2026-41907 | high | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N | yes |
Background: What a vulnerability scan can and cannot prove →
Dependencies 247 packages
| Packages resolved | 247 |
|---|---|
| Deprecated | 2 |
| Stale | 90 |
| No linked repository | 2 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
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 →
activate_block ~101
Right-click / activate the block at a coordinate (buttons, levers, doors, chests-as-interaction, etc.).
| Name | Type | Req | Description |
|---|---|---|---|
| cursorPos | object | – | Cursor position on the block face |
| direction | object | – | Face direction to interact from |
| x | number | yes | X world coordinate (integer for blocks) |
| y | number | yes | Y world coordinate (integer for blocks) |
| z | number | yes | Z world coordinate (integer for blocks) |
No output schema declared.
No examples provided.
activate_entity ~97
Right-click / interact with a tracked entity (e.g. trade with a villager, mount a vehicle). Use `useHeldItem` to use the held item on it, or `position` to interact at a specific point.
| Name | Type | Req | Description |
|---|---|---|---|
| entityId | integer | yes | Entity network id |
| position | object | – | Interact at this point on the entity |
| useHeldItem | boolean | – | Use the held item on the entity |
No output schema declared.
No examples provided.
activate_item ~90
Start or stop using the held item (right-click hold). Use action `start` to begin (e.g. draw a bow, raise a shield, eat) and `stop` to release.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | – | "start" (default) to activate, "stop" to deactivate |
| offHand | boolean | – | Activate the off-hand item instead of the main hand (default false) |
No output schema declared.
No examples provided.
anvil_combine ~226
Open the anvil at (x,y,z) and combine/repair two items (or rename a single item). Identify each input either by inventory slot number (itemOneSlot/itemTwoSlot) or by item name/id (itemOne/itemTwo); slot wins if both are given. Provide only the first item plus `name` to rename. Costs experience levels; result is taken back into inventory.
| Name | Type | Req | Description |
|---|---|---|---|
| itemOne | – | – | First (base) item by name/id (if itemOneSlot not given) |
| itemOneSlot | integer | – | Inventory slot of the first (base) item |
| itemTwo | – | – | Second item by name/id; omit for a rename-only operation |
| itemTwoSlot | integer | – | Inventory slot of the second (sacrifice/material) item |
| name | string | – | New name to apply to the result (optional) |
| x | number | yes | X world coordinate (integer for blocks) |
| y | number | yes | Y world coordinate (integer for blocks) |
| z | number | yes | Z world coordinate (integer for blocks) |
No output schema declared.
No examples provided.
armor_equip_all ~23
Automatically equip the best available armor pieces from the bot's inventory.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
attack_entity ~76
Perform a single melee attack swing against a tracked entity (one-shot; does not pathfind or repeat). Use pvp_attack for sustained combat.
| Name | Type | Req | Description |
|---|---|---|---|
| entityId | integer | yes | Entity network id (obtain from list_entities / find_nearest_entity) |
| swing | boolean | – | Whether to play the arm swing animation (default true) |
No output schema declared.
No examples provided.
autoeat_cancel ~25
Cancel an in-progress eat started by autoeat_eat or the auto behavior.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
autoeat_configure ~188
Configure auto-eat options. Only the provided fields are changed. priority selects how food is ranked; minHunger/minHealth are the thresholds that trigger auto-eating; bannedFood lists item names to never eat.
| Name | Type | Req | Description |
|---|---|---|---|
| bannedFood | array | – | Item names to never eat |
| eatingTimeout | number | – | Max ms to wait for an eat to complete |
| minHealth | number | – | Eat automatically when health is at or below this (0-20) |
| minHunger | number | – | Eat automatically when hunger is at or below this (0-20) |
| offhand | boolean | – | Eat from the off-hand slot |
| priority | string | – | How candidate foods are ranked |
| returnToLastItem | boolean | – | Re-equip the previously held item after eating |
| strictErrors | boolean | – | Throw on recoverable errors instead of swallowing them |
No output schema declared.
No examples provided.
autoeat_eat ~113
Eat a food item once, now. Optionally specify which food; otherwise the best available food is chosen by the current priority. Throws MISSING_ITEM when no suitable food is available.
| Name | Type | Req | Description |
|---|---|---|---|
| equipOldItem | boolean | – | Re-equip the previously held item after eating |
| food | – | – | Specific food item to eat (name or id); omit to auto-select |
| offhand | boolean | – | Eat from the off-hand slot |
| priority | string | – | Override the ranking used to pick a food |
No output schema declared.
No examples provided.
autoeat_preview ~49
Preview which inventory foods would be chosen, ranked best-first, under the given (or current) priority. Read-only.
| Name | Type | Req | Description |
|---|---|---|---|
| priority | string | – | Ranking to use; defaults to the configured priority |
No output schema declared.
No examples provided.
autoeat_set_enabled ~47
Enable or disable the automatic eating behavior (eats when hunger/health drop below the configured thresholds).
| Name | Type | Req | Description |
|---|---|---|---|
| enabled | boolean | yes | true to enable auto-eating, false to disable |
No output schema declared.
No examples provided.
cancel_collect ~22
Cancel the active collect_block task and abort any in-progress gathering action.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
cancel_fish ~55
Best-effort interrupt of an in-progress `fish` action. Mineflayer has no native fish abort, so this toggles item use and cancels the current task; the pending fish promise may still settle on its own.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
cancel_task ~44
Cancel the bot's current long-running action (goto, dig, collect_block, pvp_attack, fish, smelt_item, craft_item). Returns whether something was actually cancelled.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
chat ~40
Send a public chat message to the server. To run a slash command use `run_command` instead.
| Name | Type | Req | Description |
|---|---|---|---|
| message | string | yes | The chat message to send |
No output schema declared.
No examples provided.
clear_control_states ~17
Release all manual movement controls at once.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
clear_region ~110
Dig out every solid block in the axis-aligned box from `from` to `to` (inclusive). Closest blocks first; the bot repositions and auto-equips tools. Stops after `maxBlocks` digs (default 256). Cancellable; reports dug/skipped/failed.
| Name | Type | Req | Description |
|---|---|---|---|
| from | object | yes | One corner of the box |
| maxBlocks | integer | – | Max blocks to dig this call (default 256) |
| to | object | yes | Opposite corner of the box |
No output schema declared.
No examples provided.
click_window ~113
Low-level window click. `slot` is the window slot index, `mouseButton` 0=left/1=right, `mode` 0-6 (0 normal, 1 shift, 2 number-key, 4 drop, etc). Prefer higher-level tools when possible.
| Name | Type | Req | Description |
|---|---|---|---|
| mode | integer | yes | Click mode 0-6 (see Minecraft window protocol) |
| mouseButton | integer | yes | 0 = left, 1 = right |
| slot | integer | yes | Window slot index |
No output schema declared.
No examples provided.
close_window ~38
Close the currently-open window/container session (chest, furnace, villager, enchant, anvil). Safe to call even if nothing is open.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
collect_block ~260
Break and collect block(s) (or pick up an item-drop entity) using the collectblock plugin. `target` is a block name (collects the N nearest, see `count`), a {x,y,z} block position, or a numeric entity id (item drop). When the inventory fills, items are deposited into `chestLocations`; use `depositItems`/`keepItems` to control what gets stored. Long-running and cancellable.
| Name | Type | Req | Description |
|---|---|---|---|
| append | boolean | – | Append to the existing collection task instead of starting fresh |
| chestLocations | array | – | Chest positions to deposit into when the inventory fills |
| count | integer | – | When target is a block name, how many nearest blocks to collect (default 1) |
| depositItems | array | – | Only these item names are moved to a chest (mutually exclusive with keepItems) |
| ignoreNoPath | boolean | – | Do not error if no path to a target can be found; pick the best reachable spot |
| keepItems | array | – | Keep these item names; everything else may be deposited |
| target | – | yes | Block name (e.g. "oak_log"), a {x,y,z} block position, or a numeric item-drop entity id |
No output schema declared.
No examples provided.
configure_movements ~254
Build and apply a Movements profile (the rules governing how the bot may traverse the world: digging, parkour, towers, doors, costs, and block allow/deny lists). Applies to the pathfinder by default, or to pvp/collectblock movements via `scope`.
| Name | Type | Req | Description |
|---|---|---|---|
| allow1by1towers | boolean | – | – |
| allowFreeMotion | boolean | – | – |
| allowParkour | boolean | – | – |
| allowSprinting | boolean | – | – |
| blocksCantBreak | array | – | Block names the bot must never break |
| blocksToAvoid | array | – | Block names the bot should avoid stepping on |
| canDig | boolean | – | – |
| canOpenDoors | boolean | – | – |
| digCost | number | – | – |
| dontCreateFlow | boolean | – | – |
| dontMineUnderFallingBlock | boolean | – | – |
| entityCost | number | – | – |
| infiniteLiquidDropdownDistance | boolean | – | – |
| maxDropDown | number | – | – |
| placeCost | number | – | – |
| scaffoldingBlocks | array | – | Block names usable as scaffolding to bridge/tower |
| scope | string | – | Where to apply the profile (default pathfinder) |
No output schema declared.
No examples provided.
configure_pathfinder ~126
Tune pathfinder engine parameters (thinking budget per search/tick, search radius, and path-shortcut / line-of-sight placement behaviour). Returns the resulting values.
| Name | Type | Req | Description |
|---|---|---|---|
| LOSWhenPlacingBlocks | boolean | – | Require line of sight when placing scaffolding |
| enablePathShortcut | boolean | – | Skip redundant nodes for smoother paths |
| searchRadius | number | – | Limit the search radius in blocks (-1 = unlimited) |
| thinkTimeout | number | – | Max ms for a full path search |
| tickTimeout | number | – | Max ms of thinking per tick (<=50) |
No output schema declared.
No examples provided.
connect_bot ~347
Connect the bot to a Minecraft server and wait until it spawns. Prerequisite for every other action tool. For Microsoft auth, a device-code prompt is emitted as an `msa_code` event / log notification; set `profilesFolder` to cache the token across runs.
| Name | Type | Req | Description |
|---|---|---|---|
| accessToken | string | – | Cached MSA access token (skip device-code flow) |
| auth | string | – | Auth mode (default offline) |
| autoReconnect | boolean | – | Automatically reconnect on unexpected disconnect (default false) |
| brand | string | – | – |
| chatLengthLimit | integer | – | – |
| checkTimeoutInterval | integer | – | ms before considering the connection timed out |
| clientToken | string | – | – |
| connectTimeoutMs | integer | – | Max ms to wait for spawn (default 30000) |
| defaultChatPatterns | boolean | – | – |
| disableChatSigning | boolean | – | – |
| hideErrors | boolean | – | – |
| host | string | yes | Server hostname or IP |
| keepAlive | boolean | – | – |
| logErrors | boolean | – | – |
| password | string | – | Account password (usually omit for microsoft device-code flow) |
| physicsEnabled | boolean | – | – |
| port | integer | – | Server port (default 25565) |
| profilesFolder | string | – | Directory to cache Microsoft auth tokens |
| respawn | boolean | – | Auto-respawn on death (default true) |
| username | string | yes | Account email (microsoft) or in-game name (offline) |
| version | string | – | Force a protocol version, e.g. "1.20.4". Omit to auto-detect. |
| viewDistance | string | – | – |
No output schema declared.
No examples provided.
connect_default ~68
Connect using the pre-configured default account (from `awesome-mineflayer-mcp setup` or MCP_DEFAULT_* env vars). Takes no arguments. The server already auto-connects on startup when configured; use this to reconnect the default after a manual disconnect. Errors if no default is configured.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
consume ~29
Eat or drink the currently held item (food/potion). Hold the consumable in the main hand first.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
container_deposit ~84
Move items from the bot's inventory into the open container. Specify count to deposit a fixed amount, or omit to deposit all matching items.
| Name | Type | Req | Description |
|---|---|---|---|
| count | integer | – | How many to deposit (default all matching) |
| item | – | yes | Item name (e.g. "diamond_pickaxe") or numeric item id |
| metadata | integer | – | Optional item metadata to match |
No output schema declared.
No examples provided.
container_withdraw ~84
Move items from the open container into the bot's inventory. Specify count to withdraw a fixed amount, or omit to withdraw all matching items.
| Name | Type | Req | Description |
|---|---|---|---|
| count | integer | – | How many to withdraw (default all matching) |
| item | – | yes | Item name (e.g. "diamond_pickaxe") or numeric item id |
| metadata | integer | – | Optional item metadata to match |
No output schema declared.
No examples provided.
craft_item ~111
Craft an item using the bot's inventory. Uses a crafting table within 4 blocks (or at craftingTablePos) when the recipe requires one. Crafts `count` times (default 1). Cancellable.
| Name | Type | Req | Description |
|---|---|---|---|
| count | integer | – | How many times to craft (default 1) |
| craftingTablePos | object | – | Position of a crafting table to use; defaults to one within 4 blocks |
| item | – | yes | Item name (e.g. "diamond_pickaxe") or numeric item id |
No output schema declared.
No examples provided.
creative_clear_inventory ~24
Empty the bot's entire inventory in creative mode. Requires creative gamemode.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
creative_fly ~57
Toggle creative-mode flight. `enabled: true` starts flying (lifts the bot off the ground); `false` stops flying and lets it fall.
| Name | Type | Req | Description |
|---|---|---|---|
| enabled | boolean | yes | Start (true) or stop (false) flying |
No output schema declared.
No examples provided.
creative_fly_to ~90
Fly straight to a world coordinate in creative mode. Resolves once the bot reaches the destination. Best for short, obstacle-free hops; use pathfinding (`goto`) for navigation around terrain.
| Name | Type | Req | Description |
|---|---|---|---|
| x | number | yes | X world coordinate (integer for blocks) |
| y | number | yes | Y world coordinate (integer for blocks) |
| z | number | yes | Z world coordinate (integer for blocks) |
No output schema declared.
No examples provided.
creative_set_inventory_slot ~130
Set the contents of an inventory slot in creative mode. Pass `item` (name or id) with optional `count`/`nbt` to place a stack, or omit `item` (or set it null) to empty the slot. Requires the bot to be in creative gamemode.
| Name | Type | Req | Description |
|---|---|---|---|
| count | integer | – | Stack size (default 1) |
| item | – | – | Item name/id to place; null or omitted clears the slot |
| nbt | – | – | Raw prismarine-nbt tag to attach to the item |
| slot | integer | yes | Inventory slot index to overwrite |
No output schema declared.
No examples provided.
delete_waypoint ~28
Delete a saved waypoint by name.
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | Waypoint name to delete |
No output schema declared.
No examples provided.
dig ~161
Dig (break) the block at a world coordinate, equipping the best tool automatically. Set `action:"stop"` to abort the current dig. This is a cancellable long-running action.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | – | "start" (default) begins digging; "stop" aborts the current dig. |
| digFace | string | – | Face to dig from: "auto", "raycast", or a vector. Default "auto". |
| forceLook | – | – | Look at the block before digging; "ignore" to skip looking. Default true. |
| x | number | yes | X world coordinate (integer for blocks) |
| y | number | yes | Y world coordinate (integer for blocks) |
| z | number | yes | Z world coordinate (integer for blocks) |
No output schema declared.
No examples provided.
dig_staircase ~106
Dig a descending staircase from the bot in a horizontal direction: each step moves one block forward and one block down, carving a `height`-tall (default 2) opening so the bot can walk down. `depth` is how many blocks to descend. Cancellable.
| Name | Type | Req | Description |
|---|---|---|---|
| depth | integer | yes | How many blocks down to dig |
| direction | string | yes | Horizontal direction to descend |
| height | integer | – | Headroom per step (default 2) |
No output schema declared.
No examples provided.
dig_tunnel ~108
Dig a straight tunnel from the bot in a horizontal direction. `length` blocks long, `width` wide (centered, default 1), `height` tall (default 2 so the bot fits). Cancellable; reports progress.
| Name | Type | Req | Description |
|---|---|---|---|
| direction | string | yes | Horizontal direction to tunnel |
| height | integer | – | Tunnel height (default 2) |
| length | integer | yes | How many blocks forward |
| width | integer | – | Tunnel width, centered (default 1) |
No output schema declared.
No examples provided.
disconnect_bot ~57
Disconnect the bot from the server. `force` uses a hard socket end instead of a graceful quit.
| Name | Type | Req | Description |
|---|---|---|---|
| force | boolean | – | Hard end() instead of graceful quit() (default false) |
| reason | string | – | Quit reason string |
No output schema declared.
No examples provided.
dismount ~20
Dismount from the vehicle the bot is currently riding.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
elytra_fly ~40
Begin elytra gliding flight. Requires equipped elytra and that the bot is already gliding; otherwise fails as UNSUPPORTED.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
enchant_item ~194
Open the enchantment table at (x,y,z), insert an item (and lapis lazuli if available), and read or apply an enchantment offer. Omit `choice` to just return the three offers (top/middle/bottom slots 0/1/2). Provide `choice` (0-2) to apply that offer and take the enchanted item back. Requires line of sight / reach to the table and lapis lazuli in inventory to actually enchant.
| Name | Type | Req | Description |
|---|---|---|---|
| choice | integer | – | Offer slot to apply (0=top,1=middle,2=bottom). Omit to only read offers. |
| item | – | yes | Item to enchant (name or id); must be in inventory |
| x | number | yes | X world coordinate (integer for blocks) |
| y | number | yes | Y world coordinate (integer for blocks) |
| z | number | yes | Z world coordinate (integer for blocks) |
No output schema declared.
No examples provided.
equip_item ~77
Equip an item from inventory to a destination slot. `hand`/`off-hand` hold it; `head`/`torso`/`legs`/`feet` wear armor.
| Name | Type | Req | Description |
|---|---|---|---|
| destination | string | yes | Equipment slot |
| item | – | yes | Item name (e.g. "diamond_pickaxe") or numeric item id |
No output schema declared.
No examples provided.
equip_tool_for_block ~185
Equip the best tool in inventory for breaking a target block. Specify the block by coordinates (x,y,z) or by blockId (nearest matching block within 64 is used). With getFromChest, retrieves a suitable tool from a configured tool chest if none is held.
| Name | Type | Req | Description |
|---|---|---|---|
| blockId | – | – | Block name/id to find the nearest of (when no coords given) |
| getFromChest | boolean | – | Retrieve a tool from a configured chest if none held (default false) |
| maxTools | integer | – | Max tools to pull from chest at once (default 1) |
| requireHarvest | boolean | – | Only use tools that can actually harvest the block (default false) |
| x | number | – | X coordinate of the target block |
| y | number | – | Y coordinate of the target block |
| z | number | – | Z coordinate of the target block |
No output schema declared.
No examples provided.
fill_region ~146
Place `block` into every empty (air) cell of the axis-aligned box from `from` to `to`. Best-effort: the bot must have the material and be able to reach a supporting face — cells with no adjacent solid to build against are skipped. Stops after `maxBlocks` placements (default 256). Cancellable; reports placed/skipped/failed.
| Name | Type | Req | Description |
|---|---|---|---|
| block | – | yes | Block/item to place, e.g. "cobblestone" |
| from | object | yes | One corner of the box |
| maxBlocks | integer | – | Max blocks to place this call (default 256) |
| to | object | yes | Opposite corner of the box |
No output schema declared.
No examples provided.
find_blocks ~150
Search for nearby blocks matching a block name (or list of names), nearest-first. Returns positions; set returnClosestBlock to also get the full closest block.
| Name | Type | Req | Description |
|---|---|---|---|
| count | integer | – | Max number of blocks to find (default 25) |
| format | string | – | Response detail level; "concise" (default) or "detailed" |
| matching | – | yes | Block name(s)/id(s) to match, e.g. "iron_ore" or ["coal_ore","copper_ore"] |
| maxDistance | integer | – | Search radius in blocks (default 32) |
| point | object | – | Search origin (default bot position) |
| returnClosestBlock | boolean | – | – |
No output schema declared.
No examples provided.
find_nearest_entity ~153
Find the single nearest tracked entity matching the given filter. Returns {found:false} if none match.
| Name | Type | Req | Description |
|---|---|---|---|
| format | string | – | Response detail level; "concise" (default) or "detailed" |
| kind | string | – | Entity kind, e.g. "Hostile mobs" |
| maxDistance | number | – | Only entities within this many blocks |
| mobType | string | – | Mob type/display name, e.g. "Zombie" |
| name | string | – | Entity name, e.g. "zombie", "item" |
| type | string | – | Entity type, e.g. "player", "mob", "object" |
| username | string | – | Player username (players only) |
No output schema declared.
No examples provided.
fish ~49
Cast a fishing line and wait for a bite (requires a fishing rod held in hand). Resolves when a catch is reeled in. Long-running and cancellable (via cancel_task or cancel_fish).
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
flee_from ~84
Continuously move away from a world point until at least `distance` blocks away (dynamic goal).
| Name | Type | Req | Description |
|---|---|---|---|
| distance | number | yes | Minimum distance to keep from the point |
| x | number | yes | X world coordinate (integer for blocks) |
| y | number | yes | Y world coordinate (integer for blocks) |
| z | number | yes | Z world coordinate (integer for blocks) |
No output schema declared.
No examples provided.
follow_entity ~73
Continuously follow a tracked entity (by id), staying within `range` blocks. Dynamic goal; persists until changed/stopped.
| Name | Type | Req | Description |
|---|---|---|---|
| entityId | integer | yes | Entity network id (obtain from list_entities / find_nearest_entity) |
| range | number | – | Distance to keep behind the target (default 2) |
No output schema declared.
No examples provided.
furnace_action ~116
Put items into, or take items out of, the currently-open furnace. `slot` selects input/fuel/output; `op` is put or take. Output cannot be put into. Requires an open furnace (open_furnace first).
| Name | Type | Req | Description |
|---|---|---|---|
| count | integer | – | Count to put (default 1; ignored for take) |
| item | – | – | Item to put (required for op=put) |
| op | string | yes | Put items in or take items out |
| slot | string | yes | Which furnace slot to act on |
No output schema declared.
No examples provided.
furnace_status ~35
Read the currently-open furnace's input/fuel/output items and fuel/smelt progress (0..1). Requires an open furnace.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
What is the Awesome Mineflayer MCP server?
Awesome Mineflayer MCP is listed in the public MCP registry as io.github.G0Osey99/awesome-mineflayer-mcp. Control a Mineflayer Minecraft bot with 120+ MCP tools: move, mine, craft, fight, build, and see. This page covers its npm package (awesome-mineflayer-mcp).
Is the Awesome Mineflayer MCP server safe to use?
Awesome Mineflayer MCP scores 91 out of 100 on VerifyMCP. We recorded 1 known advisory against it as of 20 September 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 Awesome Mineflayer MCP server expose?
Awesome Mineflayer MCP exposes 123 tools: connect_bot, disconnect_bot, reconnect_bot, respawn, get_connection_status, and 118 more. Their descriptions and schemas cost roughly 11,237 tokens of context every time the server is loaded.
Is the Awesome Mineflayer MCP server still maintained?
Awesome Mineflayer MCP is still listed as active in the MCP registry. We last reached this channel on 20 September 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 Awesome Mineflayer MCP server under?
Awesome Mineflayer MCP declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.