前言¶
在 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 設置面板統一的開發者。