Minecraft MCP Server
Provides source code access through GitHub repository for direct installation.
Enables dynamic building of structures in Minecraft using JavaScript code within the buildSomething skill.
Support for macOS configuration paths for Claude Desktop integration.
Requires Node.js runtime environment for operation.
Available through npm package registry for installation.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Minecraft MCP Server craft a diamond sword and equip it"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Fundamental Labs/Minecraft Client
This library is the Client library for a Minecraft Game Skills and MCP Integration.
Fairies MCP Client (https://fairies.ai/) also supports direct connection with a single click.
Features
Full Minecraft Control: Connect AI agents to Minecraft servers and control bots
30 Verified Skills: Pre-built, tested skills for common Minecraft tasks
Flexible Connection: Connect to any Minecraft server with optional per-bot configuration
Multi-Bot Support: Manage multiple bots simultaneously
MCP Standard: Compatible with any MCP client (Claude Desktop, etc.)
Related MCP server: Maicraft
Installation
Direct call via npx (Recommended)
npx --y -- @fundamentallabs/minecraft-mcpVia npm (Recommended)
npm install -g @fundamentallabs/minecraft-mcpFrom Source
git clone https://github.com/FundamentalLabs/minecraft-mcp.git
cd minecraft-mcp/minecraft-client/mcp-server
npm install
npm run buildUsage
Starting the Server
You can start the MCP server with optional default connection settings:
# Start with no defaults (connection specified per bot)
minecraft-mcp
# Start with default connection settings
minecraft-mcp -h play.example.com -p 25565Command Line Options
Options:
-p, --port <port> Minecraft server port (default: 25565)
-h, --host <host> Minecraft server host (default: localhost)
--help Display helpIntegration with Claude Desktop or JSON configurations Locally
Add to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
For remote installation (recommended)
{
"mcpServers": {
"minecraft": {
"command": "npx",
"args": ["-y", "-- @fundamentallabs/minecraft-mcp"]
}
}
}If running locally from source:
{
"mcpServers": {
"minecraft": {
"command": "node",
"args": ["/path/to/minecraft-mcp/minecraft-client/mcp-server/dist/mcp-server.js"]
}
}
}Replace /path/to/minecraft-mcp with the actual path where you cloned the repository.
Integration with Other MCP Clients
The server uses stdio transport and can be integrated with any MCP client:
# Using the MCP inspector for testing
cd minecraft-client/mcp-server
npx @modelcontextprotocol/inspector node dist/mcp-server.js -- -p 25565Available Skills
Bot Management
joinGame - Spawn a new bot into the Minecraft game
username(required): Bot's usernamehost(optional): Server host (defaults to 'localhost' or command line option)port(optional): Server port (defaults to 25565 or command line option)
leaveGame - Disconnect bot(s) from the game
username(optional): Specific bot to disconnectdisconnectAll(optional): Disconnect all bots if true
Movement & Navigation
goToSomeone - Navigate to another player
goToKnownLocation - Navigate to specific coordinates
runAway - Run away from threats
swimToLand - Swim to nearest land when in water
Combat & Hunting
attackSomeone - Attack players, mobs, or animals
hunt - Hunt animals or mobs
Resource Gathering
mineResource - Mine specific blocks or resources
harvestMatureCrops - Harvest mature crops from farmland
pickupItem - Pick up items from the ground
Crafting & Smelting
craftItems - Craft items using a crafting table
cookItem - Cook items in a furnace
smeltItem - Smelt items in a furnace
retrieveItemsFromNearbyFurnace - Get smelted items from furnace
Inventory Management
openInventory - Open the bot's inventory
equipItem - Equip armor, tools, or weapons
dropItem - Drop items from inventory
giveItemToSomeone - Give items to another player
Building & Farming
placeItemNearYou - Place blocks near the bot
prepareLandForFarming - Prepare land for farming
useItemOnBlockOrEntity - Use items on blocks or entities
Survival
eatFood - Eat food to restore hunger
rest - Rest to regain health
sleepInNearbyBed - Find and sleep in a bed
Storage
openNearbyChest - Open a nearby chest
Fun
dance - Make the bot dance
Vision
lookAround - Look around and observe the environment
Communication
readChat - Read recent chat messages from the server
sendChat - Send chat messages or commands to the server
Building
buildSomething - Build structures using Minecraft commands (requires cheats/operator permissions). Supports both static command arrays and dynamic JavaScript code.
buildPixelArt - Build pixel art from an image in Minecraft (requires cheats/operator permissions). Converts an image to pixel art using colored blocks. Maximum size is 256x256 blocks.
API Example
When integrated with an MCP client, you can control the bot like this:
// First, spawn a bot
await client.callTool('joinGame', { username: 'MyBot' });
// Make the bot mine some wood
await client.callTool('mineResource', { name: 'oak_log', count: 10 });
// Craft wooden planks
await client.callTool('craftItems', { item: 'oak_planks', count: 40 });
// Navigate to coordinates
await client.callTool('goToKnownLocation', { x: 100, y: 64, z: 200 });
// Build a structure using commands (requires cheats) - Script mode
await client.callTool('buildSomething', {
buildScript: [
{ command: "fill", x1: 0, y1: 64, z1: 0, x2: 10, y2: 64, z2: 10, block: "stone" },
{ command: "fill", x1: 1, y1: 65, z1: 1, x2: 9, y2: 68, z2: 9, block: "oak_planks" },
{ command: "setblock", x: 5, y: 65, z: 1, block: "oak_door" }
]
});
// Build dynamically with JavaScript (requires cheats) - Code mode
await client.callTool('buildSomething', {
code: `
// Build a pyramid centered on the bot
const size = 10;
for (let y = 0; y < size; y++) {
const level = size - y;
fill(pos.x - level, pos.y + y, pos.z - level,
pos.x + level, pos.y + y, pos.z + level, 'sandstone');
await wait(5); // Small delay between levels
}
log('Pyramid complete!');
`
});
// Build pixel art from an image (requires cheats)
await client.callTool('buildPixelArt', {
imagePath: 'https://example.com/logo.png',
width: 64,
height: 64,
x: 0,
y: 80,
z: 100,
facing: 'north'
});
// Read recent chat messages
await client.callTool('readChat', {
count: 30,
timeLimit: 300, // Last 5 minutes
filterType: 'chat' // Only player messages
});
// Send a chat message
await client.callTool('sendChat', {
message: 'Hello everyone! I am a bot.'
});
// Send a command
await client.callTool('sendChat', {
message: '/time set day'
});
// Send a whisper
await client.callTool('sendChat', {
message: '/msg Steve I can help you build!',
delay: 1000 // Wait 1 second before sending
});Architecture
The MCP server:
Uses stdio transport for communication with AI clients
Dynamically loads skills from the verified skills directory
Manages multiple bot instances (currently uses the first bot for all operations)
Provides a unified interface for all bot actions
Requirements
Node.js >= 18.0.0
A Minecraft server (Java Edition) to connect to
An MCP-compatible client (like Claude Desktop)
Troubleshooting
"Skill implementation not found" Error
The MCP server needs to be run from the cloned repository with built skills. Make sure you:
Cloned the full repository
Ran
npm installin the minecraft-client directoryRan
npm run buildin the minecraft-client directoryAre running the MCP server from the correct directory
Bot won't connect
Ensure your Minecraft server is running and accessible
Check that the port and host are correct
Verify the server allows the Minecraft version the bot uses
Skills not working
Make sure the bot has spawned successfully before using skills
Some skills require specific items or conditions
Check the bot's console output for error messages
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
MIT - see LICENSE file for details
Support
For issues and feature requests, please use the GitHub issue tracker.
Testing
To test with the Anthropic MPC inspector
'npx @modelcontextprotocol/inspector node ./dist/mcp-server.js'
Available Tools
32 toolsattackSomeoneC
Attack, kill, defend against, or initiate combat with someone
Inputs: targetType (required), count, duration, targetName.
buildPixelArtA
Build pixel art from an image in Minecraft (requires cheats/operator permissions). Converts an image to pixel art using colored blocks. Maximum size is 256x256 blocks.
Inputs: height (required), imagePath (required), width (required), x (required), +3 more.
buildSomethingA
Build structures using Minecraft commands (requires cheats/operator permissions). Supports two modes: 1) buildScript - array of command objects like [{"command": "fill", "x1": 0, "y1": 64, "z1": 0, "x2": 10, "y2": 70, "z2": 10, "block": "stone"}], 2) code - JavaScript string for dynamic building like "for(let i = 0; i < 10; i++) { setBlock(pos.x + i, pos.y, pos.z, 'stone'); }"
Inputs: buildScript, code.
cookItemC
Cook an item in a furnace
Inputs: count (required), fuelName (required), itemName (required).
craftItemsC
Craft items using a crafting table or inventory
Inputs: count (required), item (required).
danceC
Make the bot dance by moving and jumping
Inputs: name, time.
dropItemC
Drop items from inventory
Inputs: name (required), count, userName.
eatFoodB
Eat food from inventory to restore hunger
Inputs: no named parameters.
equipItemC
Equip an item (armor, tool, or weapon)
Inputs: name (required).
giveItemToSomeoneC
Give items to another player
Inputs: itemCount (required), itemName (required), userName (required).
goToKnownLocationC
Navigate to specific coordinates
Inputs: x (required), y (required), z (required), name.
goToSomeoneC
Navigate to another player
Inputs: userName (required), distance, keepFollowing.
harvestMatureCropsC
Harvest mature crops from nearby farmland
Inputs: number, radius.
huntC
Hunt animals or mobs
Inputs: targetType (required), amount, duration, targetName.
joinGameC
Spawn a bot into the Minecraft game
Inputs: username (required), host, port.
leaveGameC
Disconnect a bot from the game
Inputs: disconnectAll, username.
lookAroundB
Look around and observe the environment, providing a detailed text-based view of surroundings
Inputs: no named parameters.
mineResourceC
Mine specific blocks or resources
Inputs: count (required), name (required).
openInventoryC
Open the bot's inventory
Inputs: no named parameters.
openNearbyChestC
Open a nearby chest
Inputs: no named parameters.
pickupItemC
Pick up items from the ground
Inputs: itemName (required).
placeItemNearYouC
Place a block or item near the bot
Inputs: itemName (required), userName.
prepareLandForFarmingB
Prepare land for farming by tilling soil
Inputs: no named parameters.
readChatC
Read recent chat messages from the server. Returns player messages, system messages, whispers, action bar messages, and titles.
Inputs: count, filterType, filterUsername, timeLimit.
restC
Rest to regain health
Inputs: restTime.
retrieveItemsFromNearbyFurnaceB
Retrieve smelted items from a nearby furnace
Inputs: no named parameters.
runAwayC
Run away from a threat
Inputs: targetType (required), runDistance, targetName.
sendChatB
Send chat messages or commands to the server. Can send regular messages, commands (starting with /), or whispers.
Inputs: message (required), delay.
sleepInNearbyBedC
Find and sleep in a nearby bed
Inputs: maxDistance.
smeltItemC
Smelt items in a furnace
Inputs: count (required), fuelName (required), itemName (required).
swimToLandB
Swim to the nearest land when in water
Inputs: no named parameters.
useItemOnBlockOrEntityC
Use an item on a block or entity
Inputs: item (required), target (required), count.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 32 tools
Most tools have distinct purposes, but some overlap exists. For example, 'cookItem' and 'smeltItem' both involve furnace operations, which could cause confusion, and 'mineResource' and 'harvestMatureCrops' both involve gathering but target different resources. However, descriptions help clarify these distinctions, and overall, the set is well-differentiated for a Minecraft domain.
The naming is mixed with no consistent pattern. Some tools use verb_noun (e.g., 'buildPixelArt', 'craftItems'), others use verbOnly (e.g., 'dance', 'rest'), and a few use verb_preposition_noun (e.g., 'useItemOnBlockOrEntity'). While readable, the lack of a uniform convention reduces predictability and coherence across the tool set.
With 32 tools, the count is borderline high for a Minecraft server, as it may feel heavy and overwhelming. However, given the broad scope of Minecraft activities (building, combat, farming, etc.), many tools are justified, but some consolidation or better scoping could improve manageability without being extreme.
The tool set provides comprehensive coverage of Minecraft gameplay, including core actions like building, mining, crafting, combat, navigation, and social interactions. It supports full lifecycles (e.g., farming from preparation to harvest, furnace operations from smelting to retrieval) and leaves no obvious gaps, enabling agents to handle a wide range of in-game scenarios effectively.
Related MCP Connectors
Make games with AI: one MCP server that connects your agent to Unity, Unreal and Godot editors.
One connector for 15,000+ MCP servers plus your team's private MCPs, from any AI client.
Minecraft builds and skins made by your AI agent, live in your browser tab. Export .schem.
A registry of AI agent tools — MCP servers, APIs, CLIs, SDKs — kept current by automated ingestion.
Related MCP Servers
- AlicenseCqualityDmaintenanceAllows AI assistants to connect to and control Minecraft players on remote servers, enabling navigation, building, mining, inventory management, entity interaction, and chat communication through natural language commands.2719 npm13MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to play and interact with Minecraft servers through mineflayer, providing automated actions like mining, movement, crafting, and real-time game event monitoring.17 npm8MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to control Minecraft bots through over 30 verified skills including navigation, resource gathering, and advanced building. It allows for multi-bot management and seamless integration with MCP clients to automate complex in-game tasks.76MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to connect to Minecraft servers as a bot, allowing cooperative building, movement, combat, and chat in the same world.8 npm1Apache 2.0