Minecraft AI控制工具

一个基于Mineflayer的MCP服务器,为Claude等AI提供40多种控制Minecraft机器人的功能,包括移动、战斗、建造和交易等。

  • by haksndot
  • JavaScript
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 haksndot/haksnbot-tools

使用说明

haksnbot工具

MCP(模型上下文协议)服务器,使克劳德能够玩《我的世界》。建立在 Mineflayer,此工具允许Claude Code(或任何兼容MCP的AI)通过40多个动作控制Minecraft机器人。

Haksnbot套件的一部分: 该项目最初是作为 Haksnbot,一个自主的Minecraft机器人。该套件包括四个协同工作的仓库: haksnbot工具 (此仓库-Minecraft机器人控件), haksnbot头脑 (自主代理), haksnbot管理员 (服务器管理),以及 haksnbot内存 (持久记忆)。每个都可以独立使用,但它们被设计为协同工作。

特性

  • 完全机器人控制 -移动、战斗、建造、制作、库存管理
  • 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 饲养动物、奶牛、剪毛羊

睡眠

工具 说明
sleep 找张床睡觉
wake 从床上醒来

建筑

工具 说明
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 完全停止机器人。

插件集成

这些工具最初是为运行以下命令的服务器开发的 悲伤预防 和 QuickShop Hikari 插件。机器人内置了对这些插件的支持,但是 没有它们,所有功能都能正常工作 -当插件不存在时,它们会优雅地降级。

悲伤预防(索赔保护)

机器人在执行操作时会自动检测索赔保护。在装有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)

依赖项

相关项目

许可证

麻省理工学院