dev-manager-tauri/.blueprint/modules/mcp-single-server.md
lanrtop 138a06aa17
All checks were successful
Push & PR Check / check (push) Successful in 48s
docs(blueprint): 登记 mcp-single-server concept 模块——组级挂载收敛为单一全局服务器
动机:MCP 客户端配置成本随产品组数线性增长(12 组 × 28 工具),
与飞轮'项目越多越强'方向相反;实测组级挂载无隔离价值(任意组
服务器可操作任意项目)。单一服务器后 liangjing.json 只需
project_id,group_id 同步问题从根上消失。L 级,待 /architect。
2026-07-06 19:04:04 +09:00

29 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# MCP 单一服务器化
将组级挂载的 `lian-jing-{group_id}`(每产品组一个 MCP 服务器)收敛为单一全局 `lian-jing` 服务器。
## 为什么
- **摩擦随项目数复利增长,与飞轮方向相反**:当前每新增一个产品组 = 多一次 `claude mcp add` + 多一个授权单元 + 每个会话多一份重复工具清单(现状 12 个组 × 28 工具 ≈ 300+ 工具注册)。炼境的目标是"管理项目越多 → agent 辅助越强",客户端配置成本必须是 O(1)。
- **组级挂载没有真正的隔离价值**2026-07-06 实测,任意组的服务器可对任意项目执行 `inject_mcp`(工具全部显式传 `project_id`),组这一层只是命名空间,不是权限边界。
- **消除 group_id 身份卡的存在必要**:单一服务器后 `liangjing.json` 只需 `project_id`group_id 缺失/过期/移组同步这一整类问题从根上消失(而非修复)。
## 改造范围(侦察结论,待 /architect 细化)
- `mcp_server.rs``/mcp/group/{group_id}` 路由 → 新增全局 `/mcp` 路由;旧路由保留一段过渡期
- `mcp_tools.rs`:工具已全部显式传 `project_id`,改动小;`list_group_projects` 等组上下文工具改为显式传参或从 project 反查 `project_group_map`
- `mcp_inject.rs`settings.json 注入条目 + `claude mcp add` 收敛为单个 `lian-jing``liangjing.json` 去掉 group_id 依赖
- **存量迁移**:清理 ~/.claude.json 中 12 个旧 `lian-jing-*` 注册;已注入项目 settings.json 批量刷新(复用 `reinject_all_mcp` 机制)
- 接入包模板 / `docs/ai-context/git-workflow.md``lian-jing-{group_id}` 引用同步改
- 用户全局 `~/.claude/CLAUDE.md` 炼境按钮规则段(引用 `lian-jing-{group_id}`)需同步
## 风险
- 迁移期新旧服务器并存agent 可能困惑——需设计干净的切换顺序(先加新、批量迁移、后删旧)
- webhook 回调路径是否含 group_id 待核实(`mcp_webhook.rs`
- 状态conceptL 级——禁止直接写代码,先 `/architect` 输出设计文档,用户确认后 `/splitter` 拆 S/M 卡
## 任务卡
(待 /architect 设计确认后由 /splitter 生成)