fix: 补全 MCP 快速选择并重新打包

This commit is contained in:
shiyue
2026-08-21 11:23:32 +08:00
parent 19c1601351
commit d234189a86
9 changed files with 292 additions and 13 deletions

View File

@@ -0,0 +1,16 @@
# MCP 快速选择调查发现
## 待确认
- 快速选择候选的构建入口和数据源。
- 当前会话 MCP 配置在前端/后端的传递路径。
- 是否存在只硬编码 ccweb 的过滤或分组逻辑。
- 现有测试覆盖及缺失断言。
## 已确认
- `server.js:listRuntimeMcpServerConfigs` 原先只读取当前 cwd 最近的项目 `.codex/config.toml`,并注入 ccweb它不会看到 Codex App 由用户级配置、插件或动态重载得到的运行时 MCP。
- `listComposerMcpItems` 原先只为非 ccweb server 创建 `itemType: 'server'` 候选,没有 MCP tool 级候选ccweb 工具则来自静态 `CCWEB_MCP_TOOLS`
- `COMPOSER_SUGGESTION_LIMIT` 原为 20会在多 MCP 场景静默截断候选。
- 本机 Codex app-server schema 提供 `mcpServerStatus/list`,参数含 `threadId/detail/limit/cursor`,返回 `data[].tools`;这正是当前线程真实 MCP inventory 的权威来源。
- 已实现 per-thread 短缓存、分页读取、运行时 server/tool 候选合并;工具选择仍沿用通用 `mcp:server/tool` mention 插入,不执行 MCP 或打开参数表单。

View File

@@ -0,0 +1,8 @@
# MCP 快速选择进度
## 日志
- 2026-08-21建立本次 scoped 计划,避免覆盖仓库已有的 hooks 验证计划。
- 2026-08-21完成 codebase-memory 定位,确认候选只读项目配置、非 ccweb 不展开工具、总数限制为 20。
- 2026-08-21验证本机 Codex app-server `mcpServerStatus/list` schema开始接入当前线程 inventory、缓存和工具级 mention。
- 2026-08-21修改 `server.js`、mock app-server 与回归测试;完成 Node 语法检查。

View File

@@ -0,0 +1,29 @@
# 补全 MCP 快速选择计划
## 目标
让输入框 `/` 快速选择展示当前会话实际可用的全部 MCP server/tool保留 `$` 仅展示 skill、`@` 仅展示文件和 prompt 的语义边界,并补齐回归验证。
## 步骤
- [ ] 初始化调查计划与 TODO CSV
- [ ] 使用 codebase-memory 定位 MCP 候选构建和 composer 触发链路
- [ ] 对照运行时 MCP 配置确认完整候选来源并排除历史/静态推断
- [ ] 编写回归测试覆盖当前线程级 MCP、三种触发符互斥和 mention 插入语义
- [ ] 修复候选聚合逻辑接入当前会话 MCP
- [ ] 修复 mention 插入与去重排序展示
- [ ] 运行单测、静态检查和浏览器/组件回归并按需修复
- [ ] 清理临时计划文件并汇总
## 约束
- 遵守 composer 基线MCP 只在 `/` 中作为普通 tool mention不打开参数表单或直接执行。
- `/` 必须只展示当前会话线程级配置实际可用的全部 MCP server/tool`$` 只展示 skill`@` 只展示文件和 prompt。
- 回归必须证明候选不从历史消息、运行态工具名或静态白名单反推,并验证选择 MCP 只插入 mention 文本。
- 优先使用 codebase-memory-mcp`rg` 只做行号和配置补充校验。
- 保留工作区已有的 `config/cross-conversation-replies.json` 改动及其他用户文件。
## 错误记录
| 错误 | 尝试 | 处理 |
| --- | --- | --- |