Minecraft MCP Server
Enables AI models like Claude to control a Minecraft character through natural language commands, supporting movement, inventory, block interactions, and more.
README
Minecraft MCP Server
<a href="https://github.com/yuniko-software/minecraft-mcp-server/actions"> <img alt="CI" src="https://github.com/yuniko-software/minecraft-mcp-server/actions/workflows/build.yml/badge.svg"> </a> <a href="https://github.com/yuniko-software"> <img alt="Contribution Welcome" src="https://img.shields.io/badge/Contribution-Welcome-blue"> </a> <a href="https://github.com/yuniko-software/minecraft-mcp-server/releases/latest"> <img alt="Latest Release" src="https://img.shields.io/github/v/release/yuniko-software/minecraft-mcp-server?label=Latest%20Release"> </a>
<img width="2063" height="757" alt="image" src="https://github.com/user-attachments/assets/3f0f0438-f079-4226-90bd-87b9e1311d19" />
[!IMPORTANT] Currently supports Minecraft version 1.21.11. Newer versions may not work with this MCP server, but we will add support as soon as possible.
https://github.com/user-attachments/assets/6f17f329-3991-4bc7-badd-7cde9aacb92f
A Minecraft bot powered by large language models and Mineflayer API. This bot uses the Model Context Protocol (MCP) to enable Claude and other supported models to control a Minecraft character.
<a href="https://glama.ai/mcp/servers/@yuniko-software/minecraft-mcp-server"> <img width="380" height="200" src="https://glama.ai/mcp/servers/@yuniko-software/minecraft-mcp-server/badge" alt="mcp-minecraft MCP server" /> </a>
Monorepo layout
This repository is a pnpm workspace. The build engine is split into focused packages:
| Package | Name | Role |
|---|---|---|
mcp/ |
@mcbuild/mcp |
MCP server — the LLM-facing tool surface and orchestrator (evolved from the original bot server) |
engine/ |
@mcbuild/engine |
Build engine — deterministic, rule-driven parametric geometry pipeline |
renderer/ |
@mcbuild/renderer |
Camera / renderer — turns extracted block data into multi-angle PNGs |
protocol/ |
@mcbuild/protocol |
Shared contract — JSON-RPC types + zod schemas shared by the MCP server and the plugin |
plugin/ |
(Java) | Paper server plugin — commits blocks directly into the world (not a Node workspace) |
The overarching architecture, phased roadmap, and rule system are documented in BUILD_ENGINE_PLAN.md.
Common workspace scripts (run from the repo root): pnpm build, pnpm test, pnpm typecheck, pnpm lint, and pnpm dev:mcp.
Legacy (bot backend)
The sections below describe the original Mineflayer player-bot backend. It remains the default backend (
--backend=bot) and works exactly as before; it is retained as a fallback through milestone M5 (see BUILD_ENGINE_PLAN.md §9). The bot server now lives in themcp/package.
Prerequisites
- Git
- Node.js (>= 20.10.0)
- A running Minecraft game (the setup below was tested with Minecraft 1.21.8 Java Edition included in Microsoft Game Pass)
- An MCP-compatible client. Claude Desktop will be used as an example, but other MCP clients are also supported
Getting started
This bot is designed to be used with Claude Desktop through the Model Context Protocol (MCP).
Run Minecraft
Create a singleplayer world and open it to LAN (ESC -> Open to LAN). Bot will try to connect using port 25565 and hostname localhost. These parameters could be configured in claude_desktop_config.json on a next step.
MCP Configuration
Make sure that Claude Desktop is installed. Open File -> Settings -> Developer -> Edit Config. It should open installation directory. Find file with a name claude_desktop_config.json and insert the following code:
{
"mcpServers": {
"minecraft": {
"command": "npx",
"args": [
"-y",
"github:yuniko-software/minecraft-mcp-server",
"--host",
"localhost",
"--port",
"25565",
"--username",
"ClaudeBot"
]
}
}
}
Double-check that right --port and --host parameters were used. Make sure to completely reboot the Claude Desktop application (should be closed in OS tray).
Running
Make sure Minecraft game is running and the world is opened to LAN. Then start Claude Desktop application and the bot should join the game.
It could take some time for Claude Desktop to boot the MCP server. The marker that the server has booted successfully:
<img width="885" height="670" alt="image" src="https://github.com/user-attachments/assets/ccbb42f8-6544-462c-8ac1-8af13ddfcddd" />
You can give bot any commands through any active Claude Desktop chat. You can also upload images of buildings and ask bot to build them 😁
Don't forget to mention that bot should do something in Minecraft in your prompt. Because saying this is a trigger to run MCP server. It will ask for your permissions.
Using Claude Sonnet could give you some interesting results. The bot-agent would be really smart 🫡
Example usage: shared Claude chat
Available Commands
Once connected to a Minecraft server, Claude can use these commands:
Movement
get-position- Get the current position of the botmove-to-position- Move to specific coordinateslook-at- Make the bot look at specific coordinatesjump- Make the bot jumpmove-in-direction- Move in a specific direction for a duration
Flight
fly-to- Make the bot fly directly to specific coordinates
Inventory
list-inventory- List all items in the bot's inventoryfind-item- Find a specific item in inventoryequip-item- Equip a specific item
Block Interaction
place-block- Place a block at specified coordinatesdig-block- Dig a block at specified coordinatesget-block-info- Get information about a blockfind-blocks- Find one or more nearby blocks of a specific type
Furnace
smelt-item- Smelt items using a furnace-like block
Entity Interaction
find-entity- Find the nearest entity of a specific type
Communication
send-chat- Send a chat message in-gameread-chat- Get recent chat messages from players
Game State
detect-gamemode- Detect the gamemode on game
Contributing
Feel free to submit pull requests or open issues for improvements. All refactoring commits, functional and test contributions, issues and discussion are greatly appreciated!
To get started with contributing, please see CONTRIBUTING.md.
⭐ If you find this project useful, please consider giving it a star on GitHub! ⭐
Your support helps make this project more visible to other people who might benefit from it.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.