SuperClaude Framework /sc:select-tool 命令深度解析:基于复杂度评分的智能 MCP 工具路由
【免费下载链接】SuperClaude_FrameworkA configuration framework that enhances Claude Code with specialized commands, cognitive personas, and development methodologies.项目地址: https://gitcode.com/gh_mirrors/su/SuperClaude_Framework
导读
/sc:select-tool是 SuperClaude Framework(一个增强 Claude Code 的配置框架)中负责MCP 工具智能选择的特殊命令。它的核心价值在于:当开发操作同时可能由多个 MCP 服务器(Serena 与 Morphllm)完成时,通过多维复杂度评分、能力匹配矩阵与阈值路由规则,自动选出性能与准确率最优的工具组合。读完本文,你将掌握 select-tool 的触发条件、评分流程、决策矩阵、降级策略,以及它如何被 refactor、edit、implement、improve 等上层命令自动复用,并能在真实场景中自行判断"何时该用 Serena、何时该用 Morphllm"。
命令定位与设计意图
/sc:select-tool的命令元数据定义在 src/superclaude/commands/select-tool.md 的 YAML frontmatter 中:
| 元数据字段 | 值 | 含义 |
|---|---|---|
name | select-tool | 命令名,通过/sc:前缀调用 |
description | Intelligent MCP tool selection based on complexity scoring and operation analysis | 基于复杂度评分与操作分析的工具选择 |
category | special | 特殊类别命令(元系统决策类) |
complexity | high | 命令自身复杂度高 |
mcp-servers | [serena, morphllm] | 参与路由决策的两个核心 MCP |
personas | [] | 不需要激活任何认知角色 |
从类别与复杂度字段可以看出,这是一个元系统决策命令——它不直接操作文件,而是决定"让哪个工具去操作文件"。这种设计让工具路由逻辑可以独立维护、单独测试,并被其他工作流命令复用。
命令的调用形态为:
/sc:select-tool [operation] [--analyze] [--explain][operation]:待分析的目标操作描述(自然语言即可);--analyze:输出复杂度评分与匹配分析过程;--explain:解释最终选择依据(rationale)。
触发场景
根据文档,以下四类场景应激活该命令:
- 需要在 Serena 与 Morphllm 之间做最优工具选择的操作——例如同时涉及语义修改与批量文本替换的混合任务;
- 需要复杂度分析与能力匹配的元系统决策——当操作边界模糊、无法凭直觉判断时;
- 需要权衡性能与准确率的工具路由决策——快速批量修改 vs 高精度符号操作是典型对立需求;
- 能从智能工具能力评估中获益的操作——尤其是多文件、多语言的大型变更。
结合 src/superclaude/mcp/MCP_Serena.md 与 src/superclaude/mcp/MCP_Morphllm.md 中的能力描述,可以归纳出两个工具的本质分工:Serena 负责"理解代码",Morphllm 负责"批量改写"。
五步行为流程
select-tool 的内部决策流程分为五个阶段:
- Parse(解析):分析操作类型、作用范围、文件数量与复杂度指标。这里的"复杂度指标"包括操作涉及的符号数量、跨文件依赖、语言与框架要求等(参见 MCP_Serena.md 中"多语言项目需要 LSP 集成""大代码库 >50 文件"等判据);
- Score(评分):对各项操作因子应用多维复杂度评分,生成 0~1 之间的复杂度分数;
- Match(匹配):将操作需求与 Serena、Morphllm 的能力画像逐项对比;
- Select(选择):基于评分矩阵与性能要求(速度 vs 准确率)选出最优工具;
- Validate(验证):核实选择准确性,并给出置信度指标。
关键行为要点:
- 复杂度评分:综合考虑文件数量、操作类型、语言与框架要求;
- 性能评估:在速度与准确率之间做显式权衡,避免"为了快而牺牲精度"或"为了精度而拖慢批量任务";
- 决策逻辑矩阵:包含直接映射与基于阈值的路由规则(详见下文"关键决策模式");
- 能力匹配:Serena 侧重语义操作(semantic operations),Morphllm 侧重模式操作(pattern operations)。
MCP 集成:两条能力路线的分工
select-tool 的路由对象是仓库中两个已配置好的 MCP 服务器,其启动配置分别位于:
- src/superclaude/mcp/configs/serena.json:通过
uvx --from git+https://github.com/oraios/serena serena start-mcp-server --context ide-assistant启动,以ide-assistant上下文模式运行; - src/superclaude/mcp/configs/morphllm.json:通过
npx @morph-llm/morph-fast-apply /home/启动,并支持MORPH_API_KEY环境变量与ALL_TOOLS=true配置。
Serena:语义操作与项目记忆
Serena 的定位是语义代码理解,核心能力包括:
- 符号级操作:函数/类重命名、提取、移动,且带依赖追踪;
- 项目级代码导航与探索(LSP 集成);
- 会话生命周期管理:
/sc:load、/sc:save、项目激活; - 内存驱动开发工作流与跨会话学习;
- 大代码库(>50 文件、复杂架构)的架构理解。
文档中给出的判断示例:"rename getUserData function everywhere" → Serena,因为这是需要依赖追踪的符号操作。
Morphllm:模式编辑与批量转换
Morphllm 的定位是基于模式的代码编辑引擎,核心能力包括:
- 多文件编辑中保持一致模式(框架升级、风格指南执行、代码清理);
- 跨文件批量文本替换;
- 自然语言编辑指令 + 明确作用域;
- 令牌优化:Fast Apply 场景下效率提升 30–50%。
文档中给出的判断示例:"update all console.log to logger" → Morphllm,因为这是纯模式替换、速度优先。
协作而非对立
两个 MCP 的官方推荐协作方式是:Serena 分析语义上下文 → Morphllm 执行精确编辑;Sequential MCP 也可以参与其中,先制定编辑策略再由 Morphllm 系统化应用(见 MCP_Serena.md 与 MCP_Morphllm.md 的 "Works Best With" 小节)。select-tool 正是这种协作编排的自动决策器。
工具协调:选择前后的配套能力
select-tool 并非孤军作战,它与 Claude Code 原生工具及系统命令协同:
get_current_config:系统配置分析,用于评估当前可用的工具能力(选择前确认"有哪些工具可用");execute_sketched_edit:操作测试与校验,用于验证选择准确性(选择后试运行编辑草稿);- Read / Grep:操作上下文分析,识别复杂度因子(如统计文件数量、查找符号引用);
- 集成点:refactor、edit、implement、improve 等命令会自动复用这套选择逻辑。
例如 src/superclaude/commands/implement.md 中,实现流程会根据技术栈自动激活不同 MCP(Context7 提供框架文档、Magic 生成 UI 组件、Sequential 编排多步实现),而 src/superclaude/commands/improve.md 的改进流程同样依赖工具协调完成安全重构——这些上层命令在遇到"符号 vs 模式"的分叉时,底层就会走到 select-tool 的决策逻辑上。
关键决策模式
select-tool 的核心是一套可解释、可验证的决策规则:
1. 直接映射(Direct Mapping)
| 操作类型 | 路由目标 | 依据 |
|---|---|---|
| 符号操作(重命名、提取、移动) | Serena | 需要依赖追踪与 LSP 语义理解 |
| 模式编辑(批量替换、风格执行) | Morphllm | 模式匹配与批量操作能力 |
| 内存操作(保存上下文、发现记录) | Serena | 项目上下文与跨会话持久化 |
2. 复杂度阈值(Complexity Thresholds)
Score > 0.6 → Serena(语义优先) Score < 0.4 → Morphllm(模式/速度优先) 0.4 ~ 0.6 → 基于功能特征判断(feature-based)该阈值的合理性在能力文档中得到印证:Serena 适合">50 文件、复杂架构"的代码库(MCP_Serena.md),而 Morphllm 适合"<10 文件、简单到中等复杂度的直接变换"(MCP_Morphllm.md)。中间地带则进一步看操作特征:以语义为主选 Serena,以模式为主选 Morphllm。
3. 性能权衡(Performance Trade-offs)
- 速度要求→ Morphllm:批量场景下 Fast Apply 的令牌效率优势(30–50%)直接转化为执行速度;
- 准确率要求→ Serena:符号操作依赖追踪能避免漏改、误改。
4. 降级策略(Fallback Strategy)
Serena → Morphllm → 原生工具(Native tools)当目标 MCP 不可用(未安装、启动失败、API Key 缺失等)时,沿此链路逐级降级,最终退回 Claude Code 的原生 Read/Edit 工具,保证操作始终可执行。Morphllm 配置中的MORPH_API_KEY环境变量(morphllm.json)为空字符串即为典型的"配置存在但待填充"状态,此时降级策略就尤为重要。
实战示例
示例一:跨 10 个文件的复杂重构
/sc:select-tool "rename function across 10 files" --analyze # Analysis: High complexity (multi-file, symbol operations) # Selection: Serena MCP (LSP capabilities, semantic understanding)解析阶段识别出"多文件 + 符号操作"两个高复杂度因子;评分阶段复杂度高于 0.6;匹配阶段命中 Serena 的 LSP 能力画像(参见 MCP_Serena.md 中"重命名函数需要依赖追踪"示例)。
示例二:基于模式的批量编辑
/sc:select-tool "update console.log to logger.info across project" --explain # Analysis: Pattern-based transformation, speed priority # Selection: Morphllm MCP (pattern matching, bulk operations)操作被识别为纯模式替换,属于 <0.4 低复杂度区间,且速度优先——Morphllm 的批量替换与令牌压缩能力(30–50% 效率提升,见 MCP_Morphllm.md)是明确的最优解。
示例三:内存管理操作
/sc:select-tool "save project context and discoveries" # Direct mapping: Memory operations → Serena MCP # Rationale: Project context and cross-session persistence此例未落入评分区间,而是直接命中直接映射规则:内存/会话操作固定路由到 Serena,因为只有它具备跨会话持久化与项目记忆能力(对应/sc:save与/sc:load的会话生命周期管理,见 MCP_Serena.md)。
边界约束
会做的(Will)
- 分析操作并提供 Serena 与 Morphllm 之间的最优工具选择;
- 基于文件数量、操作类型与需求应用复杂度评分;
- 提供亚 100ms 决策时间与>95% 选择准确率的性能保证。
注意:上述 "sub-100ms decision time" 与 ">95% selection accuracy" 是文档中声明的设计目标(见 select-tool.md 的 Boundaries 小节),属于命令规格承诺而非仓库实测数据,实际效果取决于运行环境。
不会做的(Will Not)
- 不覆盖用户的显式工具指定:当用户已明确表达工具偏好时,尊重用户选择而非强行路由;
- 不做无依据选择:没有经过复杂度分析与能力匹配,就不输出选择结论;
- 不为便利牺牲性能:不允许为了操作上的省事而违背性能要求(例如为了省事把高准确率需求丢给 Morphllm)。
与框架其他能力的联动
select-tool 的价值在框架层面进一步放大:
- 它是 src/superclaude/commands/sc.md 所定义的
/sc:命令命名空间中的一员,所有命令统一通过/sc:command [args...]形态调用; - 安装方式与其他命令一致:运行
superclaude install安装/更新命令后,重启 Claude Code 即可生效(见 sc.md 底部的安装提示); - 与 implement(implement.md)、improve(improve.md)等流程命令的"自动选择逻辑"集成,使工具路由成为开发工作流的隐形基础设施——开发者无需每次手动判断该用哪个 MCP,交给评分矩阵即可。
小结
/sc:select-tool将"工具选择"这一元决策从开发者的心智负担中剥离,固化为可解释、可测试、可降级的规则系统:Parse → Score → Match → Select → Validate五步流程保证决策可追踪;直接映射、复杂度阈值、性能权衡与降级链路四条规则保证决策可预测;Serena(语义/记忆)与 Morphllm(模式/速度)的分工协作保证决策可用。当你面对"符号操作 vs 模式编辑"或"准确率 vs 速度"的抉择时,用/sc:select-tool "你的操作" --explain即可获得带依据的工具路由建议。
【免费下载链接】SuperClaude_FrameworkA configuration framework that enhances Claude Code with specialized commands, cognitive personas, and development methodologies.项目地址: https://gitcode.com/gh_mirrors/su/SuperClaude_Framework
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考