dsh-context7-mcp
Verifieddsh-context7-mcp · v0.1.0 · MIT
Connect Context7's remote MCP server to DeepSeek Harness. Resolve a library and query current docs; the API key stays in the CONTEXT7_API_KEY credential.
Install
dsh plugin add dsh-context7-mcp Confirm the layer applied with dsh --profile default --dump-config — see the install guide.
Source
Published to npm without a public repository. Inspect the package contents before installing.
Tags
Readme
dsh-context7-mcp
DeepSeek Harness 的第三方社区插件,不是 DeepSeek 或 Context7 的官方产品。MIT。
English | 中文
接入 Context7 托管的 MCP 服务器,并注册该服务器公布的工具。发布时这些工具是 resolve-library-id 和 query-docs。模型看到的名字是 mcp__context7__*。
What it does
助手可以直接查询当前版本的库文档,不需要本机再跑一个 npx 进程。插件把 Streamable HTTP 连接交给自带的 @deepseek-ai/dsh-mcp-client。
Context7 允许匿名调用,限额较低。更高限额请到 context7.com/dashboard 创建 Key,并保存为 CONTEXT7_API_KEY 凭据。Key 不会写入 cordis.patch.yml。保存或清空凭据后会重新连接。
How it works
- 用
ctx.credentials解析apiKeyEnv(默认CONTEXT7_API_KEY)。凭据库优先于进程环境变量。空值不是错误。 - 请求
https://mcp.context7.com/mcp。有 Key 时只放在Authorization: Bearer,不会放进 URL。 - 挂一个
@deepseek-ai/dsh-mcp-client子插件。工具名、参数和结果都来自服务器,本包不重写这些工具。 - 同名凭据发出
credentials/reference-updated时,拆掉该子插件再连一次。
单次工具调用超时 60 秒。连接断开后沿用 MCP 客户端自己的重连策略。
提问方式与 Context7 一致:给出库名,或直接给出 /vercel/next.js 这样的 Context7 id。还不知道 id 时先调 resolve-library-id,再用 query-docs。
Install
在本仓库中:
dsh plugin --profile web add D:\tools\dsh-plugins\dsh-context7-mcp
包发布之后:
dsh plugin --profile web add dsh-context7-mcp
包里声明了 dsh.bundle.patch,dsh plugin add 会把 bundle 写进 profile。如果当前会话里还看不到工具,重启 DeepSeek Harness。
CONTEXT7_API_KEY 可选。可以在这个插件的设置里填写,也可以在启动 DeepSeek Harness 的环境里导出同名变量。
Configuration
| 字段 | 默认值 | 含义 |
|---|---|---|
apiKeyEnv |
CONTEXT7_API_KEY |
凭据引用。值不会留在这份配置里。为空则匿名访问。 |
url |
https://mcp.context7.com/mcp |
远程 MCP 地址。只允许 http 和 https。不能带用户信息,查询串里也不能放 API Key。 |
serverName |
context7 |
工具名前缀:mcp__<serverName>__<tool>。必须匹配 [A-Za-z0-9_-]{1,32},并且在同一作用域里唯一。 |
Profile 覆盖示例。后写的 patch 会替换整个 config,仍需要的字段要一并写上:
- id: context7-mcp
config:
apiKeyEnv: CONTEXT7_API_KEY
url: https://mcp.context7.com/mcp
serverName: context7
Cordis 行 id 是 context7-mcp。包名是 dsh-context7-mcp。
Security
- 保存的 Key 只发给配置的地址,放在
Authorization头里。 - Key 不会写入
cordis.patch.yml,也不会出现在本插件自己的日志里。客户端错误如果带上了解析后的 Key,会被打码。 - 库名和文档问题会发给 Context7。
- 插件不启动子进程,也不直接读取凭据文件。
详见 SECURITY.md。
Compatibility
| 项目 | 值 |
|---|---|
| dsh | >=0.2.1-rc.2 <0.3.0-0 |
| Node | >=22.19.0 |
| 服务器 | https://mcp.context7.com/mcp |
| 依赖 | credentials、tools,以及自带的 @deepseek-ai/dsh-mcp-client |
展示信息在 locale/en.json、locale/zh.json 和 icon.svg。没有 Web UI,也不需要构建。
Uninstall
dsh plugin --profile <name> remove dsh-context7-mcp
卸掉插件会断开 MCP 并注销工具,不会删除 CONTEXT7_API_KEY 凭据。这个包自己不在磁盘上另存别的东西。
Troubleshooting
看不到 mcp__context7__* 工具。 服务器拒绝了连接,或者另一个 MCP 客户端已经占用了 serverName context7。插件日志会说明是哪一种,并且不会打印 Key。
调用返回 429。 匿名限额用完了。保存 CONTEXT7_API_KEY,等待自动重连。
serverName 已被占用。 在配置里换一个 serverName。公开的工具名也会跟着变。
调用超时。 0.1.0 里单次调用上限是 60 秒,不能通过配置修改。
Development
node --test test/*.test.js
node --check src/index.js && node --check src/connection.js
npm run check:pack
src/connection.js 纯函数:地址、请求头和打码(有单元测试,不访问网络)
src/index.js Cordis 插件:解析凭据并挂载 dsh-mcp-client
locale/ 展示文案(en、zh)
test/ node:test,含打包不变量