dsh-plugin-axolotl:把美西螈启动器的 269 个 MCP 工具收成 11 个领域工具

前言

在 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. 启动器版本 ≥ 1.11.0-beta。1.10.5 稳定版仅 3 个空壳工具(get_launcher_info / start_session / end_session),无法覆盖本文能力。
  2. 启动器内:设置 → MCP 服务器 → 启用,并允许完全访问(写操作需要)。
  3. 插件要求 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 启动器工作流。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜