haksnbot工具
MCP(模型上下文协议)服务器,使克劳德能够玩《我的世界》。建立在 Mineflayer,此工具允许Claude Code(或任何兼容MCP的AI)通过40多个动作控制Minecraft机器人。
特性
- 完全机器人控制 -移动、战斗、建造、制作、库存管理
- Microsoft身份验证 -适用于在线模式服务器
- 路径寻找 -使用mineflayer探路者进行自动导航
- 自动重新连接 -以指数回退方式处理断开连接
- 视觉 -机器人看到的3D渲染截图
- 村民交易 -浏览和执行交易
- 店铺整合 -适用于玩家经济的QuickShop Hikari插件
安装
git clone https://github.com/haksndot/haksnbot-tools.git
cd haksnbot-tools
npm install
使用Claude代码
添加到您的Claude Code MCP设置中(~/.claude/settings.json):
{
"mcpServers": {
"minecraft": {
"command": "node",
"args": ["/path/to/haksnbot-tools/src/index.js"]
}
}
}
然后在克劳德代码中:
> Connect to my Minecraft server at mc.example.com as "ClaudeBot"
> What's around me?
> Find some oak trees and chop wood
> Craft a crafting table and wooden pickaxe
可用工具(40+)
连接
| 工具 | 说明 |
|---|
connect | 连接到Minecraft服务器(支持Microsoft身份验证) |
disconnect | 断开与服务器的连接(停止自动重新连接) |
get_connection_status | 检查状态:断开、连接、连接、重新连接 |
状态与观察
| 工具 | 说明 |
|---|
get_status | 位置、健康、饥饿、游戏模式、维度 |
get_block_at | 坐标处的块类型 |
scan_area | 按半径扫描块,按类型返回计数 |
find_blocks | 查找最近的类型块(例如diamond_ore) |
get_nearby_entities | 列出范围内的怪物、动物和物品 |
get_nearby_players | 列出范围内的玩家 |
运动
| 工具 | 说明 |
|---|
move_to | 精确坐标的路径查找 |
move_near | 在坐标范围内找到路径 |
follow_player | 按用户名关注玩家 |
look_at | 转向面部坐标 |
stop | 停止当前移动 |
沟通
| 工具 | 说明 |
|---|
chat | 发送聊天消息(支持/命令) |
whisper | 给玩家的私信 |
get_chat_history | 最近的聊天、死亡、公告 |
库存
| 工具 | 说明 |
|---|
get_inventory | 列出库存项目 |
get_held_item | 当前持有的物品 |
equip_item | 装备到手或盔甲槽 |
容器
| 工具 | 说明 |
|---|
open_container | 打开箱子、炉子等。 |
get_container_contents | 列出容器项目 |
transfer_items | 将物品移入/移出容器 |
close_container | 关闭容器 |
制作
| 工具 | 说明 |
|---|
get_craftable_items | 可使用当前库存加工的物品 |
get_recipe | 获取物品的食谱 |
craft_item | 制作物品(自动使用制作台) |
战斗与互动
| 工具 | 说明 |
|---|
attack_entity | 攻击类型最近的实体 |
use_item | 使用保留项(右键单击) |
interact_entity | 饲养动物、奶牛、剪毛羊 |
睡眠
建筑
| 工具 | 说明 |
|---|
place_block | 将块放置在坐标处 |
break_block | 断块(汽车装备最好的工具) |
place_sign | 放置并写在标志上 |
read_sign | 阅读标志文本 |
edit_sign | 编辑现有标志 |
村民交易
| 工具 | 说明 |
|---|
find_villagers | 寻找有职业的村民 |
open_villager_trades | 查看可用交易 |
trade_with_villager | 执行交易 |
close_villager_trades | 关闭交易窗口 |
支架和车辆
| 工具 | 说明 |
|---|
mount_entity | 马、猪、船、矿车 |
dismount | 从车辆上拆卸 |
经济(QuickShop Hikari)
| 工具 | 说明 |
|---|
list_all_shops | 列出所有玩家商店 |
search_shops | 按商品搜索商店 |
create_chest_shop | 创建一个胸部商店 |
视觉
| 工具 | 说明 |
|---|
take_screenshot | 3D渲染屏幕截图 |
get_player_skin | 将玩家皮肤下载为PNG格式 |
认证
离线模式服务器
connect to localhost as "MyBot"
在线模式服务器(Microsoft身份验证)
connect to mc.example.com as "myemail@outlook.com" with microsoft auth
首次连接时,请在microsoft.com/link上输入设备代码。令牌被缓存以备将来使用。
# Manage auth tokens
node auth.js status myemail@outlook.com
node auth.js login myemail@outlook.com
node auth.js logout myemail@outlook.com
自动重新连接
指数回退自动重新连接:
- 初始延迟:2秒
- 最大延迟:~5分钟
- 最大尝试次数:10
使用 disconnect 完全停止机器人。
插件集成
悲伤预防(索赔保护)
机器人在执行操作时会自动检测索赔保护。在装有GriefPrevention的服务器上,机器人:
- 检查索赔所有权 在修改块或容器之前
- 尊重信任级别 (使用
/trustlist 检查权限) - 报告明确否认 所以你知道为什么行动失败了
具有悲伤预防意识的工具:
| 工具 | 预防悲伤的行为 |
|---|
break_block | 检查机器人是否可以打破索赔中的区块 |
place_block | 检查bot是否可以内置索赔 |
place_sign | 检查容器/建立信任以放置标志 |
edit_sign | 检查修改标志的权限 |
open_container | 打开箱子前检查容器信任度 |
interact_entity | 检查机器人是否可以与索赔中的动物互动 |
mount_entity | 检查索赔中是否允许携带动物/车辆 |
create_chest_shop | 在创建店铺之前验证索赔所有权 |
没有悲伤预防: 所有工具工作正常。机器人根本不会检测到基于索赔的拒绝(像产卵保护这样的香草保护仍然适用)。
QuickShop Hikari(玩家经济)
对于带有QuickShop Hikari的服务器,机器人可以查询玩家商店并与之交互。这些功能需要 MC_SERVER_ROOT 指向Minecraft服务器目录的环境变量。
配置:
{
"mcpServers": {
"minecraft": {
"command": "node",
"args": ["/path/to/haksnbot-tools/src/index.js"],
"env": {
"MC_SERVER_ROOT": "/path/to/minecraft-server"
}
}
}
}
车间工具:
| 工具 | 说明 |
|---|
list_all_shops | 从QuickShop H2数据库查询所有商店 |
search_shops | 搜索销售/购买特定商品的商店 |
create_chest_shop | 在坐标处创建一个QuickShop胸部商店 |
没有QuickShop或MC_SERVER_ROOT: 这三个工具返回一条有用的错误消息:“QuickShop功能需要MC_SERVER_ROOT环境变量”。所有其他工具工作正常。
优雅降级总结
| 插件 | 如果不存在 |
|---|
| 悲伤预防 | 所有工具都有效;跳过索赔检查 |
| QuickShop Hikari | 购买工具(list_all_shops, search_shops, create_chest_shop)返回错误;所有其他工具都有效 |
需求
- Node.js 18+
- 对于
take_screenshot:OpenGL支持(Linux上的Mesa)
依赖项
相关项目
许可证
麻省理工学院