前言¶
在 DSH 里直接连 Minecraft 美西螈启动器(Axolotl Launcher)自带的 MCP 端点,往往会碰到三件事:会话大约 30 秒无应答就被服务端杀掉、269 个工具的 tools/list schema 大约 195 KB 常驻上下文、截图类工具只给 base64 或路径而不是对话里直接可见的图。直连可以工作,但对智能体来说成本和稳定性都不理想。
下面介绍社区插件 dsh-plugin-axolotl(维护者 sdf123098,分类:客户端)。它在 DSH 与启动器之间加一层适配:代持 MCP 连接并应答心跳、把上游工具按前缀折叠成领域工具、把截图转成 DSH 附件;可选 Bearer 令牌认证。插件以当前 DSH 进程权限运行,安装前请查看 GitHub 源码 与 MIT 许可证。
这是什么¶
一句话:把 Axolotl Launcher 的 MCP 服务器(默认 http://127.0.0.1:5219/mcp)接入 DeepSeek Harness 的 Cordis 插件。
启动器从 1.11.0-beta.2 起暴露约 269 个 MCP 工具。本插件不把它们原样注册给模型,而是收成 9 个领域工具,外加 axolotl_status(诊断)和 axolotl_raw(按上游原名调用任意工具),共 11 个 DSH 工具。
为什么需要这一层¶
会话与心跳¶
启动器(Rust/rmcp)每 15 秒经独立 SSE 流 ping 客户端,10 秒内无应答会终止整个 MCP 会话,之后调用常表现为 Streamable HTTP error: Error POSTing to endpoint。插件内维持常驻 SDK 客户端,自动应答 ping;断线后自动重连并重试一次。
工具清单体积¶
全量 schema 约 195 KB。插件按工具名前缀分成 9 个领域,每个领域工具描述里只列 op 名称(总量约 9 KB)。需要完整参数时,对应该领域工具传 op: "help" 现查,用一次调用换上下文里的常驻体积。
截图进对话¶
ui_screenshot、skin_get_texture、screenshot_get 等返回的 base64 图片,插件会转成 DSH 附件引用,截图可直接出现在对话里;依赖 profile 是否挂载附件存储,未挂载时可能降级为仅文本。
核心功能¶
| 工具 | 覆盖上游工具数 | 用途 |
|---|---|---|
axolotl_status |
— | 版本、连接、控制会话、各领域工具数 |
axolotl_instances |
48 | 实例、安装任务、下载队列、游戏进程 |
axolotl_launch |
18 | 启动、Java、窗口、内存、游戏版本元数据 |
axolotl_content |
26 | 模组、资源包、光影、整合包 |
axolotl_files |
15 | 实例内文件、压缩包、NBT |
axolotl_worlds |
17 | 存档与种子 |
axolotl_schematics |
9 | .schem、.litematic 等投影 |
axolotl_servers |
34 | 专用服务器与联机 |
axolotl_ui |
7 | 界面截图、导航、点击、输入 |
axolotl_system |
91 | 设置、代理、存储、数据库、日志、账号、皮肤、更新 |
axolotl_raw |
269 | 按上游原名调用任意工具(可配置关闭) |
各领域工具参数统一:
op(必填):上游工具名,或"help"args:该 op 的参数对象;instance_id/session_id会自动补全instance_id:便捷写法,等价于args.instance_id
启动器同一时刻只允许一个控制会话;插件按 sessionPolicy 等配置自动开关。闲置默认 15 分钟后释放。写操作在 requireApproval: true 时可走 DSH 审批(共 83 个需完全访问权限的写操作)。
启动器开启「要求身份验证」时,HTTP 请求需 Authorization: Bearer <令牌>。令牌保存在 <DSH_HOME>/data/dsh-plugin-axolotl/config.json,不写进 cordis.patch.yml;设置页仅显示首尾四位,修改后下次调用即用新令牌重连。
安装与启用¶
官方安装命令(来自仓库 README):
dsh plugin install dsh-plugin-axolotl
或手动:将包放入 profile 的 node_modules,在 cordis.patch.yml 的 insert 中增加:
- id: axolotl
name: 'dsh-plugin-axolotl'
config:
upstreamUrl: 'http://127.0.0.1:5219/mcp'
前提:
- 启动器版本 ≥ 1.11.0-beta。1.10.5 稳定版仅 3 个空壳工具(
get_launcher_info/start_session/end_session),无法覆盖本文能力。 - 启动器内:设置 → MCP 服务器 → 启用,并允许完全访问(写操作需要)。
- 插件要求 Node ≥ 20(见
package.json)。
常用配置项(可在 DSH 插件设置页或 cordis.patch.yml 中修改):
| 字段 | 默认 | 说明 |
|---|---|---|
upstreamUrl |
http://127.0.0.1:5219/mcp |
启动器 MCP 地址 |
autoConnect |
true |
DSH 启动时自动连接 |
sessionPolicy |
auto |
auto / persistent / manual |
sessionIdleMs |
900000 |
控制会话闲置自动关闭(15 分钟) |
sessionRetryMs |
45000 |
会话被占用时的重试上限 |
exposeRawTool |
true |
是否注册 axolotl_raw |
requireApproval |
true |
高危写操作是否走 DSH 审批 |
toolCallTimeoutMs |
120000 |
单次上游调用超时 |
典型用法¶
建议先对目标领域执行 op: "help",再带参调用。README 中的示例链路如下:
axolotl_instances op: instance_list → 列出实例
axolotl_instances op: instance_launch args: { instance_id } → 启动,返回 operation_id
axolotl_system op: operations_get args: { operation_id } → 轮询异步结果
axolotl_content op: content_list args: { instance_id } → 模组清单
axolotl_ui op: ui_screenshot → 截图进入对话
下载、安装等异步操作不阻塞:返回 operation_id,用 axolotl_system 的 operations_get 轮询。
适用场景与注意¶
适合谁: 已在本地运行美西螈启动器、希望通过 DSH 智能体管理实例、模组、存档、联机或查看启动器界面,又不想自己处理 MCP 心跳、巨大 tools/list 和截图管道的人。
注意:
- 不支持多启动器并联;控制会话全局唯一。
- 不修改启动器源码(上游 GPL-3.0,本插件 MIT)。
axolotl_ui可截图和点击,但不接管启动器 UI 结构。- 刚重启 DSH 后约 30 秒内可能因旧会话未释放而失败,插件会重试至
sessionRetryMs;仍失败时需等待启动器心跳超时释放会话。 - 社区目录 skillhub.cn 与 DeepSeek / 幻方无官方从属关系;DSH 生态理念是「一切皆插件」,请自行审阅代码后再安装。
故障排查要点: axolotl_status 显示 not connected 时检查启动器与 MCP 开关;upstream tools: 0 时核对是否为 1.11.0-beta 及以上;401 与端口不通插件会给出不同提示(401 优先看 error.code,勿与「会话过期」混淆)。
结尾¶
dsh-plugin-axolotl 把 Axolotl Launcher 的 MCP 能力整理成少量领域工具,并处理连接保活、上下文体积、截图附件与可选令牌认证,适合在 DSH 里用自然语言驱动本地 Minecraft 启动器工作流。