dev-manager-tauri/.blueprint/modules/mcp-config-inject.md
lanrtop a41161f7d1
All checks were successful
Push & PR Check / check (push) Successful in 1m4s
feat(mcp): 单一全局 lian-jing 服务器——组级挂载收敛(T1-T3+T5)
T1 服务器层:新增全局 /mcp + /mcp/messages 路由,process_rpc 组上下文
Option 化;旧 /mcp/group/:gid 路由保留过渡,T6 移除。驻军测试 2 条。
T2 工具层:resolve_project_root 按 project_id 直查 project_workspaces,
删除 3 处组归属校验(实测无隔离价值);list_group_projects 改显式传参。
T3 注入层:settings.json 收敛为单 "lian-jing" key(URL /mcp),注入时
清理旧 lian-jing:group-* key;liangjing.json 主动删除 group_id;
启动时一次性迁移(重注入全量 + 清理旧全局注册两种命名格式,标记位防重)。
T5 同步:git-workflow 文档/模板、retro-catchup 技能 Python 兜底、
设置页 URL 展示、mcp-config-inject 模块取代注记。

收益:MCP 客户端配置成本 O(N组)→O(1),授权一次永久生效;
group_id 缺失/过期/移组同步一整类问题从根上消失。
2026-07-06 19:30:01 +09:00

45 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 配置注入
产品组成员变更时,炼境自动向对应项目的 `.claude/settings.json` 注入或移除 MCP 服务器配置,实现热插拔。
> ⚠️ 2026-07-06 起组级 key 方案被 [mcp-single-server](./mcp-single-server.md) 取代:
> 注入 key 收敛为单一 `"lian-jing"`URL `/mcp`),寻址不再依赖 group_id。
> 本文任务卡中的 `lian-jing:group-{group_id}` 描述保留为历史记录。
## 决策记录
- 使用 `lian-jing:group-{group_id}` 命名空间前缀标记炼境写入的 key与用户自有配置严格隔离已被 mcp-single-server 取代)
- 炼境只操作自己命名空间下的 key其余配置永远不动
- 加入/退出操作由炼境 UI 驱动,炼境必然在线,无需异步清理机制
- 注入前做 JSON 有效性校验,文件损坏时不覆盖,在 UI 提示用户
## 任务卡
### ✅ 加入产品组时注入配置
- status: done
- complexity: M
- files: src-tauri/src/mcp_inject.rs, src-tauri/src/commands/groups.rs
- depends: mcp-server
- acceptance:
- 项目加入产品组后,其 win_path 或 wsl_path 对应的 `.claude/settings.json` 被写入以下条目
- key 格式:`lian-jing:group-{group_id}`
- value`{ "type": "http", "url": "http://localhost:{port}/mcp/group/{group_id}" }`
- 文件不存在时自动创建;文件已存在时合并写入,不影响其他 key
- 文件 JSON 损坏时 eprintln 记录,不影响成员关系 DB 写入
### ✅ 退出产品组时清除配置
- status: done
- complexity: S
- files: src-tauri/src/mcp_inject.rs, src-tauri/src/commands/groups.rs
- depends: mcp-config-inject注入
- acceptance:
- 项目退出产品组后,`lian-jing:group-{group_id}` 这一 key 被精确删除
- 其他 key包括其他产品组的 key、用户自有配置完全不受影响
- 在 DB 删除前先执行清除remove_project_mcp 需要 project_workspaces 查路径)
### ✅ 端口变更时重新注入所有配置
- status: done
- complexity: S
- files: src-tauri/src/mcp_inject.rs, src-tauri/src/commands/settings.rs
- acceptance: update_settings 检测到 mcp_port key 变更后自动调用 reinject_all_mcp遍历所有 project_group_map 记录重新写入 settings.json