前言¶
在 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 中显示为带命名空间前缀的工具名。分类上在社区目录中归入「联网工具」。
核心功能¶
- 远程 Streamable HTTP:插件把流式 HTTP 连接交给内置 MCP 客户端,不在本机
spawn子进程实现 Context7 协议。 - 库解析与文档查询:智能体可先调用
resolve-library-id解析库标识(除非已有 Context7 id,例如/vercel/next.js),再调用query-docs获取文档。 - 可选 API Key:匿名调用可用,但限流较低;在 context7.com/dashboard 创建密钥后,以凭据名(默认环境/凭据引用
CONTEXT7_API_KEY)保存,仅通过Authorization: Bearer发往配置的url,不写入cordis.patch.yml。 - 凭据变更自动重连:当同一凭据名的
credentials/reference-updated触发时,插件会释放子客户端并重新连接。 - 调用超时:单次工具调用超时时间为 60 秒(0.1.0 起非配置项)。
工具的名称、 schema 与返回结果由远端 MCP 提供,本包不重复实现业务逻辑。
工作原理简述¶
经过上面的能力说明,连接链路可概括为:
- 通过
ctx.credentials解析apiKeyEnv(默认CONTEXT7_API_KEY);凭据存储优先于进程环境,空值不视为错误。 - 请求配置的
url;有密钥时只放在 Authorization 头,不放在 URL 查询串。 - 挂载一个
@deepseek-ai/dsh-mcp-client子实例,对外暴露远端工具。 - 单次调用 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。推荐流程:
- 若尚未知道 Context7 id,先让智能体调用
mcp__context7__resolve-library-id(实际前缀取决于serverName配置)。 - 再调用
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 客户端已占用serverNamecontext7。 - 返回 429:匿名限流;配置
CONTEXT7_API_KEY后等待重连。 serverName冲突:在 config 中改用其他serverName,工具对外名称会随之改变。
结尾¶
dsh-context7-mcp 把 Context7 托管文档能力以标准 MCP 工具形态接入 DSH,适合在智能体工作流里按需查库文档。更多元数据与安装入口见社区目录与仓库: