MCP聊天Minetest/Luanti
一种模型上下文协议(MCP)服务器,使AI助手能够使用WorldEdit与Minetest/Luanti服务器交互、发送聊天消息、执行命令和构建结构。
特性
- 💬 聊天集成:发送和接收聊天消息
- 🎮 命令执行:使用权限管理执行服务器命令
- 🏗️ WorldEdit大楼:与WorldEdit完全集成,用于人工智能辅助建筑
- 👤 虚拟播放器:用于命令执行的持久“克劳德”播放器
- 💾 职位坚持:服务器重启时保存的WorldEdit职位
- 🔧 稳健的错误处理:兼容性问题的巧妙解决方案
依赖项
地雷测试模块
Python要求
- Python 3.10+
- MCP-SDK
- 意图tp
安装
1.安装Minetest模块
放置 mcp_chat Minetest mods目录中的文件夹:
cp -r mcp_chat ~/.minetest/mods/或者对于特定的游戏:
cp -r mcp_chat /path/to/minetest/worlds/yourworld/worldmods/2.配置Minetest
添加到您的 minetest.conf:
secure.enable_security = true
secure.http_mods = mcp_chat
mcp_chat.port = 8081
mcp_chat.relay_chat = true
mcp_chat.allow_commands = true3.安装MCP服务器
使用紫外线(推荐):
cd mcp-luanti-chat
uv venv
uv pip install -e .使用pip:
cd mcp-luanti-chat
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
pip install -e .4.配置克劳德桌面
添加到您的Claude Desktop配置中:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json\ 视窗: %APPDATA%\Claude\claude_desktop_config.json\ Linux: ~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"minetest-chat": {
"command": "/absolute/path/to/mcp-luanti-chat/.venv/bin/python",
"args": ["-m", "mcp_chat_minetest"],
"cwd": "/absolute/path/to/mcp-luanti-chat"
}
}
}用法
- 开始Minetest 启用mcpchat模式
- 启动克劳德桌面 -MCP服务器将自动启动
- 使用工具 与您的Minetest世界互动
可用的MCP工具
发送聊天
发送消息或执行命令。以开头的命令 / 自动执行。
Examples:
- Send chat: "Hello players!"
- Execute command: "//set stone"执行命令
直接执行服务器命令。
Parameters:
- command: Command name (e.g., "/set" for WorldEdit)
- params: Command parameters (e.g., "stone")获取玩家
获取有位置的关联玩家列表。
获取聊天记录
检索最近的聊天消息(限制:1-50,默认值:20)。
获取服务器状态
检查服务器连接状态。
获取worldedit帮助
获取WorldEdit文档和构建示例。
Parameters:
- topic: "general", "examples", or building type ("castle", "house", "bridge")获取世界编辑状态
检查当前WorldEdit选择(位置和音量)。
WorldEdit集成
该模组创建了一个具有WorldEdit权限的虚拟玩家“克劳德”,可以在不需要真实玩家在线的情况下进行人工智能辅助构建。
基本建筑工作流程
- 设置位置1(第一个角):
//fixedpos set1 100 10 100- 设置位置2(对角):
//fixedpos set2 120 20 120- 填写区域:
//set stone常用建筑命令
//set-用节点填充区域- `//replace
` -替换节点
//sphere-在位置1创建球体//cylinder y-创建圆柱体//copy x/y/z-复制区域//stack x/y/z-堆栈区域
Minetest节点名称
用于构建的常见节点(不是Minecraft块):
- 基础:
stone,cobble,dirt,sand,wood - 玻璃:
glass,obsidian_glass - 装饰性的:
stonebrick,sandstone,brick - 特别:
water_source,lava_source,air
例子:
“以x、y、z为中心建造一座令人震惊的塔”
项目结构
mcp-luanti-chat/
├── mcp_chat/ # Minetest mod
│ ├── init.lua # Main mod code
│ ├── mod.conf # Mod metadata
│ └── settingtypes.txt # Configuration options
├── mcp_chat_minetest/ # MCP server
│ ├── __init__.py
│ ├── server.py # MCP server implementation
│ └── worldedit_docs.py # WorldEdit documentation
├── pyproject.toml # Python package configuration
└── CLAUDE_DESKTOP_PROMPT.md # System prompt for Claude虚拟播放器系统
该模组实现了一个虚拟玩家“克劳德”,它:
- 自动拥有WorldEdit权限
- 在重启过程中保持持久位置
- 无法访问危险命令(例如。,
//lua) - 在没有任何真实玩家在线的情况下工作
故障排除
命令失败,出现“玩家对象”错误
该模块包括自动回退,以直接调用API的通用WorldEdit命令。使用 //fixedpos 而不是 //pos1 或 //pos2 没有坐标。
HTTP API不可用
确保 secure.http_mods = mcp_chat 在你的 minetest.conf.
连接问题
- 检查端口8081的防火墙设置
- 验证MCP服务器是否正在运行
- 检查Minetest-debug.txt以获取错误消息
安全
- 命令以受控权限执行
- 虚拟玩家无法访问服务器级命令
- 所有操作都会记录下来以供审计
- 默认情况下,HTTP通信仅在本地进行
鸣谢
许可证
MIT许可证-有关详细信息,请参阅许可证文件
