前言¶
在 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 一致):
- 装配 MCP 桥接,并通过
junimoPaths服务统一解析 exe 与 skill 目录路径。 - 向系统提示词注入段落
junimo:rules(约 1000 字符),减少时序与存档类误操作。 - 注册 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 等字段)。
典型用法¶
- 装插件并重启 dsh → 调用
junimo_doctor确认 exe、端口、mod、存档与 SMAPI 状态。 - 若游戏未运行 →
junimo_game_launch经StardewModdingAPI.exe启动并等待 7842 响应;已在运行则不会重复启动。 - 需要进入存档 →
junimo_load_save(先junimo_focus因失焦会暂停游戏):聚焦 → 点击 Load → 点击存档格 → 轮询至worldReady;标题界面坐标基于 1280×720 窗口模式,其它分辨率需自行换算(见src/game.js注释)。 - 日常操控 → 使用模型可见的
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