Skip to content

MCP Client zh

pawaca edited this page Aug 30, 2026 · 1 revision

MCP 客户端

通过 Model Context Protocol 接入外部工具服务器。

无上游专属文档。包:@deepseek-ai/dsh-mcp-client@0.1.1-rc.2

上游提供了什么

dsh-mcp-client 是一个 cordis 插件,将外部 MCP(Model Context Protocol)服务器桥接到 harness 工具系统。它连接 MCP 服务器,发现其工具目录,并将每个工具注册到 ctx.tools——从模型的角度看,外部工具和内置工具完全一样。

  • 协议:基于 @modelcontextprotocol/sdk(官方 MCP TypeScript SDK)。
    • 工具注册:MCP 工具描述通过标准 ctx.tools.register() API 解析和注册。上游 dsh-tools 在其 schema 解析器中显式处理 MCP 工具描述格式。 传输方式:MCP 定义了两种传输:
      • stdio——MCP 服务器作为子进程运行,通过 stdin/stdout 通信。
        • Streamable HTTP(原 HTTP+SSE)——MCP 服务器是远程 HTTP 端点,通过 HTTP 请求和 Server-Sent Events 通信。

Edge 当前状态

未实现。dsh-mcp-client 不在 Edge 的依赖中,未安装任何 MCP 相关插件。外部工具服务器不可访问。

Cloudflare 启用路径

传输 平台 Plan 可行性
Streamable HTTP Workers fetch()——原生 HTTP 客户端 免费 高——无平台障碍
stdio Cloudflare Containers——启动 MCP 服务器进程 付费 中——需要 Container 集成
**Streamable HTTP 是 Edge 的自然选择。**许多 MCP 服务器已提供 HTTP 端点(数据库连接器、API 包装器、SaaS 集成)。Workers 可以直接 fetch() 这些端点。无需子进程、无需 Containers——只是从 DO 到外部 MCP 服务器的 HTTP 调用。

stdio 传输需要 Cloudflare Containers 来启动 MCP 服务器进程。这是更重的路径——仅在 MCP 服务器不提供 HTTP 端点时需要。

安全考量

MCP 服务器是外部的——它们在 Edge 控制范围之外执行任意工具逻辑。这涉及:

  • 审批——MCP 工具调用可能需要用户在执行前确认(当前未实现,见审批 wiki)。
    • 权限预设——用户可能希望允许/拒绝特定 MCP 服务器或工具(当前未实现)。
    • 凭据安全——MCP 服务器 URL 和认证 token 必须遵循与 DEEPSEEK_API_KEY 相同的凭据安全规则。

架构总结

组件 分类 状态
dsh-mcp-client 插件 复用 未安装——待评估
HTTP 传输 复用 Workers fetch()——就绪
stdio 传输 替换 需要 Containers(付费)
工具注册 复用 标准 ctx.tools API

关键观察:MCP 集成是插件安装 + 传输配置——不是架构变更。上游插件通过与 bash、file、goal 工具相同的 ctx.tools API 注册 MCP 工具。模型不知道也不关心工具来自 MCP 还是内置插件。主要决策是支持哪种传输以及如何管理 MCP 服务器配置(环境变量、设置 UI 或 per-workspace 配置)。

TODO

**评估 dsh-mcp-client 的 Streamable HTTP 传输安装。**检查 inject 要求。插件可能需要传输提供者——评估上游 HTTP 传输是否在 Workers 中工作或需要 Edge 适配器。MCP 服务器配置(URL、认证)可使用现有的 Settings 或 Credential provider 接缝。免费 plan 可用。

English

中文

Clone this wiki locally