Skip to main content
Glama

🎮 Minecraft MCP Server

npm version npm downloads License: MIT Node.js Version

An MCP (Model Context Protocol) server that allows AI agents to play Minecraft! Built with Mineflayer and the official MCP TypeScript SDK.

🚀 Features

Connection Management

  • Connect/disconnect to any Minecraft server

  • Support for offline and Microsoft authentication

  • Automatic version detection

Movement & Navigation

  • Pathfinding: Navigate to any coordinates using A* pathfinding

  • Follow players: Dynamically follow other players

  • Look at: Point the bot's view at specific coordinates

  • Jump: Make the bot jump

Block Interaction

  • Dig blocks: Break blocks at specific coordinates

  • Place blocks: Place blocks from inventory

  • Find blocks: Search for specific block types nearby

  • Activate blocks: Interact with chests, buttons, doors, etc.

  • Collect blocks: Navigate to and mine specific blocks

Inventory Management

  • View inventory: See all items in inventory

  • Equip items: Equip items to hand, off-hand, or armor slots

  • Drop items: Discard items from inventory

Crafting

  • Craft items: Automatically craft items with available recipes

  • Get recipes: Query available recipes for any item

Combat

  • Attack entities: Attack mobs or players

  • Stop attacking: Cease combat

  • Get nearby entities: List all entities within range

Chat & Communication

  • Send chat: Send public chat messages

  • Whisper: Send private messages to players

  • Get players: List all players on the server

Survival Features

  • Auto-eat: Automatic food consumption when hungry

  • Eat: Manually eat specific food items

  • Sleep: Find and sleep in nearby beds

  • Get status: Full status report (health, hunger, position, etc.)

Related MCP server: mcp-taskflow

📦 Installation

Run directly with npx - no installation required:

npx -y minecraft-ai-mcp

Global Installation

npm install -g minecraft-ai-mcp
minecraft-ai-mcp

From Source

# Clone the repository
git clone https://github.com/harjjotsinghh/minecraft-mcp.git
cd minecraft-mcp

# Install dependencies
npm install

# Build the project
npm run build

# Run the server
npm start

🔧 Configuration

Claude Desktop Configuration

Add to your Claude Desktop config file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "minecraft": {
      "command": "npx",
      "args": ["-y", "minecraft-ai-mcp"]
    }
  }
}

Cursor Configuration

Add to your .cursor/mcp.json file:

{
  "mcpServers": {
    "minecraft": {
      "command": "npx",
      "args": ["-y", "minecraft-ai-mcp"]
    }
  }
}

Alternative: Using Global Installation

If you installed globally, you can use the command directly:

{
  "mcpServers": {
    "minecraft": {
      "command": "minecraft-ai-mcp"
    }
  }
}

🎯 Available Tools

Tool

Description

connect

Connect to a Minecraft server

disconnect

Disconnect from the server

get_status

Get bot's current status

goto

Navigate to coordinates

follow_player

Follow a specific player

stop_movement

Stop all movement

jump

Make the bot jump

look_at

Look at coordinates

dig_block

Break a block

place_block

Place a block

get_block_info

Get info about a block

find_blocks

Find nearby blocks

get_inventory

View inventory contents

equip_item

Equip an item

drop_item

Drop items

craft_item

Craft an item

get_recipes

Get crafting recipes

attack_entity

Attack an entity

stop_attack

Stop attacking

get_nearby_entities

List nearby entities

send_chat

Send chat message

whisper

Private message a player

get_players

List online players

use_item

Use held item

eat

Eat food

sleep

Sleep in a bed

wake

Wake up

collect_block

Collect specific blocks

activate_block

Interact with a block

💡 Example Usage

Connecting to a Server

Connect to my local Minecraft server at localhost:25565 with username "AIBot"

Mining Diamonds

Find diamond ore near me and navigate to collect it

Building

Build a 3x3 cobblestone platform at my current position

Combat

Find and attack any zombies within 20 blocks

Crafting

Craft a wooden pickaxe using the wood in my inventory

🏗️ Development

# Run in development mode with auto-reload
npm run dev

# Build for production
npm run build

# Start the built server
npm start

🔐 Authentication

Offline Mode (Default)

For servers with online-mode=false:

Connect with auth: "offline"

Microsoft Account

For online servers (requires Microsoft account):

Connect with auth: "microsoft"

Note: Microsoft authentication will open a browser window for login.

⚠️ Known Limitations

  1. No GUI: The bot operates headlessly - no game window is displayed

  2. Server Compatibility: Works best with vanilla Minecraft servers

  3. Version Support: Supports Minecraft 1.8 through 1.21+

  4. Single Bot: Currently supports one bot connection at a time

🤝 Contributing

Contributions are welcome! Please feel free to submit issues and pull requests.

📄 License

MIT License - feel free to use this in your own projects!

🙏 Credits

Available Tools

29 tools
activate_blockA

Activate/interact with a block (like opening a chest, pressing a button)

Inputs: x (required), y (required), z (required).

attack_entityC

Attack a nearby entity

Inputs: entityType (required).

collect_blockB

Navigate to and collect a specific block type

Inputs: blockName (required), count.

connectB

Connect the bot to a Minecraft server

Inputs: host (required), username (required), auth, port, +1 more.

craft_itemB

Craft an item using available materials

Inputs: itemName (required), count.

dig_blockA

Dig/break a block at specific coordinates

Inputs: x (required), y (required), z (required).

disconnectA

Disconnect the bot from the current server

Inputs: no named parameters.

drop_itemB

Drop items from inventory

Inputs: itemName (required), count.

eatB

Eat a specific food item

Inputs: foodName.

equip_itemB

Equip an item from inventory

Inputs: itemName (required), destination.

find_blocksA

Find blocks of a specific type near the bot

Inputs: blockName (required), count, maxDistance.

follow_playerC

Follow a specific player

Inputs: playerName (required), distance.

get_block_infoA

Get information about a block at specific coordinates

Inputs: x (required), y (required), z (required).

get_inventoryA

Get the current inventory contents

Inputs: no named parameters.

get_nearby_entitiesC

Get a list of nearby entities

Inputs: maxDistance.

get_playersA

Get a list of all players on the server

Inputs: no named parameters.

get_recipesA

Get available crafting recipes for an item

Inputs: itemName (required).

get_statusA

Get the current status of the bot including health, hunger, position, etc.

Inputs: no named parameters.

gotoA

Navigate the bot to specific coordinates using pathfinding

Inputs: x (required), y (required), z (required).

jumpB

Make the bot jump

Inputs: no named parameters.

look_atB

Make the bot look at specific coordinates

Inputs: x (required), y (required), z (required).

place_blockB

Place a block from inventory at specific coordinates

Inputs: x (required), y (required), z (required), blockName (required).

send_chatC

Send a chat message in the game

Inputs: message (required).

sleepA

Sleep in a nearby bed

Inputs: no named parameters.

stop_attackA

Stop attacking the current target

Inputs: no named parameters.

stop_movementA

Stop all movement and pathfinding

Inputs: no named parameters.

use_itemA

Use/activate the currently held item (right-click action)

Inputs: no named parameters.

wakeB

Wake up from sleeping

Inputs: no named parameters.

whisperA

Send a private message to a player

Inputs: message (required), playerName (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.3/5.0

    Scored across 29 tools

    Disambiguation4/5

    Most tools have distinct purposes with clear descriptions, though some overlap exists between actions like 'collect_block' (navigate+dig) and coordinates, and 'use_item' vs 'activate_block'. Overall, an agent can usually tell tools apart.

    Naming Consistency4/5

    Tool names mostly follow a snake_case verb_noun pattern (e.g., get_inventory, place_block), but some are single-word verbs (connect, jump, eat, sleep, wake), creating a slight inconsistency. The pattern is still predictable and readable.

    Tool Count2/5

    At 29 tools, the server exceeds the 25+ threshold and feels heavy for an agent to parse. While each tool serves a specific Minecraft action, the large number introduces unnecessary selection complexity.

    Completeness4/5

    The tool set covers core Minecraft operations: movement, combat, inventory, crafting, chat, and block interaction. Missing features include targeted combat or advanced inventory management, but these are minor gaps for a general-purpose bot.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers