本库是用于Minecraft游戏技能和MCP集成的客户端库。
精灵MCP客户端(https://fairies.ai/)也支持一键直接连接。
本客户端库可助力你轻松实现与Minecraft服务器的交互,完成游戏内的各类操作。下面为你详细介绍使用前的安装步骤及使用方法。
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
你可以使用可选的默认连接设置启动MCP服务器:
# 不使用默认设置启动(每个机器人指定连接信息)
minecraft-mcp
# 使用默认连接设置启动
minecraft-mcp -h play.example.com -p 25565
选项:
-p, --port Minecraft服务器端口(默认值:25565)
-h, --host Minecraft服务器主机(默认值:localhost)
--help 显示帮助信息
添加到你的Claude Desktop配置文件(macOS上为~/Library/Application Support/Claude/claude_desktop_config.json):
对于远程安装(推荐)
{
"mcpServers": {
"minecraft": {
"command": "npx",
"args": ["-y", "-- @fundamentallabs/minecraft-mcp"]
}
}
}
如果从源代码本地运行:
{
"mcpServers": {
"minecraft": {
"command": "node",
"args": ["/path/to/minecraft-mcp/minecraft-client/mcp-server/dist/mcp-server.js"]
}
}
}
将/path/to/minecraft-mcp替换为你克隆仓库的实际路径。
服务器使用标准输入输出传输方式,可与任何MCP客户端集成:
# 使用MCP检查器进行测试
cd minecraft-client/mcp-server
npx @modelcontextprotocol/inspector node dist/mcp-server.js -- -p 25565
joinGame - 在Minecraft游戏中生成一个新的机器人
username(必需):机器人的用户名host(可选):服务器主机(默认为'localhost'或命令行选项)port(可选):服务器端口(默认为25565或命令行选项)leaveGame - 使机器人从游戏中断开连接
username(可选):要断开连接的特定机器人disconnectAll(可选):如果为true,则断开所有机器人的连接与MCP客户端集成后,你可以像这样控制机器人:
// 首先,生成一个机器人
await client.callTool('joinGame', { username: 'MyBot' });
// 让机器人开采一些木材
await client.callTool('mineResource', { name: 'oak_log', count: 10 });
// 制作木板
await client.callTool('craftItems', { item: 'oak_planks', count: 40 });
// 导航到指定坐标
await client.callTool('goToKnownLocation', { x: 100, y: 64, z: 200 });
// 使用命令建造结构(需要作弊权限) - 脚本模式
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" }
]
});
// 使用JavaScript动态建造(需要作弊权限) - 代码模式
await client.callTool('buildSomething', {
code: `
// 以机器人为中心建造一个金字塔
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); // 每层之间有小的延迟
}
log('金字塔建造完成!');
`
});
// 根据图像建造像素艺术(需要作弊权限)
await client.callTool('buildPixelArt', {
imagePath: 'https://example.com/logo.png',
width: 64,
height: 64,
x: 0,
y: 80,
z: 100,
facing: 'north'
});
// 读取最近的聊天消息
await client.callTool('readChat', {
count: 30,
timeLimit: 300, // 最近5分钟
filterType: 'chat' // 仅玩家消息
});
// 发送一条聊天消息
await client.callTool('sendChat', {
message: '大家好!我是一个机器人。'
});
// 发送一条命令
await client.callTool('sendChat', {
message: '/time set day'
});
// 发送一条私聊消息
await client.callTool('sendChat', {
message: '/msg Steve 我可以帮你建造!',
delay: 1000 // 发送前等待1秒
});
MCP服务器:
MCP服务器需要从克隆的仓库中运行,并确保技能已构建。请确保你:
minecraft-client目录中运行了npm install。minecraft-client目录中运行了npm run build。欢迎贡献代码!请随时提交拉取请求。
本项目采用MIT许可证,详情请参阅LICENSE文件。
如有问题或功能请求,请使用GitHub问题跟踪器。
要使用Anthropic MPC检查器进行测试,请运行:
npx @modelcontextprotocol/inspector node ./dist/mcp-server.js