UNPKG

@yeepay/coderocket-mcp

Version:

CodeRocket MCP - Independent AI-powered code review server for Model Context Protocol

467 lines (342 loc) 19.8 kB
# Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [1.5.1] - 2025-08-03 ### 🧹 项目清理与优化 #### Removed - **废弃文件清理**:删除了 `src/toolDefinitions.ts` 及其编译产物 - **重复脚本清理**:移除了10个临时配置和调试脚本 - **重复配置清理**:删除了重复的 `eslint.config.ts` 配置文件 #### Fixed - **ESLint配置**:修复了ESLint配置问题,确保代码检查正常工作 - **调试代码清理**:移除了生产代码中的调试console.log语句 - **工具定义一致性**:统一使用 `standardToolDefinitions.ts` 作为唯一工具定义源 #### Improved - **项目结构**:减少了11个冗余文件,提升项目整洁度 - **维护性**:消除了文件重复和配置冲突 - **测试覆盖**:保持100%测试通过率 (10/10) #### Technical Details - 建立了废弃文件清理机制和预防性建议 - 修复了参数定义冲突问题,确保MCP工具定义与实现完全一致 - 优化了构建流程,清理了编译产物中的废弃文件 ## [1.4.1] - 2025-08-02 ### 🔧 关键修复:CLI模式初始化 #### Fixed - **关键修复**:修复了CLI模式下PromptManager未初始化的问题 - 更新CLI入口点使用完整的 `initializeCodeRocket()` 函数 - 确保所有系统组件(ConfigManager + PromptManager)在CLI模式下正确初始化 #### Technical Details - 修改 `bin/coderocket-mcp` 脚本,从只初始化ConfigManager改为调用完整初始化流程 - 解决了 "PromptManager 未初始化,请先调用 initialize()" 错误 - 保证CLI工具调用与MCP服务器模式的一致性 ## [1.4.0] - 2025-08-02 ### 🎯 统一提示词架构优化 #### Changed - **重大优化**:实现真正的统一提示词设计,所有审查功能统一使用 `git-commit-review-prompt.md` - **架构简化**:移除冗余的提示词文件映射,实现"一套提示词,四种审查方式" - **一致性保证**:确保所有审查结果使用相同的专业标准和输出格式 #### Fixed - **启动警告修复**:彻底解决了启动时的提示词文件缺失警告 - **文件管理优化**:清理了不必要的重复提示词文件 #### Technical Improvements - 优化了 PromptManager 的文件映射逻辑,所有功能统一映射到单一提示词文件 - 更新了文档以反映统一提示词的设计理念 - 简化了提示词维护流程,降低了系统复杂度 #### Benefits - **维护性**:只需维护一个高质量的提示词文件 - **一致性**:所有审查功能使用相同的专业标准 - **可预测性**:审查结果风格和格式保持一致 - **简洁性**:避免了重复文件和不必要的复杂性 ## [1.2.7] - 2025-08-01 ### 🔧 关键修复:ConfigManager 初始化时序 #### Fixed - **关键修复**:修复了 ConfigManager 初始化时序问题,解决了 MCP 服务器启动失败的问题 - 延迟 CodeRocketService 初始化到 ConfigManager 初始化完成之后 - 添加了 CodeRocketService 空值检查,提高了错误处理的健壮性 - 修复了工具列表无法正常显示的问题 #### Technical Improvements - 优化了 MCP 服务器的启动流程,确保组件按正确顺序初始化 - 改进了错误处理机制,提供更清晰的错误信息 - 增强了服务器稳定性和可靠性 ## [1.2.5] - 2025-08-01 ### ✨ 统一提示词系统 #### Added - **统一提示词系统**:所有代码审查功能现在使用统一的 `git-commit-review-prompt.md` 提示词 - **提示词自定义文档**:添加了完整的提示词自定义指南和使用说明 - **统一性测试**:新增专门的测试用例验证统一提示词的使用 #### Changed - 更新了内置默认提示词,适配所有审查场景 - 优化了 PromptManager 的预加载逻辑,只加载必要的提示词 #### Documentation - 更新了 README.md,添加了提示词自定义章节 - 说明了统一提示词的优势:一致性、维护性、可预测性 - 提供了项目级和全局级提示词自定义示例 ## [1.2.4] - 2025-08-01 ### 🎨 Enhanced User Experience: Banner Integration #### ✨ Added - **Banner in Version Command**: Added beautiful ASCII Art banner to `version` command output - **Banner in Help Command**: Added banner display to `help` command for consistent branding - **Enhanced Version Info**: Version command now shows detailed package information including: - Package version with emoji indicators - Installation path for debugging - NPM package name for reference - Documentation link for easy access #### 🔧 Fixed - **Duplicate Help Text**: Removed duplicate "用法" (Usage) line in help command output - **Consistent Branding**: All user-facing commands now display the professional banner - **Better User Experience**: Commands provide more informative and visually appealing output #### 🧪 Quality Assurance - **Tested All Commands**: Verified banner display in `version`, `help`, and startup commands - **Error Handling**: Added fallback behavior if banner module fails to load - **No Breaking Changes**: All existing functionality preserved with enhanced presentation --- ## [1.2.3] - 2025-08-01 ### 🔧 Critical Dependency Fix: Complete Independence #### 🐛 Fixed - **Self-Dependency Issue**: Removed incorrect self-reference `@yeepay/coderocket-mcp` from dependencies - **Package Integrity**: Fixed circular dependency that could cause installation issues - **Clean Dependencies**: Ensured only necessary external dependencies are included #### ✅ Verified Independence - **No CLI Dependencies**: Confirmed zero dependencies on `coderocket-cli` - **Standard Git Commands**: All shell commands are standard Git operations only - **Independent Configuration**: Uses separate `~/.coderocket/` directory structure - **Self-Contained**: All functionality implemented with direct API calls #### 🧪 Quality Assurance - **100% Test Pass Rate**: All 9 tests continue to pass after dependency cleanup - **Functionality Verified**: Git change detection and AI review working perfectly - **No Breaking Changes**: All existing functionality preserved --- ## [1.2.2] - 2025-08-01 ### 🎨 Visual Enhancement: Beautiful ASCII Art Banner #### ✨ New Features - **精美 Banner 显示**: 添加了参考 coderocket-cli 设计的渐变色 ASCII Art Banner - **响应式界面**: 根据终端宽度自动选择合适的 Banner 显示(长版本/短版本) - **专业级视觉效果**: 蓝绿渐变色彩,提升用户体验和专业感 - **多场景 Banner**: 支持启动、成功、错误等不同场景的 Banner 显示 #### 🛠️ Technical Improvements - **Banner 模块**: 新增 `src/banner.ts` 模块,提供完整的 Banner 显示功能 - **启动界面优化**: 启动时显示精美的渐变 Banner 和服务信息 - **版本信息集成**: Banner 中动态显示当前版本号和协议信息 - **颜色系统**: 完整的 ANSI 颜色代码支持,包括 256 色渐变效果 #### 💫 User Experience - **视觉一致性**: 与 coderocket-cli 保持一致的设计风格 - **信息丰富**: 启动时显示所有可用工具和功能说明 - **专业外观**: 媲美 Gemini CLI 的高质量界面设计 - **终端兼容**: 支持不同宽度的终端窗口自适应显示 --- ## [1.2.1] - 2025-08-01 ### 🧪 Testing & Quality Assurance #### ✅ Enhanced Testing Coverage - **Complete Test Suite**: Added comprehensive tests for `reviewChanges` functionality - **Git Integration Tests**: Validated Git repository detection, status parsing, and diff analysis - **API Integration Tests**: Verified actual AI service calls with real Git changes - **100% Test Pass Rate**: All 9 tests passing with full functionality coverage #### 🔧 Test Infrastructure Improvements - **Unit Test Coverage**: Added `testReviewChanges` function with detailed validation - **Edge Case Handling**: Tested boundary conditions and error scenarios - **Real-world Validation**: Actual API calls successfully detected 4 changed files - **Quality Gates**: Comprehensive validation of all core features --- ## [1.2.0] - 2025-08-01 ### 🚀 Major Feature: Automatic Git Changes Review #### ✨ Added - **New `review_changes` Tool**: Revolutionary zero-parameter code review tool - Automatically detects and reviews all uncommitted Git changes - No need to manually copy/paste code content - Supports both staged and unstaged changes - Intelligent file type detection and language recognition - Comprehensive change analysis with context awareness #### 🔧 Enhanced Architecture - **Smart Git Integration**: Built-in Git repository detection and validation - **Flexible Change Detection**: Configurable inclusion of staged/unstaged changes - **Advanced Diff Analysis**: Detailed parsing of Git status and diff output - **Context-Aware Prompts**: Dynamic prompt generation based on actual changes #### 📝 API Improvements - **New Type Definitions**: Added `ReviewChangesRequest` and related schemas - **Enhanced Tool Registration**: Updated MCP tool registry with comprehensive descriptions - **Backward Compatibility**: Maintained existing `review_code` tool for manual use cases #### 🛠️ Technical Features - **Repository Validation**: Automatic Git repository detection - **Status Parsing**: Intelligent Git status output interpretation - **Change Categorization**: Clear distinction between different change types - **Error Handling**: Robust error handling for non-Git directories #### 📚 Documentation Updates - **README Enhancement**: Added quick start guide for new `review_changes` tool - **Tool Descriptions**: Comprehensive documentation of all available tools - **Usage Examples**: Clear examples for different use cases --- ## [1.1.6] - 2025-08-01 ### 🌐 Language Configuration Enhancement #### ✨ Added - **AI Language Configuration**: Added `AI_LANGUAGE` configuration option to control AI service response language - Default language set to `zh-CN` (Chinese) - Support for `en-US` (English) and other language codes - Language setting can be configured via environment variables or configuration files #### 🔧 Enhanced - **Prompt Enhancement**: All prompts now explicitly request Chinese responses - Added language instructions to `git-commit-review-prompt` - Enhanced `executeAIReview` method to dynamically add language requirements #### 📝 Configuration Updates - **ConfigManager**: Added `getAILanguage()` method for language configuration retrieval - **Service Configuration**: Added language parameter to `configureAIService` API - **Status Response**: Added language information to service status response #### 🛠️ API Improvements - **Tool Schema**: Updated `configure_ai_service` tool to include language parameter - **Type Definitions**: Enhanced `ConfigureAIServiceRequest` and `ServiceStatusResponse` schemas --- ## [1.1.5] - 2025-08-01 ### 🔧 Error Message Cleanup #### 🧹 Removed Legacy References - **Fixed Error Messages**: Removed all references to `coderocket-cli` from error messages and suggestions - Updated `src/index.ts` error suggestions to focus on independent operation - Updated `src/logger.ts` error handling to remove CLI dependency references - Error messages now provide relevant suggestions for the independent version #### 📝 Documentation Updates - **Cleaned Up Documentation**: Removed outdated references to `coderocket-cli` dependency - **Updated Links**: Fixed repository links to point to the correct monorepo structure - **Removed Legacy Files**: Cleaned up obsolete installation scripts and documentation #### 🚀 Version Management - **Fixed Version Display**: Corrected version reading logic to show actual package version - **Updated Default Version**: Synchronized default version with package.json --- ## [1.1.2] - 2025-08-01 ### 🔧 Critical MCP Protocol Fixes #### 🐛 Fixed - **MCP 协议兼容性问题**: 解决 AI 编程工具无法识别工具的根本原因 - 修复启动脚本的 async/await 语法错误,确保 MCP 客户端能正确启动服务器 - 修复服务器版本号硬编码问题,现在正确从 package.json 读取实际版本 (1.1.2) - 重构 JSON Schema 生成,替换有问题的 Zod 转换函数为手动创建的完整 Schema #### ✨ Enhanced - **工具描述大幅改进**: 为每个工具编写详细的功能说明、适用场景和参数文档 - `review_code`: 🔍 代码片段智能审查工具,包含完整的功能介绍和 AI 分析维度说明 - `review_commit`: 📝 Git 提交智能审查工具,详细说明变更分析和风险评估功能 - `review_files`: 📁 多文件批量审查工具,涵盖项目级质量评估和架构分析 - `configure_ai_service`: ⚙️ AI 服务配置管理工具,包含支持的服务和安全性说明 - `get_ai_service_status`: 📊 AI 服务状态监控工具,提供完整的健康状况报告 - **JSON Schema 定义完善**: - 为所有工具参数提供完整的类型定义和描述 - 正确标记必需参数和可选参数 - 添加枚举值约束和默认值说明 - 确保 AI 编程工具能准确理解参数要求 #### 🧪 Tested - **100% MCP 协议兼容性测试通过**: - ✅ 服务器启动和初始化测试 - ✅ 工具列表获取测试 - ✅ 工具调用和参数验证测试 - ✅ 错误处理和响应格式测试 - **所有单元测试通过** (8/8,100% 成功率): - ✅ ConfigManager 配置管理测试 - ✅ PromptManager 提示管理测试 - ✅ AI 服务故障转移测试 - ✅ 边界条件和异常处理测试 #### 🎯 Impact 此版本解决了用户报告的关键问题:"我配置到AI编程工具中无法正常使用,也不能显示有哪些tool"。现在 AI 编程工具应该能够: - 正确启动 MCP 服务器 - 识别所有可用工具 - 理解每个工具的详细功能和参数要求 - 成功调用工具并获得结构化响应 ## [1.1.1] - 2025-08-01 ### 🧹 Service Cleanup & Test Enhancement #### 🐛 Critical Bug Fixes - **Version Display Issue**: Fixed version command always showing hardcoded fallback - Improved error handling in bin/coderocket-mcp version command - Added debugging information when package.json reading fails - Version now correctly displays v1.1.1 from package.json - **ConfigManager Initialization Error**: Fixed "ConfigManager 未初始化" startup error - Added ConfigManager.initialize() call in MCP server startup - Implemented proper initialization checks in AI service classes - Added intelligent fallback logic for uninitialized ConfigManager - Fixed SmartAIManager to handle delayed configuration loading - Improved error handling with detailed error messages and debug mode - **Startup Script Error Handling**: Enhanced async/await patterns - Fixed dynamic import error handling in bin/coderocket-mcp - Added proper exit codes for different failure scenarios - Improved TypeScript error handling for unknown error types #### 🧪 Enhanced Testing - **Comprehensive Test Coverage**: Added extensive test coverage for core components - **ConfigManager Tests**: Configuration loading, priority hierarchy, environment variable handling - **PromptManager Tests**: Prompt loading, caching mechanism, default fallbacks - **AI Service Failover Tests**: Service availability, intelligent switching, error handling - **Enhanced Error Scenarios**: Better coverage of edge cases and error conditions - **Test Reliability**: Improved test isolation and environment cleanup - **100% Test Pass Rate**: All 8 test categories now pass successfully #### 📊 Test Results - Total Tests: 8 - Pass Rate: 100% ✅ - Coverage Areas: Core components, service integration, error handling, boundary conditions ## [1.1.0] - 2025-08-01 ### 🚀 Major Changes - Complete Independence This release marks a major milestone: **CodeRocket MCP is now completely independent** and no longer requires `coderocket-cli` as a dependency. ### ✨ Added - **Independent Configuration Management**: New `ConfigManager` class with support for: - Environment variables - Project-level `.env` files - Global `~/.coderocket/env` configuration - Priority hierarchy: env vars > project .env > global .env > defaults - **Independent Prompt Management**: New `PromptManager` class with support for: - Project-level prompts in `./prompts/` directory - Global prompts in `~/.coderocket/prompts/` directory - Built-in default prompts - **Direct AI Service Integration**: Native API implementations for: - **Gemini**: Using `@google/generative-ai` SDK with `gemini-1.5-flash` model - **ClaudeCode**: Using `@anthropic-ai/sdk` for direct API calls - **Intelligent AI Manager**: New `AIManager` class with: - Smart service selection and failover - Automatic retry logic with exponential backoff - Service health monitoring - Load balancing across available services - **Enhanced Error Handling**: New `ErrorHandler` class with: - Contextual error messages - User-friendly error suggestions - Detailed logging for debugging ### 🔄 Changed - **Startup Method**: Now supports direct execution without parameters - Old: `coderocket-mcp start` - New: `npx @yeepay/coderocket-mcp` (recommended) - Still supports: `coderocket-mcp` (if globally installed) - **Configuration Approach**: Moved from CLI-based to environment variable-based configuration - Supports standard MCP configuration patterns - Maintains backward compatibility with existing `.env` files - **Model Updates**: Updated Gemini model from deprecated `gemini-pro` to `gemini-1.5-flash` ### 🗑️ Removed - **CodeRocket-CLI Dependency**: Completely removed dependency on `coderocket-cli` - **Shell Script Execution**: Replaced shell script calls with direct API implementations - **Path Detection Logic**: Removed `findCoderocketCliPath()` and related functions - **CLI Command Execution**: Removed `executeShellCommand()` and `callAIServiceManager()` ### 🛠️ Technical Improvements - **Type Safety**: Enhanced TypeScript types and error handling - **Performance**: Direct API calls eliminate shell script overhead - **Reliability**: Reduced external dependencies and failure points - **Maintainability**: Cleaner architecture with separation of concerns ### 📚 Documentation - Updated README.md with independent installation instructions - Added comprehensive environment variable documentation - Updated troubleshooting guide for independent operation - Enhanced feature comparison table ### 🧪 Testing - Updated test suite for independent operation - Added configuration management tests - Enhanced error scenario testing - Improved boundary condition testing - All tests now pass with 100% success rate ### 🔧 Migration Guide For users upgrading from previous versions: 1. **No more CLI dependency**: Uninstall `coderocket-cli` if only used for MCP 2. **Environment variables**: Move API keys to environment variables or `.env` files 3. **New startup command**: Use `npx @yeepay/coderocket-mcp` instead of `coderocket-mcp start` 4. **Configuration files**: Existing `.env` files continue to work ### 📦 Dependencies - Added: `@google/generative-ai@^0.21.0` - Added: `@anthropic-ai/sdk@^0.27.0` - Added: `axios@^1.6.0` - Removed: All `coderocket-cli` related dependencies --- ## [1.0.1] - 2024-XX-XX ### Fixed - Initial bug fixes and stability improvements ## [1.0.0] - 2024-XX-XX ### Added - Initial release with `coderocket-cli` dependency - Basic MCP server functionality - Code review capabilities