用途
mcp-repomix 是一个 MCP 技能,通过配置在 .vscode/mcp.json 中名为 repomix 的 MCP 服务器,将整个代码库打包成整合文件,以便进行 AI 分析、搜索文件内容并理解项目结构。它主要用于在大型重构或架构变更前收集完整的代码库上下文。
主要能力
该技能提供以下工具:
- pack_codebase:将本地目录打包成整合文件
- pack_remote_repository:克隆并打包 GitHub 仓库
- attach_packed_output:加载已有的打包输出以供分析
- read_repomix_output:读取打包输出中的指定行
- grep_repomix_output:在打包输出中搜索模式
- generate_skill:从代码库创建 Claude Agent Skill
输出格式支持:
- XML:使用 <file> 标签的结构化格式,适合精确解析
- Markdown:带代码块的人类可读格式,适合审阅
- JSON:机器可读的键值对
- Plain:带分隔符的简单文本
使用方式
前置条件:确保 .vscode/mcp.json 包含名为 repomix 的服务器条目。
操作规则:
- 使用 pack_codebase 创建整合的仓库快照以供分析
- 使用 grep_repomix_output 在打包输出中搜索
- 使用 attach_packed_output 加载已有的 Repomix 输出文件
- 在重大重构前优先使用 Repomix 收集完整代码库上下文
- 使用 XML 或 Markdown 输出样式以获得更好的 LLM 理解效果
示例工作流:
工作流 1:跨能力分析
- pack_codebase(directory: "src/app/capabilities", compress: true)
- grep_repomix_output(pattern: "import.from.@app/", contextLines: 3)
- 识别违反“无深层导入”规则的情况
- 使用 sequential-thinking 规划重构
工作流 2:事件流分析
- pack_codebase(directory: "src/app", includePatterns: "**/*.ts")
- grep_repomix_output(pattern: "publishEvent|EventBus", contextLines: 5)
- 映射所有事件生产者和消费者
- 验证 append-before-publish 契约
工作流 3:依赖分析
- pack_codebase(directory: "src/app", style: "json")
- grep_repomix_output(pattern: "from ['"]@angular/fire", contextLines: 2)
- 确保所有 Firebase 导入仅位于集成层
- 记录违规情况以供修复
适用场景
- 重大架构变更前:获取完整代码库快照
- 横切重构:影响多个能力/层的变更
- 理解遗留代码:分析整个模块结构
- 文档生成:提取所有文件以生成全面文档
- 代码审查准备:打包变更并附带完整上下文
- 迁移规划:在迁移前理解所有依赖
- 模式分析:在整个代码库中搜索特定模式
限制与注意事项
- 大型仓库:使用 compress: true 可将 token 使用量减少约 70%
- 增量分析:使用 grep_repomix_output 而非重新打包
- 文件限制:使用 includePatterns 和 ignorePatterns 限定打包范围
- 上下文管理:附加打包输出一次,可复用于多个查询
- 需遵循 Occam's Razor:仅在确实需要完整上下文时使用 Repomix
- 有助于识别重构的最小变更半径
- 对验证 DDD 层依赖至关重要
- 可生成全面的项目结构文档
与 Black-Tortoise 工作流的集成
- 结合 mcp-sequential-thinking 制定复杂重构计划
- 在运行 architecture:gate 前使用,以进行全面的边界分析
- 对理解 DDD 层依赖至关重要
- 有助于在整个代码库中验证“无深层导入”规则
提示模板
- “打包代码库并分析所有 DDD 边界违规”
- “使用 Repomix 在整个仓库中查找 [pattern] 的所有用法”
- “打包 src/app/capabilities 并识别跨能力依赖”
- “在开始 [major refactor] 前创建完整代码库快照”
- “在打包的仓库中搜索所有事件发出点”
最佳实践
- 合理限定范围:仅打包相关目录以减少 token
- 使用压缩:对大型代码库启用 Tree-sitter 压缩
- 结合 grep:使用 grep_repomix_output 进行定向搜索
- 顺序工作流:打包 → 分析 → 规划 → 实施
- 版本控制:保存打包输出以进行前后对比