Skip to content

命令执行失败:AI 持续错误使用 execute 并报错 'must contain run subcommand' (v0.2.1) #5

@klein523666

Description

@klein523666

环境信息:

操作系统: Windows (用户未指定具体版本,可能是 10 或 11)
moling_mc 版本: windows_amd64_v0.2.1_2025-04-22 14:15:29 (根据日志)
AI 客户端: Cherry Studio
Minecraft 版本: 1.21.5 (根据日志)
用户地点: 杭州 (Hangzhou)
目标:

希望通过 Cherry Studio 连接 moling_mc,使用 AI 助手执行简单的 Minecraft 命令,例如 /say hello 或 /time set 1000。

问题描述:

在按照 README 文件配置好 moling_mc 和 Cherry Studio,并让 moling_mc 负责启动和管理 Minecraft 服务器后,尝试通过 Cherry Studio 的 AI 助手发送简单命令(如 /say hello)时,AI 总是尝试使用 execute 相关的工具,并且执行失败。

AI 返回的错误信息如下(即使输入参数包含了 run 子命令):

JSON

{
"params": {
"subcommands": "run say hello"
},
"response": {
"content": [
{
"type": "text",
"text": "execute command must contain 'run' subcommand"
}
],
"isError": true
}
}
复现步骤 (根据与用户的交流过程):

按照 README 配置 config.json (设置 serverRootPath 和 serverJarFile)。
在 Cherry Studio 中配置 MCP 服务器,类型为 Stdio,命令指向 moling_mc.exe 的完整路径。
(初期尝试) 用户曾手动启动 Minecraft 服务器,导致 moling_mc 尝试启动服务器时因文件锁定 (另一个程序已锁定文件的一部分...) 而失败(根据 moling_mc 日志分析)。
用户停止了手动启动的 Minecraft 服务器。
通过 Cherry Studio 激活 MCP 连接,让 moling_mc 自行启动和管理服务器。
尝试通过 Cherry Studio 发送 /say hello 或 /time set 1000 等简单命令。
AI 助手返回上述 JSON 错误。
预期行为:

发送 /say hello 命令后,AI 助手应能成功执行,并在 Cherry Studio 中给出成功反馈。

实际行为:

AI 助手返回上述包含 execute command must contain 'run' subcommand 错误的 JSON 响应。命令未在 Minecraft 中执行。

已进行的故障排除:

确认 Minecraft 服务器本身可以正常运行(通过直接在服务器控制台输入 say 你好,服务器有响应,虽然控制台显示中文乱码)。
分析了 moling_mc 的日志文件,确认了其设计为自行管理服务器进程,并发现了之前由于手动服务器运行导致的文件锁定错误。
确认在解决文件锁定问题后,moling_mc 本身可以启动(根据其日志),但命令执行依然失败。
确认尝试纯英文命令 /say hello 结果相同。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions