Skip to main content
Glama
migration-decision.md6.29 kB
# 迁移方案决策指南 基于新旧架构对比,以下是针对不同场景的建议。 ## 核心问题:剩余 65 个工具有必要迁移吗? ### ❌ 不建议全部迁移的理由 1. **新架构的核心价值在于简洁性** - 从 3044 行减少到 489 行是巨大优势 - 如果迁移所有 86 个工具,会失去这个优势 - 即使用模块化方式,总代码量也会增加 60%+ 2. **边际收益递减** ``` 已迁移 21 个工具 → 覆盖 90% 日常场景 再迁移 7 个 (Milestone + Org) → 覆盖 95% 场景 再迁移 38 个 (Label + Team 等) → 覆盖 98% 场景 再迁移 20 个 (Webhook 等) → 覆盖 99% 场景 ``` 投入产出比:21 工具 (最高) > 28 工具 (高) > 65 工具 (低) 3. **很多工具更适合在 UI 中操作** - Webhook 配置:一次性设置,可视化更直观 - Team 权限管理:复杂权限模型,UI 操作更安全 - Label 批量操作:拖拽式操作更高效 4. **新架构的独特功能只在高频工具中体现价值** - **Elicitation**:适合 `gitea_init` 这种初始化工具 - **Prompts**:适合 create-issue/create-pr 这种常用操作 - 低频工具 (如 webhook_test) 不需要这些功能 ## 推荐方案对比 ### 方案 0:维持现状(21 个工具)⭐⭐⭐ **适用场景:** - 个人开发者或小团队 - 主要使用 Git 基础功能 - 不需要复杂的项目管理 **优势:** - ✅ 代码最简洁(489 行主文件 + 3 个小模块) - ✅ 维护成本最低 - ✅ 启动速度最快 - ✅ 已覆盖核心开发流程: - 仓库管理(创建、查看、搜索) - Issue 完整生命周期 - PR 完整流程(包括审查) - 配置和上下文管理 **缺点:** - ❌ 缺少 Milestone(需要在 UI 中操作) - ❌ 缺少 Organization 信息查询 **结论:** 如果你的团队主要使用 Issue + PR 工作流,这已经足够。 --- ### 方案 A:精简版(28 个工具)⭐⭐⭐⭐⭐ 推荐 **新增 7 个工具:** - Milestone: create, get, list, update, delete (5个) - Organization: get, list (2个) **适用场景:** - 中小型团队协作 - 使用 Milestone 管理版本迭代 - 需要查看组织信息 **工作量估算:** ```typescript // 创建 2 个新的 registry 文件 src/tools-registry/milestone-registry.ts (~200 行) src/tools-registry/org-registry.ts (~100 行) // 在 src/index.ts 中添加 2 行注册调用 registerMilestoneTools(mcpServer, toolContext); registerOrganizationTools(mcpServer, toolContext); ``` 预计工作量:1-2 小时 **优势:** - ✅ 完善项目管理能力(Issue + Milestone) - ✅ 支持多人协作场景(Organization) - ✅ 仍然保持代码简洁 - ✅ 覆盖 95% 的实际使用场景 **结论:** 性价比最高的方案,强烈推荐。 --- ### 方案 B:标准版(37 个工具)⭐⭐⭐ **在方案 A 基础上新增:** - User: get, list (2个) - Token: create, list, delete (3个) - Label 核心: create, list, add_to_issue, remove_from_issue (4个,剩余 10 个不迁移) **适用场景:** - 需要用户管理功能 - 需要自动化创建 API Token - 经常使用 Label 管理 Issue **工作量估算:** - 额外创建 3 个 registry 文件 (~400 行) - 预计工作量:3-4 小时 **优势:** - ✅ 更完整的用户管理 - ✅ 支持自动化场景(Token 管理) - ✅ Label 基本操作 **缺点:** - ⚠️ 代码量增加 50% - ⚠️ Label 功能不完整(剩余 10 个工具未迁移) - ⚠️ Token 管理通常是一次性操作 **结论:** 如果团队规模较大且有自动化需求,可以考虑。 --- ### 方案 C:完整版(86 个工具)❌ 不推荐 **全部迁移包括:** - Project (8个) - Wiki (8个) - Team (11个) - Webhook (11个) - Label 完整 (10个额外) **工作量估算:** - 创建 6 个额外 registry 文件 (~1500 行) - 预计工作量:8-12 小时 **不推荐的理由:** 1. ❌ **代码量激增** - 主文件可能需要增加到 600+ 行 - 总代码量接近旧架构 - 失去重构的核心价值 2. ❌ **维护成本高** - 更多模块需要维护 - 更新 SDK 时需要修改更多地方 3. ❌ **很多功能使用频率极低** ``` Webhook 工具使用频率:1-2 次/项目生命周期 Team 工具使用频率:取决于组织规模,中小团队几乎不用 Wiki 工具使用频率:很多团队使用外部文档系统 ``` 4. ❌ **与新架构理念相悖** - 新架构强调"简洁"和"高频功能优先" - 全量迁移回到了"大而全"的旧思路 **结论:** 违背重构初衷,不推荐。 --- ## 决策树 ``` 你的团队是否使用 Milestone 管理版本? │ ├─ 是 → 方案 A(28 工具) │ └─ 否 → 是否需要 Organization 信息查询? │ ├─ 是 → 方案 A(28 工具) │ └─ 否 → 是否需要 Token 自动化管理? │ ├─ 是 → 方案 B(37 工具) │ └─ 否 → 方案 0(21 工具)保持现状 ``` ## 最终建议 ### 立即执行:方案 A(28 工具) **理由:** 1. Milestone 是 Issue/PR 的自然延伸 2. Organization 是多人协作的基础信息 3. 工作量小(1-2 小时) 4. 性价比极高(7 个工具覆盖额外 5% 场景) ### 按需执行:方案 B 中的部分工具 - 如果未来用户明确需要某个功能(如 Token 管理) - 可以按照现有模式快速添加对应模块 - 不需要预先实现所有功能 ### 永久保留:src/index.old.ts - 作为功能完整的备份 - 如果用户需要低频功能(如 Webhook),可以: 1. 临时使用旧版本 2. 或从旧代码中提取特定工具迁移到新架构 ## 投入产出比分析 | 方案 | 新增工具 | 工作量 | 场景覆盖 | 代码增加 | 推荐度 | |------|---------|--------|----------|----------|--------| | 方案 0 | 0 | 0 | 90% | 0% | ⭐⭐⭐ | | **方案 A** | **7** | **1-2h** | **95%** | **+15%** | **⭐⭐⭐⭐⭐** | | 方案 B | 16 | 4-5h | 97% | +45% | ⭐⭐⭐ | | 方案 C | 65 | 10-12h | 100% | +150% | ❌ | **最佳选择:方案 A** - 投入 1-2 小时换来 5% 场景覆盖提升 - 保持代码简洁性 - 满足绝大多数团队需求

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/SupenBysz/gitea-mcp-tool'

If you have feedback or need assistance with the MCP directory API, please join our Discord server