dsh-jev-mcp: Integrating Jev Judgment Tools into DeepSeek Harness

前言

在 DeepSeek Harness(DSH)里跑 coding agent 时,模型经常需要做一次「带类型的判断」:代码是否满足约束、候选里哪一条更贴切、能否放行某步操作。若单独维护一份 MCP 配置、在环境里散落 API Key,和 DSH 的凭证体系、插件加载方式并不一致。

下面介绍的 dsh-jev-mcp 是社区第三方插件(非 DeepSeek 或 TypeSafe 官方产品),由维护者 NingYuanLee 发布。它在 Harness 进程内启动上游包 @jkudish/jev-mcp,把 Jev 暴露的判断类工具注册为 mcp__jev__*,并把 Key 放进 DSH 凭证存储,而不是写进 cordis.patch.yml 或命令行。

这是什么

dsh-jev-mcp 的定位是:让 agent 在不单独配置 MCP 的前提下调用 Jev。Jev 面向 verify、screen、find、rerank、classify、decide、compare、extract、audit、review、gate、noul 等 typed 问题作答;它不是聊天模型,也不能替代当前驱动 agent 的主模型。更完整的产品说明见 Jev with coding agents。

插件还会注册名为 jev 的 skill,便于 agent 在使用工具前加载调用约定。在本宿主中,原始工具名会加前缀,例如 jev_verify 对应 mcp__jev__jev_verify。

核心功能

凭证与 MCP 子进程

插件从 DSH 凭证存储读取 API Key(默认引用名 TYPESAFE_API_KEY),用 node 以 stdio 方式启动固定版本的 @jkudish/jev-mcp(资料中 pinned 为 0.14.7),再交给 @deepseek-ai/dsh-mcp-client 挂载。Key 只通过所选 provider 对应的环境变量传给子进程;进程环境与 .env 回退不会被当作凭证来源。

若凭证为空,插件仍会加载并保留 skill,但不会注册任何 Jev 工具;保存凭证后会重新连接。

Skill 与工具命名

  1. 在 ctx.skills 上注册内置 jev skill(同名用户或项目 skill 优先)。
  2. 工具名、schema 与结果均来自上游 MCP 服务,本包不重实现工具逻辑。
  3. 单次工具调用超时时间为 2 分钟;连接断开时由 MCP 客户端自身的重连策略处理。
  4. 当 credentials/reference-updated 且凭证名匹配时,会 dispose 子客户端并重新连接。

设置面板

插件通过 DSH 客户端 UI 提供「Jev model」相关设置:在 TypeSafe console 创建 Key 后,在 Settings → Jev model 中填写 Key 与 model ID。Key 字段留空则保留已保存的 Key。

支持的 provider 包括 TypeSafe、OpenRouter、Cloudflare Workers AI、Vercel AI Gateway 及兼容的 System One 端点;各 provider 的 Key 分别存储。Cloudflare 需要 account ID,兼容服务需要完整 endpoint URL。

安装与启用

DSH 生态采用「一切皆插件」;社区目录站点与 DeepSeek / 幻方无官方从属关系。安装前建议查看仓库源码与 MIT 许可证,并理解插件以当前 dsh 进程权限运行。

官方 README 给出的安装命令如下。

dsh plugin --profile web add dsh-jev-mcp

从 GitHub 添加:

dsh plugin --profile web add github:NingYuanLee/dsh-jev-mcp

本地未发布包目录:

dsh plugin --profile web add ./dsh-jev-mcp

包声明了 dsh.bundle.patch,dsh plugin add 会把 bundle 写入 profile。若当前会话里看不到工具,需要重启 DeepSeek Harness。

卸载(profile 名按实际替换):

dsh plugin --profile <name> remove dsh-jev-mcp

卸载会停止 MCP 进程并注销工具与内置 skill,不会删除已保存的 provider 凭证。

配置说明

Cordis 行 id 为 jev-mcp,包名为 dsh-jev-mcp。覆盖 profile 时需知:后一次 patch 会整体替换 config 对象,因此要保留的字段需全部写全。

字段 默认值 含义
apiKeyEnv TYPESAFE_API_KEY 凭证引用名;真实值不在此配置中保存
serverName jev 工具命名空间:mcp__<serverName>__<tool>,须匹配 [A-Za-z0-9_-]{1,32} 且在同 scope 内 MCP 客户端间唯一
model jev-latest 作为 JEV_MCP_MODEL 传入;可用 GET /v1/models 中的名称,如 jev-1.14
baseURL 空 可选 TypeSafe origin,仅 https://api.typesafe.ai 形式;不含 user info、path、query、fragment

示例:

- id: jev-mcp
  config:
    apiKeyEnv: TYPESAFE_API_KEY
    serverName: jev
    model: jev-latest
    baseURL: ""

典型用法

经过上面的安装与凭证配置后,agent 会话中应出现 mcp__jev__* 系列工具。调用前让 agent 加载 jev skill,可避免误用 npx @jkudish/jev-mcp——服务已由插件拉起。

具体参数与返回格式以 skill 正文及 MCP 工具 schema 为准;判断类任务按 Jev 文档中的 typed 用法组织输入即可。

兼容性与排错

项 要求
dsh >=0.2.1-rc.2 <0.3.0-0
Node >=22.19.0
Jev MCP @jkudish/jev-mcp@0.14.7
依赖能力 credentials、tools、skills 及自带的 @deepseek-ai/dsh-mcp-client

看不到 mcp__jev__*: 多为 apiKeyEnv 对应凭证为空、服务端拒绝 Key、@jkudish/jev-mcp 未装好,或已有 MCP 客户端占用 serverName jev。设置凭证并重启插件;日志会提示凭证缺失,不会打印 Key 值。

serverName 已被占用: 在 config 中改用其他 serverName,公开工具名会随之变化;skill 文案仍示例 mcp__jev__*,实际以配置为准。

调用超时: 单次上限 2 分钟(0.1.0 中不可配置);服务端请求 deadline 为 60 秒。

安全方面:Key 仅经子进程环境变量传递;子进程会把 Key 与判断文本发往所选 provider;插件日志不打印 Key。详见仓库 SECURITY.md。

结尾

dsh-jev-mcp 把 Jev MCP 收进 DSH 插件与凭证体系,减少单独维护 MCP 与明文 Key 的配置成本,适合需要在 agent 工作流里做结构化判断、又希望与 Harness 设置面板统一的开发者。

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

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

Xiaoye