dsh-mcp-manager-web:DeepSeek Harness 的 MCP 可視化管理器

前言

DeepSeek Harness(DSH)採用「一切皆插件」的理念,MCP(Model Context Protocol)服務器需要通過配置掛載到 cordis.patch.yml,但當前沒有可視化界面。增刪改啓停、查看工具 schema、提示和資源,需要在配置文件或命令行中手動維護,容易出錯且效率低。

下面介紹 zengshuaishuai/dsh-mcp-manager-web,這是一個在設置 → MCP 頁籤提供可視化管理器的插件,支持列表查看、詳情展開、增刪啓停與連接測試。

插件簡介

這是 DeepSeek Harness 的 MCP 可視化管理器,由維護者 zengshuaishuai 在 MIT 許可的開源項目 dsh-mcp-manager 基礎上二次開發,重做了列表與詳情界面,並新增工具目錄、提示/資源讀取等能力。

插件只做一件事:讓 MCP 服務器的配置與狀態可視化。所有修改寫入 profile 的 cordis.patch.yml,由 harness 的 HMR 熱應用,無需重啓宿主。

核心功能

服務器列表

列表以緊湊行式展示,每一行包含:

  • 狀態圓點:已連接 / 告警 / 失敗 / 停用
  • 名稱
  • 服務版本(連接成功後顯示)
  • 傳輸方式徽章:流式 / stdio
  • 工具數
  • 啓停開關

頂部工具條提供:

  • 刷新
  • 只看已連接
  • 搜索服務器
  • 添加服務器

點擊任意一行進入詳情頁。

詳情頁

詳情頁分爲多個標籤:

通用

  • 連接狀態
  • 條目 ID
  • 傳輸方式
  • 目標地址 / 命令
  • serverName
  • 工具數
  • 服務版本
  • 超時
  • 補丁文件路徑
  • 操作按鈕:測試 / 編輯 / 停用 / 刪除

工具

列出該服務註冊到工具表裏的全部工具(mcp__<serverName>__*),支持搜索。展開後可見描述與輸入參數表:

  • 參數名
  • 類型
  • 必填標記
  • 說明
  • 默認值

提示

按需建立一條獨立 MCP 連接讀取 prompts/list。服務端未實現時顯示爲空。

資源

同上,讀取 resources/list,展示名稱 / URI / MIME 類型。

日誌

本頁的操作流水(打開詳情、探測結果、讀取提示/資源的結果),帶時間戳。

添加 / 編輯 / 刪除

支持兩種傳輸方式:

  • stdio:command / args / env / cwd
  • streamable-http:url / headers

添加或編輯時會校驗 id、serverName、URL 等字段。

連接測試

獨立連接跑一次 initialize + tools/list,報告耗時與工具數。

其他特性

  • 中英雙語:界面文案跟隨 DSH 當前語言
  • 深淺主題自適應:顏色全部取自 DSH 的 --dsw-* token
  • 即改即生效:所有修改寫入 cordis.patch.yml,由 harness 的 HMR 熱應用
  • MCP 圖標:設置導航裏把未知插件默認的齒輪換成了 MCP 插頭圖標

安裝與啓用

前置條件:DSH 已經能正常啓動(dsh web 或 DSH Desktop)。

桌面版的 profile 名是 desktop,Web 版通常是 web。下面的命令中的 --profile desktop 按你的實際情況替換。

git clone https://github.com/zengshuaishuai/dsh-mcp-manager-web.git dsh-mcp-manager-web
cd dsh-mcp-manager-web
# 倉庫已包含構建產物 lib/,只有改過 src/ 才需要重新構建:
node scripts/build.mjs

dsh plugin --profile desktop add "link:$PWD"

方式二:npm 包

dsh plugin --profile desktop add @zengshuaishuai/dsh-mcp-manager-web

如果安裝時報 minimum release age,可以在 profile 的 pnpm-workspace.yaml 里加 minimumReleaseAgeExclude: ["@zengshuaishuai/dsh-mcp-manager-web"] 後重試。

方式三:直接裝 GitHub 源

dsh plugin --profile desktop add github:zengshuaishuai/dsh-mcp-manager-web

lib/ 已入庫,GitHub 源安裝不需要本地構建。

生效

安裝後硬刷新瀏覽器(Cmd/Ctrl + Shift + R),打開 設置 → MCP。如果沒看到 MCP 頁籤,重啓一次 DSH(宿主端首次掛載需要)。

配置

插件自身只有一項可選配置 —— 它要編輯哪個補丁文件:

- id: mcp-manager
  name: "@zengshuaishuai/dsh-mcp-manager-web"
  config:
    patchFile: /Users/you/.dsh/profiles/desktop/cordis.patch.yml

patchFile 默認是 $DSH_HOME/profiles/web/cordis.patch.yml。桌面版必須顯式指向 profiles/desktop/,否則增刪的 MCP 服務器會寫進 Web 版 profile、不生效。

架構

插件採用客戶端 + 宿主端的分離架構:

宿主端入口

  • index.ts:註冊 /api/mcp-manager 的 Fetch 路由並分發 action
  • status.ts:遍歷 loader 裏的 mcp-client 條目,投影狀態與工具目錄
  • probe.ts:獨立 MCP 連接:probe(計數)/ inspect(工具+提示+資源+版本)
  • patch.ts:讀寫 profile 的 cordis.patch.yml(insert / 覆蓋 / disabled)
  • validate.ts:表單校驗(與 dsh-mcp-client 的 schema 對齊)
  • shared.ts:兩端共享的類型與常量

瀏覽器端

  • client/:設置頁、詳情頁、文案、樣式、圖標、RPC 封裝

RPC 端點

走 harness 自帶的 /api 通道,複用瀏覽器鑑權:

action 說明
list 所有 mcp-client 條目 + 狀態 + 工具目錄
add / update / remove 增改刪補丁行
setEnabled 啓停(寫 disabled 標記)
probe 連通性探測(工具數、版本)
inspect 讀取工具(含 schema)、提示、資源、服務版本
patchInfo 當前補丁文件路徑與是否存在

已知限制

  • 不支持按工具啓用 / 自動批准:@deepseek-ai/dsh-mcp-client 會把服務端工具全量註冊,插件無法單獨開關某個工具,也無法爲單個工具設置自動批准,所以工具行是隻讀展示。
  • 提示 / 資源不是實時數據:它們由 inspect 單獨建連讀取,點開時拉一次,不會持續同步。
  • 日誌是本頁操作流水,不是 mcp-client 進程日誌(插件拿不到宿主插件實例的日誌)。
  • 服務版本只有在成功連接(打開詳情或點測試)之後纔有。
  • 只能管理用戶補丁層的條目:由 bundle 定義的 MCP 條目不能刪除或停用。
  • 啓停沿用 loader 的 disabled 標記:部分 DSH 版本上重新啓用後可能長時間停在「加載中」,此時重啓一次 DSH 可恢復。

兼容性

在 DSH Desktop 0.2.1-rc.2(macOS arm64)上開發與驗證;MCP 協議側兼容 stdio 與 streamable-http。

總結

dsh-mcp-manager-web 用可視化的方式管理 MCP 服務器的配置與狀態,省去了在 cordis.patch.yml 中手動增刪改的繁瑣,同時提供了工具 schema、提示與資源的查看入口。適合需要頻繁調試或維護多個 MCP 服務的 DSH 用戶。

更多細節與源碼,可在 GitHub 查看:https://github.com/zengshuaishuai/dsh-mcp-manager-web

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

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

小夜