
Minecraft Client
STDIOMinecraft client for AI agents to control bots with 30+ verified skills
Minecraft client for AI agents to control bots with 30+ verified skills
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.
npx --y -- @fundamentallabs/minecraft-mcp
npm install -g @fundamentallabs/minecraft-mcp
git clone https://github.com/FundamentalLabs/minecraft-mcp.git cd minecraft-mcp/minecraft-client/mcp-server npm install npm run build
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 25565
Options: -p, --port <port> Minecraft server port (default: 25565) -h, --host <host> Minecraft server host (default: localhost) --help Display help
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.
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 25565
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 trueWhen 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 });
The MCP server:
The MCP server needs to be run from the cloned repository with built skills. Make sure you:
npm install
in the minecraft-client directorynpm run build
in the minecraft-client directoryContributions are welcome! Please feel free to submit a Pull Request.
MIT - see LICENSE file for details
For issues and feature requests, please use the GitHub issue tracker.
To test with the Anthropic MPC inspector
'npx @modelcontextprotocol/inspector node ./dist/mcp-server.js'