DeepSeek Harness 插件:dsh-mcp-lazy

前言

DeepSeek Harness(DSH)支持通過插件集成 Model Context Protocol(MCP)服務器。使用默認的 @deepseek-ai/dsh-mcp-client 時,配置的服務器會在插件啓動時連接,並將所有工具定義註冊爲原生工具。這意味着每次請求都會攜帶大量工具的 schema 字節,且服務器會常駐內存,無論模型是否實際調用它們。

dsh-mcp-lazy 是一個爲此設計的網關插件。它在前端只暴露一個固定的代理工具,僅在模型調用特定工具時才啓動對應的服務器,並在閒置後斷開連接。服務器元數據會被緩存到磁盤,使得元數據查詢操作無需啓動進程。

核心功能

  1. 單一代理工具:替代原本的 N 個工具定義,前端只存在一個 schema 恆定的工具。
  2. 惰性加載與空閒斷開:服務器僅在首次使用時啓動,閒置後自動斷開。
  3. 磁盤緩存:元數據持久化存儲,search(搜索)和 describe(描述)操作不觸發進程啓動。
  4. 配置遷移工具:提供 CLI 工具 dsh-mcp-lazy-adopt,幫助將現有配置遷移到新插件。
  5. Token 節省測量:提供腳本用於計算並測量 Token 節省情況。

安裝

使用官方安裝命令添加插件到指定配置文件:

dsh plugin --profile <your-profile> add dsh-mcp-lazy

安裝後,插件會註冊其補丁層。需要在配置文件的 cordis.patch.yml 中定義服務器列表。

使用方式

插件在 DSH 面板中暴露爲一個名爲 mcp-lazy 的工具。以下是幾種調用方式:

  • 搜索工具:在緩存中查找工具名稱。
    mcp({ search: "screenshot" })
  • 獲取描述:獲取指定工具的完整參數 schema。
    mcp({ describe: "take_screenshot" })
  • 調用工具:實際執行操作,此時纔會啓動對應的服務器。
    mcp({ tool: "take_screenshot" })
  • 跨服務器調用:當多個服務器擁有同名工具時,通過 server 參數指定。
    mcp({ tool: "echo", server: "docs" })
  • 連接服務器:連接並刷新緩存,不執行調用。
    mcp({ connect: "chrome" })
  • 查看狀態:查看當前連接狀態、緩存數量及緩存時間。
    mcp({})

配置示例

在 cordis.patch.yml 中添加 mcp-lazy 配置段:

- id: mcp-lazy
  config:
    servers:
      - serverName: chrome
        transport: stdio
        command: npx
        args: ['-y', 'chrome-devtools-mcp@1.6.0']
        lifecycle: lazy
      - serverName: docs
        transport: streamable-http
        url: http://127.0.0.1:3000/mcp

注意事項

  1. Token 節省計算:網關本身消耗固定的 1525 字節。僅當服務器工具定義渲染後的字節數超過該值時,插件纔會產生淨收益。如果配置的服務器工具較少或較小,插件可能會增加開銷。建議在啓用前運行測量腳本驗證。
  2. Node 版本要求:插件依賴 Node.js 版本 >=22.18.0。
  3. 配置遷移:adopt 命令不會在插件啓動時自動運行,需要手動執行。它讀取當前實際掛載的配置,將原生工具行標記爲 disabled: true 並追加到當前插件的 servers 列表中。
  4. 全局影響:adopt 命令通常禁用原生配置行,該行通常位於 home 補丁層(~/.dsh/cordis.patch.yml)。如果其他配置文件(如 default、dsh-tui、headless)也引用了該配置但未掛載本插件,它們將失去該工具能力。
  5. 不支持字段:插件不支持 reconnect 和 failOnStartupError 兩個原生字段,遷移配置時會報錯並保留原行。

總結

dsh-mcp-lazy 通過引入一個固定開銷的網關層,換取了動態加載 MCP 服務器的能力,顯著降低了每次請求的 Token 消耗。對於擁有大量 MCP 工具且希望節省上下文空間的場景,這是一個實用的優化方案。使用前請確保工具定義足夠複雜以覆蓋網關的固定成本。

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

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

小夜