迭代18归档: 需求 R-020 移入已完成(验收通过)+ 迭代复盘 + 索引更新
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
# 需求:R-020 QMT Bridge MCP 能力内建(神之一手自注册 MCP,去三方插件依赖)
|
||||
|
||||
> 登记:2026-09-08 | 来源:老师指令(2026-09-08 新需求)| 需求状态:**已完成**
|
||||
> 归档日期:2026-09-08 | 实现迭代:18-QMTBridgeMCP内建(验收通过 2026-09-08)
|
||||
> 讨论记录索引:R-020.md 正文(Q1-Q6 逐项拍板 + 老师澄清:移除对象=三方 dsh-skill-mcp-panel、官方 dsh-mcp-client 可依赖);实现细节见 docs/04-迭代记录/18-QMTBridgeMCP内建/(含 迭代复盘.md)
|
||||
> 归档路径:本文件已移入 05-需求池/已完成/
|
||||
|
||||
> 迭代状态标记:已定稿(2026-09-08)→ 已实现(迭代 18)→ **已归档(验收通过 2026-09-08)**
|
||||
|
||||
## 需求描述(老师原始诉求)
|
||||
|
||||
> **老师原话(2026-09-08)**:当前我们给 DSH 配置了一个 MCP,用于连接 QMT bridge,这个配置是在另一个插件中配置的(三方插件 dsh-skill-mcp-panel 在 profile cordis.patch.yml 受管块里插入 QMT_Bridge_MCP 实例——管理 UI + 写宿主 patch;真正连接的是 DSH 官方 dsh-mcp-client)。我希望可以在神之一手插件的配置 tab 中,添加了 QMTBridge 的配置后,可以**自动检查 MCP 连接信息**,这样我们**不需要依赖三方插件来加入 MCP 的能力**。
|
||||
>
|
||||
> **2026-09-08 老师澄清(指令修正)**:不要的是**第三方 dsh-skill-mcp-panel**(设置菜单「技能 / MCP」+ 它写的宿主 patch 受管块);**依赖 DSH 官方 @deepseek-ai/dsh-mcp-client 是允许的**。实现 = 神之一手 apply 内动态挂载官方 dsh-mcp-client(参照 mcp_router 实证),**移除三方 dsh-skill-mcp-panel 及其受管块**。
|
||||
|
||||
## 定稿语义
|
||||
|
||||
- **MCP 能力内建**:神之一手在自己的 apply 内按 QMT 连接配置动态挂载 DSH 官方 @deepseek-ai/dsh-mcp-client(插件内管理:挂载/切换/卸载/状态都由神之一手控制),QMT Bridge 的 MCP 工具由神之一手自己接入;不再依赖三方 dsh-skill-mcp-panel 的面板与宿主 patch 受管块;
|
||||
- **REST 直连不变**(技术约束-003):插件 UI/tab 数据仍走 REST,MCP 是插件自带的 Agent 侧能力;
|
||||
- **MCP url 自动派生**:激活连接 baseUrl + /mcp,零新增配置字段。
|
||||
|
||||
## 讨论记录(2026-09-08,第一轮,Q1-Q6 老师逐项拍板 → 定稿)
|
||||
|
||||
| # | 问题 | 结论(老师拍板) |
|
||||
|---|---|---|
|
||||
| Q1 | MCP 客户端挂载粒度 | **只使用当前激活的那个连接**:仅激活连接挂 1 个 dsh-mcp-client 实例(serverName 固定 QMT_Bridge_MCP,切换激活即热切换 MCP url,工具名 mcp__QMT_Bridge_MCP__* 保持稳定);不逐连接各挂实例 |
|
||||
| Q2 | 现有三方条目处置 | **现在的移除(2026-09-08 老师澄清:移除对象 = 第三方 dsh-skill-mcp-panel)**:① 卸载/停用三方 dsh-skill-mcp-panel(其「技能 / MCP」设置菜单与宿主 patch 管理职责一并移除);② 删除 cordis.patch.yml 中其受管块(QMT_Bridge_MCP 不再由三方写入);**QMT 的 MCP 连接通过神之一手插件自己管理**——插件 apply 内动态挂载**官方 @deepseek-ai/dsh-mcp-client**(依赖官方库、管理在我们插件内),含连接 CRUD/激活切换的全生命周期联动 |
|
||||
| Q3 | MCP url 与字段 | **自动来**:默认派生 baseUrl + /mcp,不需要每连接 mcpUrl 覆盖字段 |
|
||||
| Q4 | 「自动检查 MCP 连接信息」口径 | **两处状态出口**:① 设置页「QMT 连接配置」连接卡片可检查(手动触发);② **对话窗口顶端状态指示灯区新增一个 MCP 状态**(与现有持仓/盘口同步指示灯并列) |
|
||||
| Q5 | 失败与重连语义 | **采纳建议**:对齐 failOnStartupError:false + reconnect(初始连不上不拒绝插件激活;连接丢失自动指数退避重连;期间保留断开状态不崩插件) |
|
||||
| Q6 | 范围确认 | **不做通用 MCP 管理**,只做 QMT 的 MCP 内建;通用任意 MCP 服务器管理面板不做(该域属 mcp-router / dsh-skill-mcp-panel,另议) |
|
||||
|
||||
## 定稿边界
|
||||
|
||||
**做**:
|
||||
1. 神之一手 apply 内动态挂载/卸载 dsh-mcp-client(唯一实例,serverName=QMT_Bridge_MCP,url=激活连接 baseUrl+/mcp);
|
||||
2. 生命周期联动:启动(激活默认/上次连接)→ 挂载;添加/编辑/删除/激活连接 → MCP 挂/切/卸(对齐现有 qmt-connections API 热切换编排);激活连接被删自动切默认并重挂;
|
||||
3. MCP 状态出口 ×2:设置页连接卡片 MCP 检查/状态;对话窗口顶端状态指示灯区新增 MCP 状态(三态风格对齐产品约束-012 指示灯体系);
|
||||
4. 移除三方 dsh-skill-mcp-panel:卸载其插件 + 移除宿主 cordis.patch.yml 受管块(Q2;属宿主配置变更,按 editing-cordis-compositions 技能流程操作 + 老师确认);
|
||||
5. 失败/重连语义按 Q5(failOnStartupError:false + reconnect)。
|
||||
|
||||
**不做(本期)**:通用 MCP 服务器管理面板(Q6,含自建「任意 MCP 管理 UI」——Q6 明确不做);插件 UI/tab 数据源改走 MCP(技术约束-003 REST 直连不变);多 serverName 并存;自研 MCP 协议客户端(老师定:依赖官方 dsh-mcp-client 即可,不重造轮子)。
|
||||
|
||||
## 计划阶段待办(定稿后第一件事:技术可行性调研)
|
||||
|
||||
1. **依赖解析实证**:one-divine-lot 运行时能否 import(@deepseek-ai/dsh-mcp-client)(宿主 CLI 依赖树 / profile node_modules 解析路径核实,对照 mcp_router 的 peerDependencies 声明与日志实证;确认后在 package.json 补 peer 依赖);
|
||||
2. **动态挂载生命周期设计**:add/update/remove/activate 连接 → MCP 实例 挂/切/卸 编排(对齐 qmt-connections API 现有热切换逻辑,MCP url 随激活 baseUrl);
|
||||
3. **MCP 状态查询与展示**:服务端 MCP 状态端点(已连接/断开 + 工具数 + 错误/重连信息)+ 设置页卡片检查 + 会话头部指示灯新增 MCP 状态(对齐产品约束-012/UI约束的指示灯体系);
|
||||
4. **宿主受管块迁移**:cordis.patch.yml 移除 QMT_Bridge_MCP 块的精确操作步骤(保留块外内容逐字节不动);
|
||||
5. 前端连接卡片表单是否需提示「MCP 将自动随激活连接启用」(Q4 落点 UI 文案)。
|
||||
|
||||
## 关联
|
||||
|
||||
- 终极目标:目标-001(DSH 插件形态·复用宿主 MCP 能力)、目标-008(真实交易系统接入)
|
||||
- 既有需求:R-004(QMT 连接配置,本需求数据基础:settings.qmtConnections + 激活/默认语义 + 热切换编排);R-015(会话头部指示灯体系,MCP 状态灯并入同一区)
|
||||
- 设计约束:技术约束-003(REST 直连不变)、技术约束-008(连接配置存储/热切换);定稿后需补新约束条目(技术约束:「插件内建 MCP 客户端注册规范」;产品约束:「MCP 状态出口(设置卡片 + 会话头部指示灯)」)
|
||||
- 参考实现:mcp_router(ds-plugins/mcp_router)——动态 ctx.plugin(dsh-mcp-client) 实证
|
||||
|
||||
## 验收
|
||||
|
||||
**(立项后写入迭代验收标准.md)**
|
||||
Reference in New Issue
Block a user