dsh-context7-mcp:在 DeepSeek Harness 中對接 Context7 文檔 MCP

前言

在 DeepSeek Harness(DSH)裏做智能體開發時,查閱第三方庫文檔往往要走本地 npx 或自行拼接檢索鏈路,版本也容易和項目裏實際依賴不一致。Context7 提供託管 MCP 服務,可按庫名或 Context7 id 拉取當前、與版本相關的文檔。社區插件 dsh-context7-mcp(維護者 NingYuanLee)把該遠程 MCP 接到 DSH 內置的 @deepseek-ai/dsh-mcp-client,工具以 mcp__context7__* 出現在同一會話裏,無需在本機再起 Context7 進程。本文爲第三方社區插件說明,非 DeepSeek 或 Context7 官方產品;安裝與運行仍以 DSH 當前進程權限爲準,使用前建議覈對源碼與 MIT 許可證。

這是什麼

dsh-context7-mcp 是 Cordis 插件包(npm 名 dsh-context7-mcp,Cordis 行 id 爲 context7-mcp)。它在 DSH 中連接 Context7 託管 MCP 服務器(默認端點 https://mcp.context7.com/mcp),註冊遠端發佈的工具。發佈時對應工具爲 resolve-library-id 與 query-docs,在 Harness 中顯示爲帶命名空間前綴的工具名。分類上在社區目錄中歸入「聯網工具」。

核心功能

  1. 遠程 Streamable HTTP:插件把流式 HTTP 連接交給內置 MCP 客戶端,不在本機 spawn 子進程實現 Context7 協議。
  2. 庫解析與文檔查詢:智能體可先調用 resolve-library-id 解析庫標識(除非已有 Context7 id,例如 /vercel/next.js),再調用 query-docs 獲取文檔。
  3. 可選 API Key:匿名調用可用,但限流較低;在 context7.com/dashboard 創建密鑰後,以憑據名(默認環境/憑據引用 CONTEXT7_API_KEY)保存,僅通過 Authorization: Bearer 發往配置的 url,不寫入 cordis.patch.yml。
  4. 憑據變更自動重連:當同一憑據名的 credentials/reference-updated 觸發時,插件會釋放子客戶端並重新連接。
  5. 調用超時:單次工具調用超時時間爲 60 秒(0.1.0 起非配置項)。

工具的名稱、 schema 與返回結果由遠端 MCP 提供,本包不重複實現業務邏輯。

工作原理簡述

經過上面的能力說明,連接鏈路可概括爲:

  1. 通過 ctx.credentials 解析 apiKeyEnv(默認 CONTEXT7_API_KEY);憑據存儲優先於進程環境,空值不視爲錯誤。
  2. 請求配置的 url;有密鑰時只放在 Authorization 頭,不放在 URL 查詢串。
  3. 掛載一個 @deepseek-ai/dsh-mcp-client 子實例,對外暴露遠端工具。
  4. 單次調用 60 秒超時;連接斷開時遵循 MCP 客戶端自有重連策略。

安裝與啓用

發佈到 npm 後,在指定 profile 下安裝(資料中的官方命令):

dsh plugin --profile web add dsh-context7-mcp

包聲明瞭 dsh.bundle.patch,dsh plugin add 會把 bundle 寫入對應 profile。若當前會話看不到 mcp__context7__* 工具,需要重啓 DeepSeek Harness。

可選憑據:在插件設置中配置,或在啓動 DSH 的環境中導出與 apiKeyEnv 同名的變量(默認即 CONTEXT7_API_KEY)。保存或清除憑據會觸發重連。

環境要求(以 README 與 package.json 爲準):

項 要求
Node >=22.19.0
dsh >=0.2.1-rc.2 <0.3.0-0 或 >=0.2.2-0 <0.3.0-0
已驗證 dsh 0.2.2-rc.1
依賴能力 credentials、tools、隨 DSH 提供的 @deepseek-ai/dsh-mcp-client

當前包版本爲 0.1.2,許可證 MIT。

配置項

在 profile 中可通過 patch 覆蓋整個 config 對象(後續 patch 會整體替換,需重複保留仍要使用的字段):

- id: context7-mcp
  config:
    apiKeyEnv: CONTEXT7_API_KEY
    url: https://mcp.context7.com/mcp
    serverName: context7
字段 默認值 含義
apiKeyEnv CONTEXT7_API_KEY 憑據引用名,密鑰不落盤到本配置
url https://mcp.context7.com/mcp 遠程 MCP 端點,僅 http/https,不在 URL 中帶密鑰
serverName context7 工具命名空間:mcp__<serverName>__<tool>,須匹配 [A-Za-z0-9_-]{1,32} 且在同作用域 MCP 客戶端中唯一

典型用法

向智能體提問時,按 Context7 約定指明庫名或 Context7 id。推薦流程:

  1. 若尚未知道 Context7 id,先讓智能體調用 mcp__context7__resolve-library-id(實際前綴取決於 serverName 配置)。
  2. 再調用 mcp__context7__query-docs 拉取與問題相關的文檔片段。

插件不向磁盤寫入業務數據;卸載時斷開 MCP 並註銷工具,但不會刪除已保存的 CONTEXT7_API_KEY 憑據。

卸載命令:

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

適用場景與注意

適合:需要在 DSH 會話內查最新、帶版本語境的庫文檔,且希望避免本地再跑一套 Context7 MCP 進程的開發者。

安全與隱私(README SECURITY 摘要):

  • 密鑰僅發往配置的端點,日誌中對含密鑰的客戶端錯誤做脫敏。
  • 庫名與文檔相關問題會發送到 Context7;插件不直接讀取憑據文件。
  • 社區目錄 SkillHub 與 DeepSeek / 幻方無官方從屬關係,插件亦不代表 Context7 官方集成。

排錯:

  • 看不到 mcp__context7__*:連接被拒,或另一 MCP 客戶端已佔用 serverName context7。
  • 返回 429:匿名限流;配置 CONTEXT7_API_KEY 後等待重連。
  • serverName 衝突:在 config 中改用其他 serverName,工具對外名稱會隨之改變。

結尾

dsh-context7-mcp 把 Context7 託管文檔能力以標準 MCP 工具形態接入 DSH,適合在智能體工作流裏按需查庫文檔。更多元數據與安裝入口見社區目錄與倉庫:

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

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

小夜