前言¶
在 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。
- 仓库:https://github.com/NingYuanLee/dsh-jev-mcp
- 社区目录:https://www.skillhub.cn/plugins/NingYuanLee/dsh-jev-mcp
- 许可证:MIT(与上游 Jev MCP 一致)
核心功能¶
凭证与 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 与工具命名¶
- 在
ctx.skills上注册内置jevskill(同名用户或项目 skill 优先)。 - 工具名、schema 与结果均来自上游 MCP 服务,本包不重实现工具逻辑。
- 单次工具调用超时时间为 2 分钟;连接断开时由 MCP 客户端自身的重连策略处理。
- 当
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 设置面板统一的开发者。