-
Notifications
You must be signed in to change notification settings - Fork 1
MCP Client zh
通过 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 通信。
-
stdio——MCP 服务器作为子进程运行,通过 stdin/stdout 通信。
-
工具注册:MCP 工具描述通过标准
未实现。dsh-mcp-client 不在 Edge 的依赖中,未安装任何 MCP 相关插件。外部工具服务器不可访问。
| 传输 | 平台 | 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.toolsAPI 注册 MCP 工具。模型不知道也不关心工具来自 MCP 还是内置插件。主要决策是支持哪种传输以及如何管理 MCP 服务器配置(环境变量、设置 UI 或 per-workspace 配置)。
**评估 dsh-mcp-client 的 Streamable HTTP 传输安装。**检查
inject要求。插件可能需要传输提供者——评估上游 HTTP 传输是否在 Workers 中工作或需要 Edge 适配器。MCP 服务器配置(URL、认证)可使用现有的 Settings 或 Credential provider 接缝。免费 plan 可用。
- Home
- Architecture
- Core & Scope
- Session & Persistence
- Model & Context
-
Execution & Tools
- Tools
- Bash
- Subprocess 🚫
- PTY Session 🚫
- Background Jobs 🚫
- Filesystem
- LSP Navigation 🚫
- Code Runtime 🚫
-
Web Access
⚠️ -
Skills
⚠️ - Workflow 🚫
- Subagent 🚫
-
Policy & Interaction
- Goal
- Approval 🚫
- Permission Presets 🚫
-
Sandbox
⚠️ - Plan Mode 🚫
- User Interaction 🚫
- Commands 🚫
- Schedule 🚫
- Message Feedback 🚫
- Platform & Access
- Development
- 首页
- 架构
- 核心与作用域
- 会话与持久化
- 模型与上下文
- 执行与工具
- 策略与交互
- 平台与接入
- 开发