DAG总览 / 组目录 / G25 MCP 协议

dsh-mcp-client · @deepseek-ai/dsh-mcp-client

Layer 6G25L3 其余
目录:ACP 协议API 网关与控制器附件启动与插件管理客户端运行时客户端 UI 包上下文压缩上下文注入核心运行时凭据与授权交付物文档处理实验特性宿主扩展反馈通道文件系统目标与计划工具守卫Hooks 扩展宿主服务交互命令作业调度LLM 适配LSP 集成MCP 协议规划模式Agent 预设代码执行运行时运行时诊断沙箱定时调度SDK 与协议会话核心会话检索设置Shell 执行技能溢出存储SSH 远程执行存储子代理子进程终端待办类型契约框架 vendorWeb 访问Webhook工作流工作区
依赖链 · 上游(该插件依赖的前驱):
依赖链 · 下游(依赖该插件的节点):
同一拓扑层(Layer 6,层次遍历层序):
↑ Layer 5(55 插件)Layer 6↓ Layer 7(16 插件)

插件信息

包名@deepseek-ai/dsh-mcp-client
分组G25 · MCP 协议
拓扑层Layer 6(层次遍历:被依赖方先于依赖方)
源码路径packages/mcp/mcp-client
来源层L3 其余插件(独立于 bundle 装配的扩展/变体/示例)

① 实现逻辑

外部 MCP 服务器桥接:apply() 先解析重连策略、以 WeakMap 按注册作用域预留 serverName 命名空间,再由 startConnection 建立受监督连接并 registerServerContext 发布资源与指令,最后 await ready 以在激活前完成首连与工具同步(src/index.ts:154-203、src/connection.ts:127-409)。syncTools 拉取 tools/list,并以 mcp__<serverName>__<rawName> 公开名注册到 ctx.tools;注册冲突整代回滚(全有或全无)(src/tools.ts:113-162)。transport.ts 按 config 构造 stdio(经 dsh-subprocess 擦洗父环境)或 Streamable HTTP 传输(src/transport.ts:21-46)。连接断开时按有界指数退避重启,超预算则注销工具(src/connection.ts:211-245)。

内部结构动态 DAG(深色主题:橙色=上游依赖 · 绿色=下游依赖 · 棕色=外部seam · 蓝=本插件)
本插件 上游依赖 下游依赖 外部 seam

② 注册/提供(provides)

③ 依赖(depends_on · 上游前驱)

dsh-llmE1+E2
校验当前模型路由声明了图像输入能力
src/tools.ts:21 type ContentBlock + src/tools.ts:358 ctx.get('llm')、src/tools.ts:364 llm.resolveModelInfo
dsh-mcp-resourcesE1+E2
向资源运行时发布本连接的资源请求能力
src/server-context.ts:8 type McpResourceProvider + src/server-context.ts:29 ctx.inject(['mcpResources'])
dsh-scopeE1
按注册作用域隔离 serverName 与 Agent 级命名空间复用
src/index.ts:18 scopeOf
dsh-system-promptE1+E2
把服务端 attributed instructions 写入系统提示段
src/server-context.ts:9 type import + src/server-context.ts:32 inner.systemPrompt.section
dsh-toolsE1+E2
把发现的 MCP 工具注册进 harness 工具运行时
src/index.ts:24 type import + src/index.ts:34 inject 'tools' + src/tools.ts:150 ctx.tools.register

④ 被依赖(dependents · 下游消费者)

dsh-acp
把 ACP 声明的 MCP 服务器挂成 Agent 作用域 MCP 客户端
src/mcp.ts:8 import + src/mcp.ts:32 agentCtx.plugin(McpClient, config)
dsh-experimental-browser-use-stagehand-native
把原生方法适配为 MCP 形状的工具定义
src/index.ts:10 import createMcpToolDefinition + src/index.ts:179 createMcpToolDefinition
dsh-experimental-computer-use-cua-driver-mcp
承载 MCP 连接(发现/执行/重连)并作为子插件生命周期
src/index.ts:10 import * as McpClient + src/index.ts:53 McpClient.Config
dsh-experimental-computer-use-cua-driver-native
把原生工具目录适配为 MCP 形状工具定义
src/index.ts:9 import createMcpToolDefinition + src/index.ts:103 createMcpToolDefinition