dsh-junimo:把 Junimo-MCP 的 37 个星露谷工具接进 DeepSeek Harness

前言

在 DeepSeek Harness(DSH)里让模型「玩」《星露谷物语》,常见做法是单独接 MCP 服务:模型侧能看到一批 mcp__* 工具,但启动游戏、窗口聚焦、读档、以及部署是否就绪,往往仍要人手工排查。Junimo-MCP 已经用单文件 junimo-mcp.exe 通过 HTTP 连到游戏内的 NagiBridge-Remix mod,却没法从 mod 进程里启动自身或把窗口置前。

下面介绍社区插件 dsh-junimo(维护者 mlkgrnt,GitHub mlkgrnt/dsh-junimo)。它是一个 DSH 组合包(bundle),在 profile 层装配 @deepseek-ai/dsh-mcp-client 与内置的 Junimo-MCP 二进制,并额外注册诊断与游戏生命周期相关的原生工具,同时在系统提示词里注入星露谷操作纪律。游戏操控逻辑不在本仓库实现;37 个 MCP 工具仍来自 Junimo-MCP,本仓库不修改其源码。

这是什么

dsh-junimo 面向已在 DSH 中做工作流或智能体实验、且目标游戏为 Stardew Valley 1.6.x 的开发者。分类上属于「工作流」类插件;当前 package 版本为 0.1.0,许可证 MIT。

插件承担三项职责(与 README 一致):

  1. 装配 MCP 桥接,并通过 junimoPaths 服务统一解析 exe 与 skill 目录路径。
  2. 向系统提示词注入段落 junimo:rules(约 1000 字符),减少时序与存档类误操作。
  3. 注册 4 个无法由 MCP 实现的工具:junimo_doctor、junimo_focus、junimo_game_launch、junimo_load_save。

随包内置 Windows 版 junimo-mcp.exe(bin/,文档记载为 v3.2.1),安装后一般无需再单独下载该二进制。

架构与能力边界

数据路径可概括为:

模型 ──mcp__junimo__*──▶ dsh-mcp-client ──stdio──▶ junimo-mcp.exe ──HTTP──▶ NagiBridge-Remix ──▶ 游戏
                              ▲
                        dsh-junimo 装配 + 4 个原生工具
组成 说明
37 个 mcp__junimo__* 工具 感知、移动、交互、界面、农活、箱子、社交、节日、生计等,经 MCP 桥接暴露给模型
4 个原生工具 链路诊断、窗口聚焦、经 SMAPI 启动游戏、自动读档至 worldReady
提示词纪律 系统提示词段落 junimo:rules
随包 skill skills/junimo/,由 @deepseek-ai/dsh-skill-filesystem 按需加载
参考文档 reference/game-semantics.md,含工具速查与已知边界

桥接工具的完整清单与参数见仓库内 reference/game-semantics.md;操作游戏前 README 建议先调用 junimo_doctor(只读诊断,不自动修复)。

前置要求

使用前需满足 README 中的表格要求,要点如下:

项 要求
操作系统 插件完整能力目前以 Windows 为主(聚焦、启动、读档依赖 user32 / PowerShell 等)
DSH >= 0.2.1-rc.2(声明于 package.json 的 dsh.engines)
游戏 Stardew Valley 1.6.x
SMAPI 4.x(junimo_game_launch 依赖其启动)
Shell Git for Windows 或 WSL 的 bash 用于启动游戏;缺失时退回 cmd,可启动但可能多一个 SMAPI 控制台窗口
执行器 mod NagiBridge-Remix 安装至 Mods/NagiBridge/

SMAPI 与 mod 的安装细节见 Junimo-MCP 仓库的 AGENTS.md。NagiBridge-Remix 为 PolyForm Noncommercial 1.0.0;与原版 NagiBridge 的 UniqueID 不同,同时安装会争用 7842 端口,切换时需先移出旧 mod 目录。

文档还说明:Junimo-MCP 的 OCaml 内核已有 macOS / Linux 发布产物,可通过环境变量 JUNIMO_MCP_BIN 指向对应二进制使用大部分 MCP 工具;但 junimo_focus / junimo_game_launch / junimo_load_save 仍只有 Windows 实现。

安装与启用

官方 README 给出的安装方式为:

# 本地 checkout
dsh plugin --profile web add link:/path/to/dsh-junimo

# 或直接从 GitHub 安装(纯 ESM 源码,无构建步骤)
dsh plugin --profile web add github:mlkgrnt/dsh-junimo

dsh plugin add 会初始化 profile,并将本包追加至 dsh.profile.bundles;重启 dsh 后生效。

安装后应执行 junimo_doctor 做链路检查:输出 exe 路径与版本、7842 端口、mod 响应、存档就绪、SMAPI 与 NagiBridge 文件完整性,以及 SMAPI 日志中的错误行。

从 GitHub 安装若提示构建脚本未授权,需将 pnpm 给出的包键加入 profile 的 pnpm-workspace.yaml 的 allowBuilds;本包不含构建步骤,通常不会触发。

开发者在本地验证组合是否进 profile 时,README 示例为:

dsh plugin --profile <name> add link:/path/to/dsh-junimo
dsh --profile <name> --dump-config | grep -A8 junimo
dsh --profile <name> --no-open

出现 entries did not activate 表示装配异常。

配置要点

常用环境变量(默认值以 README 为准):

变量 默认值 说明
JUNIMO_MCP_BIN 内置 bin/junimo-mcp.exe 覆盖内置 exe
STARDEW_GAME_DIR 自动探测 含 Stardew Valley.exe 的目录
STARDEW_API_URL http://localhost:7842 mod 端点;须用 localhost,127.0.0.1 会被拒绝
STARDEW_AUTO_MENU 1 透传 exe:自动应答无选项对话
STARDEW_AUTO_EVENT 未设置 透传 exe:自动跳过剧本事件,默认关闭

若要在 profile 层覆盖 MCP 客户端配置,需在 cordis.patch.yml 中按 id 整体替换对应插件行的 config(README 提供了 junimo-mcp + @deepseek-ai/dsh-mcp-client 的完整示例,含 toolCallTimeoutMs: 180000 等字段)。

典型用法

  1. 装插件并重启 dsh → 调用 junimo_doctor 确认 exe、端口、mod、存档与 SMAPI 状态。
  2. 若游戏未运行 → junimo_game_launch 经 StardewModdingAPI.exe 启动并等待 7842 响应;已在运行则不会重复启动。
  3. 需要进入存档 → junimo_load_save(先 junimo_focus 因失焦会暂停游戏):聚焦 → 点击 Load → 点击存档格 → 轮询至 worldReady;标题界面坐标基于 1280×720 窗口模式,其它分辨率需自行换算(见 src/game.js 注释)。
  4. 日常操控 → 使用模型可见的 mcp__junimo__* 工具;story 的 choose 在 exe 内为两段式,调用方不应再补第二发点击。

离线冒烟(不需游戏与 dsh 宿主):

node test/smoke.mjs

适用场景与注意

适合:在 DSH profile 里做星露谷自动化或 agent 实验,希望 MCP 工具与启动/读档/自检在同一 bundle 内闭环,并依赖系统提示词降低常见误操作。

务必注意:

  • 插件以 当前 dsh 进程权限 运行;安装前应阅读源码与 MIT 许可证,并理解 NagiBridge-Remix 等非 MIT 组件的许可边界。
  • 读档与标题 UI 绑定 1280×720;平台支持以 Windows 为完整路径,其它系统需自行适配原生三件套或仅使用 MCP 部分。
  • DSH 社区目录(如 SkillHub 插件页)为独立站点,与 DeepSeek / 幻方无官方从属关系;生态理念是「一切皆插件」,本介绍事实以仓库 README 为准。

结尾

dsh-junimo 把 Junimo-MCP 的 37 个 stdio MCP 工具接进 DSH,并用 4 个原生工具与 junimo:rules 补上 MCP 层做不到的部署诊断与游戏生命周期管理。若你要在 Harness 里稳定驱动星露谷,可从目录页或 GitHub 安装,并用 junimo_doctor 作为每次会话前的第一步。

  • 目录页:https://www.skillhub.cn/plugins/mlkgrnt/dsh-junimo
  • 源码:https://github.com/mlkgrnt/dsh-junimo
羽毛球分组比赛记分
小程序二维码

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

小夜